Skip to content

Synchronization and errors

Vehicle and Rental upserts are scoped to your organization and your external_id. On creation, supply the available context. For subsequent changed updates, send source_revision or source_updated_at. Prefer an integer revision from your source system and increase it strictly. Once a revision is stored, a timestamp cannot override it. Omitted properties keep their current value; explicit null clears only nullable fields. Unknown properties are rejected.

Rental lifecycle rules still apply: vehicle assignment freezes when the first inspection starts; after departure, some planned fields freeze; after completion, only supported report detail corrections remain. A conflicting or older update receives a structured error. Read the current resource before retrying with a new revision.

Every POST write requires an Idempotency-Key header. Generate a unique value for each intended operation, keep it stable across network retries, and never reuse it with a different body. The key is scoped to your organization and retained for seven days. Replaying the same completed command returns the original successful response; a conflicting reuse fails.

PUT by external ID is deterministic, but version markers still matter for changed updates. Do not create a fresh external ID for a retry of the same vehicle or reservation.

API errors use application/problem+json with a stable code, HTTP status, human-readable detail, request_id, retryable and optional field-level errors. Log the request_id when contacting support, without logging secrets or private document bytes.

The type URL identifies a public error page. For example, INVALID_API_KEY explains the cause and the next action. Each code emitted by this middleware has a matching English, French and Spanish page.

ResponseAction
401Check whether the key is valid, expired or revoked.
403Check key permissions and the organization’s commercial access.
409Inspect the current resource or idempotency conflict before changing the request.
422Correct the named fields; do not retry the same invalid body.
429Respect Retry-After and the rate-limit headers.
503Retry according to retryable and any Retry-After header.

GET /v1/capabilities reports effective quotas, file limits and retention values for your key. The API reference is authoritative for each route’s possible responses.