Every error response from the Connexease Gateway follows the same JSON structure with a machine-readableDocumentation Index
Fetch the complete documentation index at: https://docs.gateway.connexease.com/llms.txt
Use this file to discover all available pages before exploring further.
code field. This lets you handle specific failure cases programmatically — pausing campaigns on BILL_001, retrying after the right delay on RATE_001, or skipping invalid recipients on GW_001. This page lists all error codes grouped by category, with example payloads and recommended actions for each.
Response Structure
All error responses use the same JSON format:false for errors.UNAUTHORIZED, PAYMENT_REQUIRED).RATE_001).HTTP Status Codes
| Code | Meaning |
|---|---|
400 | Malformed or incomplete request |
401 | Authentication failure |
402 | Insufficient account balance |
403 | Permission denied |
429 | Rate limit exceeded |
500 | Server-side error |
502 | Upstream Meta API failure |
Authentication Errors (AUTH_*)
AUTH_001 — Invalid API Key
AUTH_001 — Invalid API Key
401 UnauthorizedAUTH_002 — Missing Authorization Header
AUTH_002 — Missing Authorization Header
AUTH_003 — Wrong Token Format
AUTH_003 — Wrong Token Format
401 UnauthorizedBearer prefix (with a space) is missing. E.g. sending Authorization: YOUR_API_KEY instead of Authorization: Bearer YOUR_API_KEY.Resolution: Ensure the header is exactly in Bearer YOUR_API_KEY format.AUTH_004 — Auth Service Error
AUTH_004 — Auth Service Error
500 Internal Server ErrorAUTH_005 — Corrupted Auth Data
AUTH_005 — Corrupted Auth Data
500 Internal Server ErrorWebhook Errors (WH_*)
WH_001 — Invalid Verification Token
WH_001 — Invalid Verification Token
403 Forbiddenhub.verify_token value doesn’t match during the Meta webhook verification handshake.Resolution: Ensure the WEBHOOK_VERIFY_TOKEN config value matches exactly what you entered in Meta Business Manager.WH_002 — Missing Signature Header
WH_002 — Missing Signature Header
401 UnauthorizedPOST /v1/wa/webhook request is missing the X-Hub-Signature-256 header.Resolution: This error only occurs on requests from Meta. Do not call this endpoint from your own code.WH_003 — Invalid Webhook Signature
WH_003 — Invalid Webhook Signature
403 ForbiddenMETA_APP_SECRET in your config exactly matches the App Secret in Meta Business Manager → App Settings.Rate Limit Error (RATE_001)
RATE_001 — Rate Limit Exceeded
RATE_001 — Rate Limit Exceeded
429 Too Many Requestsparams Fields:| Field | Values | Description |
|---|---|---|
limit_type | "sec", "min" | Which window was exceeded |
retry_after | "1s", "60s" | How long to wait before retrying |
retry_after duration and retry, or use a queue system for high-volume operations.Error handling example:Billing Errors (BILL_*)
BILL_001 — Insufficient Balance
BILL_001 — Insufficient Balance
402 Payment Required- Immediately pause any active campaigns.
- Go to Dashboard → Billing → Add Balance.
- Resume the campaign.
BILL_002 — No Billing Account
BILL_002 — No Billing Account
400 Bad RequestWhatsApp Credentials Error (WABA_001)
WABA_001 — Missing WABA Credentials
WABA_001 — Missing WABA Credentials
401 UnauthorizedSecurity Error (SEC_001)
SEC_001 — Token Decryption Failed
SEC_001 — Token Decryption Failed
500 Internal Server ErrorGateway / Upstream Error (GW_001)
GW_001 — Meta API Error
GW_001 — Meta API Error
502 Bad Gatewaydescription field contains Meta’s original error message.Common Meta errors surfaced via GW_001:| Situation | Meta Error Message | Resolution |
|---|---|---|
| Unregistered recipient | ”not registered on WhatsApp” | Verify the number is a WhatsApp user |
| 24-hour window expired | ”outside the 24-hour window” | Use a template message |
| Wrong template name/language | ”template with the name does not exist” | Check template name and language code |
| Inaccessible media URL | ”media URL is not accessible” | Verify the URL is publicly accessible |
description field and skip the failing recipient.