Reference

Errors

17 stable codes. Branch on "code" — never on "detail", which is prose for a human and may be reworded at any time.

Every failure is application/problem+json (RFC 7807). The type field of a real response links straight to the page for that code, so an agent that hits an error can fetch its own documentation.

CodeStatusRetry?What to do
AUTHENTICATION_REQUIRED401noPresent a bearer token for the required scope.
FORBIDDEN403noThis token lacks the scope for this operation.
QUOTE_NOT_FOUND404noNo quote with this id is visible to this caller.
MANUAL_CONFIRMATION_REQUIRED409noThis journey needs Swiss Touristy confirmation and cannot be self-served.
QUOTE_EXPIRED409noCreate a new quote; pricing snapshots last 30 minutes.
INVALID_DATETIME422noSend pickup_datetime as an ISO 8601 instant with an offset.
INVALID_LOCATION422noSupply a more specific pickup or drop-off location.
INVALID_REQUEST422noCorrect the named fields and resubmit.
LEAD_TIME_NOT_SUPPORTED422noChoose a later pickup_datetime that meets the minimum notice.
NO_ELIGIBLE_VEHICLE422noReduce passengers or luggage, or split the party.
PAST_DATETIME422noSend a pickup_datetime in the future.
RETURN_TIME_INVALID422noSet the return pickup after the outbound arrival.
UNSUPPORTED_ROUTE422noThis journey is outside the served area. Do not retry unchanged.
RATE_LIMITED429yesWait for the interval in retry_after_seconds, then retry.
QUOTE_UNAVAILABLE503yesRetry shortly; no quote could be produced.
ROUTE_UNAVAILABLE503yesRetry shortly; the routing provider did not answer.
UPSTREAM_UNAVAILABLE503yesRetry shortly; a dependency was unavailable.

Retryable means exactly one thing

That the identical request may succeed on a retry. A 422 is never retryable — the request has to change first. Retrying one unchanged just spends your rate-limit budget.