Resources
Error codes
The local sandbox is available for fixtures. The hardened server gateway remains unreleased. A request_in_progress error may also return 503 when result persistence cannot be confirmed.
Local sandbox
| Code | HTTP | Message |
|---|---|---|
| missing_api_key | 401 | An API key is required. |
| invalid_api_key | 401 | The API key is invalid or inactive. |
| insufficient_scope | 403 | The API key does not grant this operation. |
| not_found | 404 | The resource was not found. |
| invalid_json | 400 | The request body must contain valid JSON. |
| invalid_request | 422 | The request does not match the API schema. |
| invalid_postcode | 422 | The postcode format is invalid. |
| quote_expired | 409 | Request a new quote before booking. |
| quote_mismatch | 409 | The shipment route or parcels differ from the selected quote. |
| idempotency_required | 400 | A valid Idempotency-Key header is required. |
| idempotency_conflict | 409 | This idempotency key was used with a different request. |
| request_in_progress | 409 | The request is in progress or awaiting reconciliation. |
| invalid_cursor | 400 | The pagination cursor is invalid. |
| rate_limit_exceeded | 429 | The sandbox request limit was exceeded. |
| provider_unavailable | 503 | Shipping services are temporarily unavailable. |
| provider_failure | 502 | The shipping operation could not be confirmed. |
| cancellation_not_allowed | 409 | The shipment can no longer be cancelled automatically. |
| label_not_available | 404 | This label format is not available. |
| live_not_available | 503 | Live REST API access is not available. |
| method_not_allowed | 405 | The HTTP method is not supported. |
| payload_too_large | 413 | The request body exceeds 256 KiB. |
| internal_error | 500 | The request could not be completed. |
| collection_not_supported | 422 | This service does not support collection booking. |
Unreleased server gateway
| Code | HTTP | Message |
|---|---|---|
| domain_contract_unavailable | 503 | The shipping service contract could not be verified. |
| missing_api_key | 401 | An API key is required. |
| invalid_api_key | 401 | The API key is invalid or unavailable. |
| insufficient_scope | 403 | This API key does not have the required scope. |
| invalid_request | 422 | The request is invalid. |
| not_found | 404 | The resource was not found. |
| idempotency_required | 400 | An Idempotency-Key header is required. |
| idempotency_conflict | 409 | This key was already used with a different request. |
| request_in_progress | 409 | The request is in progress or awaiting reconciliation. |
| rate_limit_exceeded | 429 | The request limit was exceeded. |
| live_not_available | 503 | Live REST API access is not enabled. |
| billing_not_configured | 503 | API billing has not been approved or configured. |
| provider_unavailable | 503 | Shipping services are temporarily unavailable. |
| internal_error | 500 | The request could not be completed. |
| domain_validation_failed | 422 | The shipping details could not be accepted. |
| invalid_cursor | 400 | The pagination cursor is invalid. |
| payload_too_large | 413 | The request body exceeds 256 KiB. |
| quote_expired | 409 | The quote has expired. |
| quote_mismatch | 409 | The shipment does not match the quote. |
| test_live_purchase_forbidden | 403 | Test credentials cannot purchase live postage. |
| hosted_test_not_configured | 503 | The hosted test provider is not configured. |
| unsupported_route | 422 | No supported service is available. |
| invalid_postcode | 422 | The postcode is invalid. |
| operation_not_enabled | 422 | This operation is not enabled. |
| collection_not_enabled | 422 | API collection changes are not enabled. |
| cancellation_not_enabled | 422 | API cancellation is not enabled. |
| label_not_available | 404 | This label format is not available. |
| booking_verification_required | 503 | The booking requires PX verification before another attempt. |
| provider_purchase_disabled | 503 | Provider purchasing is disabled. |
| tracking_ambiguous | 409 | Use the shipment ID to identify this tracking number. |
| invalid_json | 400 | The request body must contain valid JSON. |