Taxi Supplier API

References

Retrieve all bookings

Provides details for all bookings assigned to the connected supply partner, with pagination.

GET /v1/bookings

Request

URL Parameters

Parameter Description Required
status Pass an optional comma-delimited list of statuses to filter bookings by status:
NEW
ACCEPTED
DRIVER_ASSIGNED
PENDING_AMENDMENT
PENDING_CANCELLATION

We will return all bookings by default.
No
size Retrieve the specified number of bookings per page, we will return 400 bookings per page by default. The maximum value allowed here is 500. No
pickUpDateFrom Retrieve all bookings from the given datetime in UTC (ISO 8601). By default, this will default to the start of the day yesterday. No
pickUpDateTo Retrieve all bookings to the given datetime in UTC (ISO 8601). No

Sample Request

GET /v1/bookings?status=ACCEPTED&pickUpDateFrom=2020-07-08T00%3A00%3A00

Response

Warning

customerReference is equivalent to reference and bookingReference is equivalent to legId. Please note reference and legId will be deprecated in a future version of the API.

Important Notice: The pickup_date_time returned in the all bookings and single booking retrieval may be different to the original search webhook request. This is due to the addition of flight number details or customer requests post search. The information given in the booking retrieval should be used.

Field Type Description
customerReference String The customer reference.
bookingReference String The booking reference.
state_hash String The latest state hash for the booking (read more).
status String The status of the booking (read more).
searchResultId String A UUID representing the search result with a maximum length of 100 characters.
booked_date String The date the booking was placed.
flight_number String The flight number (airport pickups only).
pickup_date_time String The pickup timestamp in UTC (ISO 8601). The value of this may be different to the time provided in the search request.
pickup_date_time_zone String The pickup timezone in IANA format, used to convert the pickup_date_time to the local timezone.
vehicle_type String One of the following values:

STANDARD
LUXURY
EXECUTIVE
PEOPLE_CARRIER
LARGE_PEOPLE_CARRIER
EXECUTIVE_PEOPLE_CARRIER
MINIBUS
ELECTRIC_STANDARD
ELECTRIC_LUXURY
passenger_count Integer The number of passengers on the booking.
meet_and_greet Boolean Indicates whether meet & greet is required.
price.amount Float The supplier price for the booking (includes Meet and Greet amount where applicable). For CANCELLED, DECLINED or PENDING_CANCELLATION bookings, this will be 0 (currently for both refunded and non-refund bookings).
price.currency String The currency of the amount, in ISO 4217 format.
price.customerOriginalPrice Float The original price of booking before any discount is applied.
price.customerCurrency String The currency used by the customer to pay for their booking, in ISO 4217 format.
passenger.title String The lead passengers title.
passenger.name String The lead passengers full name.
passenger.telephone_number String The lead passengers phone number in E.164 format.
additional_comments String Additional comments/special requests provided by customer.
pickup|dropoff.latitude Float The locations latitude.
pickup|dropoff.longitude Float The locations longitude.
pickup|dropoff.address String The full address for the location.
pickup|dropoff.establishment_name String The name of the establishment. For example, the name of the hotel.
pickup|dropoff.postcode String The locations postcode.
pickup|dropoff.country String The locations country (ISO 3166 alpha-2).
pickup|dropoff.type String One of the following values:

AIRPORT
STREET_ADDRESS
INTERSECTION
PREMISE
POSTAL_CODE
POINT_OF_INTEREST

Note

The example below shows a single example booking, it's likely in reality you would have several bookings in the array and possibly multiple pages. It's also important to note that bookings with status COMPLETE won't be returned and bookings will be set to COMPLETE 6 hours after pickup time. The get single booking endpoint can be used to retrieve with status COMPLETE.

HTTP 200 - OK

{
    "links": [
        {
            "rel": "next",
            "href": "/v1/bookings?size=400&after=1646757553000",
            "type": "GET"
        }
    ],
    "bookings": [
        {
            "links": [
                {
                    "rel": "self",
                    "href": "/v1/bookings/46825434/34745155",
                    "type": "GET"
                },
                {
                    "rel": "accept",
                    "href": "/v1/bookings/46825434/34745155/responses",
                    "type": "POST"
                },
                {
                    "rel": "reject",
                    "href": "/v1/bookings/46825434/34745155/responses",
                    "type": "POST"
                }
            ],
            "reference": "46825434",
            "customerReference": "46825434",
            "legId": "34745155",
            "bookingReference": "34745155",
            "state_hash": "8904f18fa3c66e925b4864fae263a52180da38bb358f78abda018adf99eb56d2",
            "status": "NEW",
            "searchResultId": "3948465738756348",
            "price": {
                "amount": "24.72",
                "currency": "EUR",
                "customerOriginalPrice": 32.00,
                "customerCurrency": "GBP"
            },
            "booked_date": "2022-03-09T10:58:30",
            "pickup_date_time": "2022-03-12T18:30:00",
            "pickup_date_time_zone": "Europe/Rome",
            "vehicle_type": "STANDARD",
            "passenger_count": 2,
            "flight_number": "FR6835",
            "meet_and_greet": true,
            "meet_and_greet_message": "Free text customer message",
            "passenger": {
                "title": "ms",
                "name": "Gillian Tans",
                "telephone_number": "+447545485868"
            },
            "pickup": {
                "latitude": 40.877554,
                "longitude": 14.282728,
                "address": "Capodichino - Naples International Airport (NAP), Viale F. Ruffo di Calabria, 80144 Napoli NA, Italy",
                "establishment_name": "Capodichino - Naples International Airport (NAP)",
                "postcode": "80144",
                "country": "IT",
                "type": "Airport"
            },
            "dropoff": {
                "latitude": 40.8281144,
                "longitude": 14.2192266,
                "address": "Demart Suites, Piazzetta Leone a Mergellina, 2, 80122 Napoli NA, Italy",
                "establishment_name": "Demart Suites",
                "postcode": "80122",
                "country": "IT",
                "type": "GEO"
            }
        }
    ]
}

HTTP 400 - Bad Request

{
  "message": "Invalid Input parameter",
  "description": "Invalid date-time format for pickUpDateFrom or pickUpDateTo"
}

HTTP 401 - Unauthorized

{
  "message": "Invalid Authorization Token",
  "description": "Invalid authorization token in header"
}

HTTP 429 - Too Many Requests

{
  "message": "Rate limit exceeded",
  "description": "You have exceeded your allocated limit for requests on this endpoint, please wait before calling it again"
}

Retrieve a single booking

Provides details of a single booking assigned to the connected supply partner.

GET /v1/bookings/:customerReference/:bookingReference

Response

Warning

customerReference is equivalent to reference and bookingReference is equivalent to legId. Please note reference and legId will be deprecated in a future version of the API.

Important Notice: The pickup_date_time returned in the all bookings and single booking retrieval may be different to the original search webhook request. This is due to the addition of flight number details or customer requests post search. The information given in the booking retrieval should be used.

Field Type Description
customerReference String The customer reference.
bookingReference String The booking reference.
state_hash String The latest state hash for the booking (read more).
status String The status of the booking (read more).
searchResultId String A UUID representing the search result with a maximum length of 100 characters.
booked_date String The date the booking was placed.
pickup_date_time String The pickup timestamp in UTC (ISO 8601). The value of this may be different to the time provided in the search request.
pickup_date_time_zone String The pickup timezone in IANA format, used to convert the pickup_date_time to the local timezone.
flight_number String The flight number (airport pickups only).
vehicle_type String One of the following values:

STANDARD
LUXURY
EXECUTIVE
PEOPLE_CARRIER
LARGE_PEOPLE_CARRIER
EXECUTIVE_PEOPLE_CARRIER
MINIBUS
ELECTRIC_STANDARD
ELECTRIC_LUXURY
passenger_count Integer The number of passengers on the booking.
meet_and_greet Boolean Indicates whether meet & greet is required.
price.amount Float The supplier price for the booking (includes Meet and Greet amount where applicable). For CANCELLED, DECLINED or PENDING_CANCELLATION bookings, this will be 0 (currently for both refunded and non-refund bookings).
price.currency String The currency of the amount, in ISO 4217 format.
price.customerOriginalPrice Float The original price of booking before any discount is applied.
price.customerCurrency String The currency used by the customer to pay for their booking, in ISO 4217 format.
passenger.title String The lead passengers title.
passenger.name String The lead passengers full name.
passenger.telephone_number String The lead passengers phone number in E.164 format.
pickup|dropoff.latitude Float The locations latitude.
pickup|dropoff.longitude Float The locations longitude.
pickup|dropoff.address String The full address for the location.
pickup|dropoff.establishment_name String The name of the establishment. For example, the name of the hotel.
pickup|dropoff.postcode String The locations postcode.
pickup|dropoff.country String The locations country (ISO 3166 alpha-2).
pickup|dropoff.type String One of the following values:

AIRPORT
STREET_ADDRESS
INTERSECTION
PREMISE
POSTAL_CODE
POINT_OF_INTEREST

HTTP 200 - OK

Note

The booking status will determine what actions are possible. For example, you cannot reject a booking with a status of "CANCELLED".


{
    "links": [
        {
            "rel": "self",
            "href": "/v1/bookings/46825434/34745155",
            "type": "GET"
        },
        {
            "rel": "reject",
            "href": "/v1/bookings/46825434/58782517/34745155",
            "type": "POST"
        }
    ],
    "reference": "46825434",
    "customerReference": "46825434",
    "legId": "34745155",
    "bookingReference": "34745155",
    "state_hash": "8904f18fa3c66e925b4864fae263a52180da38bb358f78abda018adf99eb56d2",
    "status": "NEW",
    "searchResultId": "3948465738756348",
    "price": {
        "amount": "24.72",
        "currency": "EUR",
        "customerOriginalPrice": 32.00,
        "customerCurrency": "GBP"
    },
    "booked_date": "2022-03-09T10:58:30",
    "pickup_date_time": "2022-03-12T18:30:00",
    "pickup_date_time_zone": "Europe/Rome",
    "vehicle_type": "STANDARD",
    "passenger_count": 2,
    "flight_number": "FR6835",
    "meet_and_greet": true,
    "meet_and_greet_message": "Free text customer message",
    "passenger": {
        "title": "ms",
        "name": "Gillian Tans",
        "telephone_number": "+447545485868"
    },
    "pickup": {
        "latitude": 40.877554,
        "longitude": 14.282728,
        "address": "Capodichino - Naples International Airport (NAP), Viale F. Ruffo di Calabria, 80144 Napoli NA, Italy",
        "establishment_name": "Capodichino - Naples International Airport (NAP)",
        "postcode": "80144",
        "country": "IT",
        "type": "Airport"
    },
    "dropoff": {
        "latitude": 40.8281144,
        "longitude": 14.2192266,
        "address": "Demart Suites, Piazzetta Leone a Mergellina, 2, 80122 Napoli NA, Italy",
        "establishment_name": "Demart Suites",
        "postcode": "80122",
        "country": "IT",
        "type": "GEO"
    }
}

HTTP 401 - Unauthorized

{
  "message": "Invalid Authorization Token",
  "description": "Invalid authorization token in header"
}

HTTP 404 - Not Found

{
  "message": "Not Found",
  "description": "Booking Not Found"
}

Accept or reject a booking

Enables you to ACCEPT or REJECT your allocated bookings, read more information about our booking statuses & transitions and cancellation reasons.

POST /v1/bookings/:customerReference/:bookingReference/responses

Request

Field Type Description Required
supplierResponse String One of either: (read more about booking statuses & transitions)

ACCEPT
REJECT
Yes
state_hash String The state hash retrieved from the latest version of the booking. Yes
cancellationReason String One of either: (read more about cancellation reasons)

CANT_FULFILL_CUSTOMER_REQUEST
CHILD_SEAT_INCOMPATIBLE_VEHICLE
CHILD_SEAT_UNAVAILABLE
CHILD_SEAT_UNSUPPORTED
EXTRA_STOP
FORCE_MAJEURE
INCOMPLETE_BOOKING_DETAILS
INCORRECT_ADDRESS
LEAD_TIME_TOO_SHORT
MISSING_FLIGHT_NUMBER
NO_AVAILABILITY
RATE_ERROR
ROAD_CLOSURE
OTHER
No

Sample Request

{
    "supplierResponse": "REJECT",
    "state_hash": "4b2c68f6c847284e73c73b26693d9905",
    "cancellationReason": "CANT_FULFILL_CUSTOMER_REQUEST"
}

HTTP 201 - Created

HTTP 400 - Bad Request

{
  "message": "Invalid Input Parameter",
  "description": "Invalid state_hash for booking status"
}

HTTP 401 - Unauthorized

{
  "message": "Invalid Authorization Token",
  "description": "Invalid authorization token in header"
}

HTTP 404 - Not Found

{
  "message": "Not Found",
  "description": "Booking Not Found"
}