isSuccess flag is false, and the details of the error are elaborated inside the errors object.
Error Response Structure
Always false in the event of an error.
A specific, unique application error code (e.g., AUTH_001).
Indicates the general category the error belongs to (e.g., UNAUTHORIZED, VALIDATION).
A human-readable description of the error.
(Optional) Contains dynamic data related to the error (e.g., how long to wait before retrying).
HTTP Status Codes
In addition to the specific application error codes, the API uses standard HTTP status codes:400 Bad Request: The request body is malformed or missing required fields.401 Unauthorized: Authentication failed (API Key is missing or invalid).402 Payment Required: Your billing account has insufficient balance.403 Forbidden: Authentication succeeded, but you do not have permission.429 Too Many Requests: You have hit the high-performance rate limits. Wait for theretry_afterduration.500 Internal Server Error: An unexpected error occurred on the server side.502 Bad Gateway: An error occurred while communicating with upstream servers (Meta/WhatsApp).
Application Error Codes Dictionary
Below is a list of specificerrors.code values that may be returned by the API. You can build your error handling (try-catch) mechanisms around these specific codes to build a robust integration.
Authentication & Security
| Error Code | HTTP Status | Error Group | Description |
|---|---|---|---|
AUTH_001 | 401 | UNAUTHORIZED | API Key not found, invalid, or expired. |
AUTH_002 | 401 | UNAUTHORIZED | Missing Authorization header. |
AUTH_003 | 401 | UNAUTHORIZED | Invalid token format. It must be ‘Bearer <token>’. |
AUTH_004 | 500 | INTERNAL_ERROR | An error occurred in the authentication service. |
WhatsApp Credentials (WABA)
| Error Code | HTTP Status | Error Group | Description |
|---|---|---|---|
WABA_001 | 401 | UNAUTHORIZED | WABA credentials are missing or invalid. |
Billing & Balance
| Error Code | HTTP Status | Error Group | Description |
|---|---|---|---|
BILL_001 | 402 | PAYMENT_REQUIRED | Insufficient balance. Please top up your account. |
BILL_002 | 400 | BAD_REQUEST | No billing account found associated with the API Key. |
Rate Limiting
| Error Code | HTTP Status | Error Group | Description |
|---|---|---|---|
RATE_001 | 429 | TOO_MANY_REQUESTS | Rate limit exceeded. Please try again later. (Dynamic wait time is returned in the params object) |