Skip to main content
New endpoints return errors as RFC 9457 application/problem+json. Each body has a stable code, a detail for this request, errors[] for rejected fields, and the requestId (the X-Request-Id header). The type URI points at the code’s entry on this page. The v1 order status and shipment endpoints keep their { "error": "<text>" } body; their reference pages show it.

forbidden

HTTP 403 · Forbidden Your credential is not enabled for the scope this endpoint needs.

idempotency_conflict

HTTP 409 · Idempotency conflict This Idempotency-Key was already used with a different body. Send the original body to get the original answer, or a new key for a new order.

internal

HTTP 500 · Internal error An unexpected error on our side. It is logged; retry later.

invalid_request

HTTP 400 · Invalid request A query parameter or body field is missing or invalid. errors[] lists each field.

not_found

HTTP 404 · Not found No such resource for your credential: it does not exist, or it belongs to a client your credential is not linked to.

order_refused

HTTP 422 · Order refused The request is well formed but the order cannot be placed as sent. errors[] names each field and why: not_supported_yet for something this API does not take yet, total_changed when expectedTotal is not the current total (currentTotal carries it). detail says what to change.

payload_too_large

HTTP 413 · Payload too large The request body is larger than this endpoint accepts.

rate_limited

HTTP 429 · Rate limited More than the allowed requests per minute.
  • Retry-After header: Seconds to wait before retrying.

unauthenticated

HTTP 401 · Unauthenticated Missing or invalid credentials.
  • WWW-Authenticate header: Basic realm=“DEKHQ Partner API”

upload_refused

HTTP 422 · Upload refused The file can’t be taken: its type isn’t an art type we accept, it is empty or too large, its contents don’t match its extension, or its bytes never arrived. detail says which. Start a new upload.