Message Delivery
Messages are not being delivered
Messages are not being delivered
Check your credit balance
Verify the recipient phone number format
+ sign followed by the country code and number, with no spaces or dashes (e.g., +244923000000). Requests with incorrectly formatted numbers are rejected silently at the carrier level.Confirm your Sender ID is approved
SMS was marked 'Delivered' but the recipient did not receive it
SMS was marked 'Delivered' but the recipient did not receive it
delivered status means the message was accepted by the carrier network, but a small number of scenarios can still prevent it from appearing on the device:- The recipient’s number may be registered on a do-not-disturb or spam-filter list maintained by their carrier.
- The carrier may have filtered the message due to content heuristics.
- The recipient’s device may have been switched off or unreachable at the moment of delivery, and the carrier’s retry window may have expired.
Delivery status is stuck on 'Queued'
Delivery status is stuck on 'Queued'
queued status usually resolves within a few minutes. During high-traffic periods, SMS delivery can take up to 30 minutes. If the status has not updated after 1 hour:- Refresh the campaign report in Campaigns > Reports.
- Verify your Sender ID is still approved.
- Contact suporte@zexa.ao with the Message ID or Campaign ID from the report, and our team will investigate.
WhatsApp message failed to send
WhatsApp message failed to send
- Recipient has WhatsApp installed and active on that number. If the number is not registered with WhatsApp, the message cannot be delivered.
- Template requirement — if you are initiating a conversation (not replying within a 24-hour service window), you must use an approved WhatsApp message template. Free-form messages sent outside a session window will fail. Submit or review templates in Settings > Templates.
API Errors
401 Unauthorized
401 Unauthorized
422 Unprocessable Entity
422 Unprocessable Entity
details array that identifies each problematic field. For example:details and resend the request.429 Too Many Requests
429 Too Many Requests
Respect the Retry-After header
Retry-After header (in seconds). Wait at least that long before retrying.Implement exponential backoff
Request a higher limit if needed
400 Bad Request
400 Bad Request
| Cause | Fix |
|---|---|
| Phone number not in E.164 format | Reformat to +<country code><number>, e.g. +244923000000 |
Unsupported channel value | Use one of: sms, whatsapp, telegram, email, slack |
| Sender ID not approved | Approve the Sender ID in Settings > Sender IDs first |
| Insufficient credits | Top up your balance in Billing > Top Up |
details field for the specific error message.500 Internal Server Error
500 Internal Server Error
Check the request ID
request_id field. Copy this value — it uniquely identifies your request in our logs.Contact support if persistent
request_id, the endpoint you called, and a sanitised copy of your request payload.Account Access
I forgot my password
I forgot my password
Go to the login page
Enter your email address
I am locked out after losing my 2FA device
I am locked out after losing my 2FA device
- The email address on the account
- Your company NIF (or personal Bilhete de Identidade number for individual accounts)
- A clear description of the situation and how access was lost
My account has been suspended
My account has been suspended
Read the suspension notice
Review your messaging activity
Submit an appeal
Sender IDs
My Sender ID was rejected
My Sender ID was rejected
Read the rejection reason
Fix the issue
| Rejection reason | Fix |
|---|---|
| Impersonation of a third-party brand | Use your own registered brand name |
| Exceeds 11 characters | Shorten to 11 characters or fewer |
| Contains spaces or special characters | Remove all spaces, hyphens, and special characters |
My Sender ID is approved but messages show a different sender
My Sender ID is approved but messages show a different sender
from field in your API request or campaign does not exactly match the approved Sender ID. Sender IDs are case-sensitive and must be an exact character-for-character match.Verify the approved string in Settings > Sender IDs and ensure your API request passes it exactly:mybrand or MYBRAND will not match an approved MyBrand Sender ID, and your message will either fail or be sent with a fallback numeric ID.