Skip to main content
Every error answers with an HTTP status and a JSON body:
Switch on code: it is stable. message is meant for the developer reading the response and may change.
Some errors carry more fields, listed below: details for validation errors, and the id of the resource involved in a conflict.

Validation errors

A request that breaks a rule answers 400 invalid_request, with every broken rule in details:
Fields that are not documented are refused (property ... should not exist). An id in the path that is not a UUID also answers 400 invalid_request, without details.

Error codes

Retrying

  • 4xx errors will fail again until the request changes.
  • 500, 502 and 503 can be retried. Wait a little between attempts.
  • Retrying POST /vehicle is safe: a vehicle that was created the first time answers 409 vehicle_already_exists with its id.
  • Retrying POST /quote/{id}/pay is safe: a payment already waiting answers 409 payment_in_progress with its paymentUrl.