eCabs Technologies Tenant API · Reference

Cuorium Partners API (1.0)

Download OpenAPI specification:

Customer

Customer management

Get customers

Get customers

Authorizations:
ApiKey
query Parameters
mobilePhone
string [ 8 .. 16 ] characters ^\+[1-9]\d{6,14}$
Example: mobilePhone=+1234567890

Filter by mobile phone number. Must be in E.164 format. Because mobile phone is a unique in our system by providing this filter, you can retrieve a specific customer (always one).

page
integer [ 0 .. 10000 ]
Default: 0
Example: page=0

Page number (0-indexed)

size
integer [ 1 .. 100 ]
Default: 25
Example: size=25

Number of items per page

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "pagination": {
    }
}

Create customer

Create customer

Authorizations:
ApiKey
Request Body schema: application/json
required
firstName
required
string [ 1 .. 50 ] characters ^[A-Za-z]+$
lastName
required
string [ 1 .. 50 ] characters ^[A-Za-z]+$
email
string <email> [ 5 .. 254 ] characters ^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2...
mobilePhone
required
string [ 8 .. 16 ] characters ^[\+]?[1-9]\d{6,14}$

Mobile phone in E.164 format

locale
required
string [ 2 .. 5 ] characters ^[a-z]{2,5}(-[A-Z]{2,5})?$

IETF BCP 47 language tag (e.g., en, en-US)

Responses

Request samples

Content type
application/json
{
  • "firstName": "John",
  • "lastName": "Doe",
  • "email": "john.doe@example.com",
  • "mobilePhone": "+1234567890",
  • "locale": "en"
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "firstName": "John",
  • "lastName": "Doe",
  • "email": "john.doe@example.com",
  • "mobilePhone": "+1234567890",
  • "locale": "en"
}

Get customer by ID

Get customer by ID

Authorizations:
ApiKey
path Parameters
customerId
required
string <uuid>

Customer ID

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "firstName": "John",
  • "lastName": "Doe",
  • "email": "john.doe@example.com",
  • "mobilePhone": "+1234567890",
  • "locale": "en"
}

Booking

Booking management

Get bookings

Get bookings

Authorizations:
ApiKey
query Parameters
statusIn
Array of strings [ 1 .. 3 ] items unique
Items Enum: "RESERVED" "DISPATCHED" "ACCEPTED" "CAB_ARRIVED_AT_PICKUP" "TRIP_STARTED" "TRIP_ONGOING" "CAB_ARRIVED_AT_INTERMEDIARY_WAYPOINT" "CAB_ARRIVED_AT_DROPOFF" "DROPPED_OFF" "TRIP_ENDED" "NO_SHOW" "CANCELLED" "COMPLETED"

Filter bookings by status. Must include at least one status.

pickupTimeFrom
string <date-time>
Example: pickupTimeFrom=2020-01-01T10:00:00Z

Filter bookings from pickup time (ISO 8601 format). This parameter have to be used with pickupTimeTo.

pickupTimeTo
string <date-time>
Example: pickupTimeTo=2020-01-01T12:00:00Z

Filter bookings until pickup time (ISO 8601 format). This parameter have to be used with pickupTimeFrom.

page
integer [ 0 .. 10000 ]
Default: 0
Example: page=0

Page number (0-indexed)

size
integer [ 1 .. 100 ]
Default: 25
Example: size=25

Number of items per page

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "pagination": {
    }
}

Create booking

Create booking

Authorizations:
ApiKey
Request Body schema: application/json
required
customerId
required
string <uuid>

Customer ID UUID

object (B2BAccount)
pickupTime
string <date-time>

Scheduled pickup time - REQUIRED if asap is false

asap
boolean

Is this an ASAP booking

quotationId
integer >= 1

Associated quotation ID

required
object (VehicleTypeMinimal)
required
Array of objects (TripWaypoint) [ 2 .. 10 ] items

Trip waypoints (minimum 2 pickup and dropoff)

object (PassengerData)
object
required
object

Responses

Request samples

Content type
application/json
{
  • "customerId": "123e4567-e89b-12d3-a456-426655440000",
  • "b2bAccount": {
    },
  • "pickupTime": "2020-01-01T12:00:00Z",
  • "asap": true,
  • "quotationId": 1,
  • "vehicleType": {
    },
  • "tripWaypoints": [
    ],
  • "passenger": {
    },
  • "price": {
    },
  • "payment": {
    }
}

Response samples

Content type
application/json
{
  • "id": 7,
  • "customerId": "123e4567-e89b-12d3-a456-426655440000",
  • "b2bAccount": {
    },
  • "status": "ACCEPTED",
  • "pickupTime": "2020-01-01T12:00:00Z",
  • "asap": true,
  • "quotationId": 1,
  • "vehicleType": {
    },
  • "tripWaypoints": [
    ],
  • "passenger": {
    },
  • "distance": 1.71,
  • "price": {
    },
  • "payment": {
    }
}

Get booking by ID

Get booking by ID

Authorizations:
ApiKey
path Parameters
bookingId
required
string <uuid>

Booking ID

Responses

Response samples

Content type
application/json
{
  • "id": 7,
  • "customerId": "123e4567-e89b-12d3-a456-426655440000",
  • "b2bAccount": {
    },
  • "status": "ACCEPTED",
  • "pickupTime": "2020-01-01T12:00:00Z",
  • "asap": true,
  • "quotationId": 1,
  • "vehicleType": {
    },
  • "tripWaypoints": [
    ],
  • "passenger": {
    },
  • "distance": 1.71,
  • "price": {
    },
  • "payment": {
    }
}

Update booking status

Update booking status

Authorizations:
ApiKey
path Parameters
bookingId
required
string <uuid>

Booking ID

Request Body schema: application/json
required
status
required
string
Value: "CANCELLED"

Booking status

Responses

Request samples

Content type
application/json
{
  • "status": "CANCELLED"
}

Response samples

Content type
application/json
{
  • "status": 400,
  • "error": "The provided input is invalid",
  • "timestamp": "2020-01-01T12:00:00Z"
}

Quotation

Quotation management

Create quotation

Create quotation

Authorizations:
ApiKey
Request Body schema: application/json
required
customerId
required
string <uuid>

Customer ID UUID

paymentType
required
string
Enum: "ACCOUNT" "CASH"

Payment method

pickupTime
string <date-time>

Scheduled pickup time

required
Array of objects [ 2 .. 10 ] items

Trip waypoints (minimum 2 pickup and dropoff)

Responses

Request samples

Content type
application/json
{
  • "customerId": "123e4567-e89b-12d3-a456-426655440000",
  • "paymentType": "ACCOUNT",
  • "pickupTime": "2020-01-01T12:00:00Z",
  • "tripWaypoints": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "distance": 1.71,
  • "quotationForVehicleTypes": [
    ]
}

Get quotation by ID

Get quotation by ID

Authorizations:
ApiKey
path Parameters
quotationId
required
string <uuid>

Quotation ID

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "distance": 1.71,
  • "quotationForVehicleTypes": [
    ]
}

Vehicle Type

Vehicle type management

Get vehicle types

Get vehicle types

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "pagination": {
    }
}

Waiting Time

Waiting times

Get waiting times for vehicle types

Get waiting times for vehicle types

Authorizations:
ApiKey
query Parameters
lat
number [ -90 .. 90 ]
Example: lat=40.714224

Latitude coordinate in decimal degrees

lng
number [ -180 .. 180 ]
Example: lng=-73.961452

Longitude coordinate in decimal degrees

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "pagination": {
    }
}

Vehicle Location

Vehicle location

Get vehicle location

Get vehicle location

Authorizations:
ApiKey
path Parameters
numberPlate
required
string

Vehicle numberplate

Responses

Response samples

Content type
application/json
{
  • "numberplate": "ABC123",
  • "status": "IDLE",
  • "location": {
    },
  • "shiftId": 1,
  • "vehicleTypeCode": "cab",
  • "bookings": {
    }
}

Get vehicle locations

Get vehicle locations

Authorizations:
ApiKey
query Parameters
vehicleTypeCodeIn
Array of strings [ 1 .. 10 ] items unique
status
string
Enum: "IDLE" "BUSY"
page
integer [ 0 .. 10000 ]
Default: 0
Example: page=0

Page number (0-indexed)

size
integer [ 1 .. 100 ]
Default: 25
Example: size=25

Number of items per page

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "pagination": {
    }
}

Pricing

Pricing management

Get pricing rules

Get pricing rules

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "pagination": {
    }
}

Create pricing rule

Create pricing rule

Authorizations:
ApiKey
Request Body schema: application/json
required
description
string <= 500 characters
status
string
Enum: "ACTIVE" "INACTIVE" "DRAFT"

Rule status

type
string
Enum: "GENERAL" "BOOKING_SOURCES" "ZONE" "DATE_RANGE" "CALL_ORIGIN" "PRICE_OVERWRITE" "WAIT_TIME_GRACE_PERIOD"

Rule type

object (RuleQuota)
object (RuleCriteria)
object (RuleSettings)

Responses

Request samples

Content type
application/json
{
  • "description": "Rule 1",
  • "status": "ACTIVE",
  • "type": "GENERAL",
  • "quota": {
    },
  • "criteria": {
    },
  • "settings": {
    }
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "description": "Rule 1",
  • "updatedAt": "2020-01-01T12:00:00Z",
  • "status": "ACTIVE",
  • "type": "GENERAL",
  • "quota": {
    },
  • "criteria": {
    },
  • "settings": {
    }
}

Get pricing rule by ID

Get pricing rule by ID

Authorizations:
ApiKey
path Parameters
pricingRuleId
required
integer >= 1
Example: 1

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "description": "Rule 1",
  • "updatedAt": "2020-01-01T12:00:00Z",
  • "status": "ACTIVE",
  • "type": "GENERAL",
  • "quota": {
    },
  • "criteria": {
    },
  • "settings": {
    }
}

Update pricing rule

Update pricing rule

Authorizations:
ApiKey
path Parameters
pricingRuleId
required
integer >= 1
Example: 1
Request Body schema: application/json
required
description
string <= 500 characters
status
string
Enum: "ACTIVE" "INACTIVE" "DRAFT"

Rule status

type
string
Enum: "GENERAL" "BOOKING_SOURCES" "ZONE" "DATE_RANGE" "CALL_ORIGIN" "PRICE_OVERWRITE" "WAIT_TIME_GRACE_PERIOD"

Rule type

object (RuleQuota)
object (RuleCriteria)
object (RuleSettings)

Responses

Request samples

Content type
application/json
{
  • "description": "Rule 1",
  • "status": "ACTIVE",
  • "type": "GENERAL",
  • "quota": {
    },
  • "criteria": {
    },
  • "settings": {
    }
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "description": "Rule 1",
  • "updatedAt": "2020-01-01T12:00:00Z",
  • "status": "ACTIVE",
  • "type": "GENERAL",
  • "quota": {
    },
  • "criteria": {
    },
  • "settings": {
    }
}

Delete pricing rule

Delete pricing rule

Authorizations:
ApiKey
path Parameters
pricingRuleId
required
integer >= 1
Example: 1

Responses

Response samples

Content type
application/json
{
  • "status": 401,
  • "error": "Authentication token is missing or invalid",
  • "timestamp": "2020-01-01T12:00:00Z"
}

Get pricing zones

Get pricing zones

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
{
  • "results": [
    ],
  • "pagination": {
    }
}

Create pricing zone

Create pricing zone

Authorizations:
ApiKey
Request Body schema: application/json
required
name
string
radius
integer >= 1

Radius in meters

Array of objects (ZonePoint)

Zone points

Responses

Request samples

Content type
application/json
{
  • "name": "Zone 1",
  • "radius": 100,
  • "points": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Zone 1",
  • "radius": 100,
  • "points": [
    ]
}

Get pricing zone by ID

Get pricing zone by ID

Authorizations:
ApiKey
path Parameters
pricingZoneId
required
integer >= 1
Example: 1

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Zone 1",
  • "radius": 100,
  • "points": [
    ]
}

Update pricing zone

Update pricing zone

Authorizations:
ApiKey
path Parameters
pricingZoneId
required
integer >= 1
Example: 1
Request Body schema: application/json
required
name
string
radius
integer >= 1

Radius in meters

Array of objects (ZonePoint)

Zone points

Responses

Request samples

Content type
application/json
{
  • "name": "Zone 1",
  • "radius": 100,
  • "points": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "Zone 1",
  • "radius": 100,
  • "points": [
    ]
}

Delete pricing zone

Delete pricing zone

Authorizations:
ApiKey
path Parameters
pricingZoneId
required
integer >= 1
Example: 1

Responses

Response samples

Content type
application/json
{
  • "status": 401,
  • "error": "Authentication token is missing or invalid",
  • "timestamp": "2020-01-01T12:00:00Z"
}