Skip to main content
Every Public API failure shares one envelope and one machine-readable code. This page is the map of those codes: what each prefix means, the codes that can appear on any endpoint, and where the endpoint-specific ones are documented.
The full envelope — including params interpolation and the fields map — is described under Error envelope.
These are the Public API codes. The Messaging API (api.gateway.connexease.com) returns a separate set — AUTH_*, BILL_*, RATE_*, GW_*, WH_* — listed under Error Codes.

Reading a code

The prefix tells you where the failure happened and whether retrying can help.

Codes on every endpoint

Auth and tenant

An app_id that belongs to another organization returns 404, never 403 — the API does not confirm that the application exists elsewhere.

Request level

REQ_001 carries no fields map: the request could not be read well enough to validate it. The exception is a missing field that has its own error code — that is reported as a normal 422 field error instead.

Generic validation

These appear inside errors.fields[...].code for standard constraint failures, under a top-level VAL_000. Endpoint pages list only their own domain-specific codes.

System

Retry SYS_001 with exponential backoff. If it persists, contact support with the timestamp of the request.

Domain validation codes

Checked locally, before the request reaches Meta. Every one returns 422 with group VALIDATION, and the payload is never forwarded — so fixing the request is always the right response. The same button, header, and body rules apply to Update Template — it validates against the identical rule set.

Meta upstream codes

META_* codes mean the request passed local validation and the Gateway called Meta on your behalf. What you do next depends on the HTTP status, not the code number:
  • 4xx — Meta rejected the request. The description carries Meta’s own message. Fix the payload or the account state; retrying the identical request will fail again.
  • 502 — Meta was unreachable, returned an unexpected shape, or answered success: false. Retry with backoff.
Each code is documented on the endpoint that can return it, with the Meta condition it maps to:
Do not branch your code on the numeric part of a META_* code alone. The same Meta condition can surface under different numbers on different operations — switch on the HTTP status first, then on the specific code for the endpoint you called.

Handling in practice