Branch your logic on
ERRORCODE. Use ERRORDESP for reporting buckets.
Where the message stopped
A
9xxxxx code means the message never reached an operator. Those are the ones you can
resolve yourself.Delivered
Handset, subscriber and network — 001–044
The message reached the operator but was not delivered. Some of these describe a temporary
condition worth retrying; others are a permanent property of the number.
Some conditions appear under more than one code —
001 and 033 both report an unknown
subscriber, 027 and 029 both report an absent subscriber. Treat them as equivalent when you
bucket results.Platform — 9xxxxx
Returned when the platform stopped the message before submission, or never received a final
receipt for it.
900111 and 900210 look similar but are set at different levels. No balance means the
account itself has nothing left to spend. Credit limit breached means a configured ceiling was
reached — these are applied per country and per user, so one destination or one user can stop
while the rest of the account keeps sending.Retry guidance
The Retry? column reflects the standard meaning of each condition — a barred or unprovisioned number will not start working on a second attempt, while an absent or busy handset often will. It is guidance for building your own retry policy, not a description of platform behaviour.Codes marked “No” describe a permanent property of the destination. Repeated sends to them cost
credit without any prospect of delivery — the useful response is to suppress the number, not to
retry it.
Related
- DLR callback
- Send SMS
- India SMS error codes — a different, longer set

