The HTTP status code.
A short, machine-friendly label for the status (for example
Bad Request, Not Found).A human-readable explanation you can show to operators or log for support. When a message
refers to a product, it uses the
productCode you sent in the request.Placeholders below use
{productCode}, {reference}, {min}, {max}, {expected},
{productCurrency}, {requested}, and {seconds} for values that depend on your request.
All other text is returned exactly as shown.Status codes
Authentication (401)
See Authentication for examples.
Rate limiting (429)
The
Retry-After response header matches {seconds}. See Rate limits.
Catalog (404)
Returned by GET /catalog/products/{productCode} when the productCode is not in your active catalog.
Orders - request validation (400)
Returned by POST /orders when the request body fails checks before the order is accepted.
Prices in mismatch and denomination messages are in minor units (same as the catalog), e.g.
10000 = 100.00.Orders - rejected at placement (400)
Returned by POST /orders when the order cannot be accepted after validation.
Orders - forbidden (403)
Orders - conflict (409)
Orders - unprocessable (422)
Orders - not found (404)
Returned by GET /orders/{reference}.
{reference} is the path value you sent (the UUID orderId or your externalOrderCode).
Orders - bad gateway (502)
Returned when the order cannot be created or processing is temporarily unavailable.
Server errors (500)
Returned when an unexpected error occurs. Retry with backoff; contact support if the problem persists.
The
error field is omitted on some 500 responses.
Handling errors in your integration
1
Log statusCode and message
Persist both fields for support and retries. Treat
message as human-readable text.2
Map by productCode
When
message starts with Product {productCode}, attach the error to that line in your cart or order payload.3
Retry only when appropriate
Retry
502 and 429 with backoff. Do not retry 400, 403, 404, 409, or 422 without fixing the request.4
Refresh catalog on configuration errors
If you see “not available for ordering with the supplied country or currency”, re-fetch the product from
GET /catalog/products and verify countryCode, price, and open-denomination bounds.