Skip to main content

Error registry

Errors arrive in the envelope's Errors list as stable string codes. Branch on the Code, never on the human-readable Message. This page lists the codes every integration should handle; domain-specific codes (prefixed by their area, e.g. PAYMENT_TERMINAL_…, API_KEY_…) are documented with their endpoints in the reference.

Authentication and authorization

HTTPCodeMeaningDo
401Missing, unknown or revoked credentialFix the credential; don't retry
403API_KEY_SCOPE_INSUFFICIENTThe key lacks the scope the endpoint requires (named in the message)Ask your admin to grant it
403PUBLIC_API_LICENSE_INACTIVEYour organisation's API license lapsedAlert your admin; back off, don't loop
403ACCESS_IS_FORBIDDENThe record exists but belongs outside your scopeTreat like 404

Requests

HTTPCode patternMeaningDo
400area-specific …_MANDATORY / …_ERROR codesValidation failed; the message says which fieldFix the request
400filterable-property errorA dsquery field name isn't filterable/sortable (the property is named)Fix the field name
404NOT_FOUND and area-specific …_NOT_FOUNDNo such record in your scopeHandle as absent
422request-shape codesThe body was structurally unusableFix the request

Platform

HTTPMeaningDo
429You hit your subscription's rate limit at the gatewayHonor Retry-After, add backoff
500Platform fault — the response still carries the envelopeRetry with backoff; report with your X-Correlation-Id if persistent

A worked failure

{
"Result": false,
"Errors": [
{
"Code": "API_KEY_SCOPE_INSUFFICIENT",
"Category": 4,
"Message": "This endpoint requires the 'tariffs:readwrite' scope"
}
]
}

Category is a coarse machine grouping (bad data, not found, forbidden, server error); the Code is the contract.