Transfers

Transfers errors

Error envelopes, the full error catalog, and the successful responses that look like failures.

Share

Error envelopes, the full error catalog, and the successful responses that look like failures.

Application error

json
json
{
  "statusCode": 409,
  "code": "transfer_price_changed",
  "message": "The transfer price changed. Request pricing again"
}

Match on code, not on message: messages are localized and can be reworded.

Validation error

When the request itself is malformed, message is an array of problems instead of a single string.

json
json
{
  "statusCode": 400,
  "message": [
    "numPassengers must not be less than 1",
    "latitude and longitude must be sent together"
  ],
  "error": "Bad Request"
}

General errors

HTTPCodeMeaningRecommended action
400The body, query or path is invalid, or contains an unknown property.Fix the request using the message array.
400transfer_invalid_languageUnsupported language.Use a documented language value.
400transfer_invalid_currencyUnsupported currency.Use a supported currency.
400transfer_currency_mismatchCurrency differs from the offer or quote.Reuse the currency of the previous step.
400transfer_location_not_foundA location could not be resolved.Add city or zipcode, or send a place ID or coordinates.
429transfer_provider_errorTemporary rate limit.Retry with exponential backoff.
502transfer_provider_errorThe request could not be completed.Do not assume success; keep your identifiers and read the reservation.
503The price could not be confirmed right now.Retry later; do not book and do not charge.

Tokens, pricing and booking

HTTPCodeMeaning
400transfer_invalid_booking_tokenThe token expired, was modified, or belongs to another offer.
400transfer_invalid_pricing_tokenThe pricing token is invalid or inconsistent with the request.
400transfer_pricing_requiredThe request has no pricing token.
400transfer_invalid_amenitiesAmenity keys are duplicated, empty, or unavailable.
400transfer_flight_info_requiredThe offer requires airline and flightNumber.
400transfer_return_flight_info_requiredA round trip requires the return flight details.
409transfer_price_changedThe quoted price is no longer valid.
409transfer_booking_in_progressThe booking could not be accepted for this pricing token.
410transfer_pricing_expiredThe quote expired before the booking was created.

Reservations

HTTPCodeMeaning
400transfer_booking_not_foundThe read did not carry exactly one identifier.
502transfer_provider_errorA reservation could not be read, created, changed, tracked or cancelled.

Successful responses that are not errors

Several endpoints answer 200 with a negative outcome. These are results, not failures, and must be read from the body:

  • isValid: false on flight verification — the flight does not fit the pickup time.
  • cancelled: false or refunded: false on cancellation.
  • status: "failed" on booking or change confirmation.
  • An empty flights array on flight lookup.
  • An empty response object on tracking, before the journey starts.

Always read the body of a 200 before telling the traveller that something succeeded.