Skip to main content

Errors

Every error response shares the same envelope:

{
"success": false,
"message": "Human readable summary.",
"errorCode": "order.not_found",
"details": {
"orderId": "ord_01HZX..."
},
"traceId": "00-7f3b...-01"
}

Branch on code, never on message — the latter is localised and may change without notice.

Status code matrix

StatusWhenRetryable?
400Validation failureNo
401Missing / expired tokenAfter refresh
403Scope or tenant deniedNo
404Resource not foundNo
409Conflict / idempotency mismatchNo
422Business rule violationNo
429Rate limitedYes (respect Retry-After)
5xxServer-sideYes (exponential backoff)

Common error codes

The numeric values below are returned in the response envelope's ErrorCode field for business-rule failures. Use them to branch your client logic.

CodeWhen it's returned
-1The order request failed basic validation (malformed payload or missing mandatory fields).
-2The referenced order line could not be located while attempting delivery.
-3The external order has already been marked as delivered and cannot be delivered again.
-4The order has already been cancelled and can no longer be updated or delivered.
-5The order line is currently being processed by another worker. Retry after a short delay.
-6The request did not include the external product identifier.
-7No product matched the supplied identifier while preparing the delivery.
-8The supplied external product identifier is malformed or not recognised.
-9The specified external product line has already been delivered for this order.
-10The cancellation quantity is greater than the remaining cancellable quantity on the line.
-11The delivery request was accepted but contained no items to deliver.
-12Generic, non-classified failure. Inspect the response message and traceId for context.
-13Delivery data did not conform to the expected schema for the target product.
-14The delivery flow could not determine which step to execute (step value missing).
-15The supplied region / locale code could not be resolved.
-16The customer profile is missing fields that are required for the requested operation.
-17No customer record matches the supplied identifier.
-18The customer exists but no API integration record is configured for them.
-19The basket contains no items; an order cannot be created from it.
-20The basket changed between read and checkout. Re-fetch it before retrying.
-21The customer's available balance is lower than the order total.
-22A delivery with the same identifier has already been submitted (idempotency conflict).
-23The provided API key is missing, expired, revoked, or does not belong to the requested tenant.

Tracing

Always include the traceId when contacting support — it identifies the request across all internal services.