Error Codes – All Channels
A consolidated list of error codes returned by APEX Messaging APIs, grouped by channel for consistency and ease of integration.
- SMS
- Telegram
Standard SMPP Error Codes
The following table details SMPP command status error codes returned in SMS API responses and delivery receipts, allowing developers to quickly diagnose submission, connectivity, and delivery failures.
| Status Name | Hex Value | Dec Value | Description |
|---|---|---|---|
| ESME_ROK | 0x00000000 | 0 | No error |
| ESME_RINVMSGLEN | 0x00000001 | 1 | Message length is invalid |
| ESME_RINVCMDLEN | 0x00000002 | 2 | Command length (PDU length) is invalid |
| ESME_RINVCMDID | 0x00000003 | 3 | Invalid command ID |
| ESME_RINVBNDSTS | 0x00000004 | 4 | Incorrect bind status for given command |
| ESME_RALYBND | 0x00000005 | 5 | ESME already bound |
| ESME_RINVPRTFLG | 0x00000006 | 6 | Invalid priority flag |
| ESME_RINVREGDLVFLG | 0x00000007 | 7 | Invalid registered delivery flag |
| ESME_RSYSERR | 0x00000008 | 8 | MC system error |
| ESME_RINVSRCADR | 0x0000000A | 10 | Invalid source address |
| ESME_RINVDSTADR | 0x0000000B | 11 | Invalid destination address |
| ESME_RINVMSGID | 0x0000000C | 12 | Invalid message ID |
| ESME_RBINDFAIL | 0x0000000D | 13 | Bind failed |
| ESME_RINVPASWD | 0x0000000E | 14 | Invalid password field |
| ESME_RINVSYSID | 0x0000000F | 15 | Invalid system ID |
| ESME_RCANCELFAIL | 0x00000011 | 17 | Cancel SM failed |
| ESME_RREPLACEFAIL | 0x00000013 | 19 | Replace SM failed |
| ESME_RMSGQFUL | 0x00000014 | 20 | Message queue full |
| ESME_RINVSERTYP | 0x00000015 | 21 | Invalid service type |
| ESME_RINVNUMDESTS | 0x00000033 | 51 | Invalid number of destinations |
| ESME_RINVDLNAME | 0x00000034 | 52 | Invalid distribution list name |
| ESME_RINVDESTFLAG | 0x00000040 | 64 | Invalid destination flag |
| ESME_RINVSUBREP | 0x00000042 | 66 | Submit with replace not supported or denied |
| ESME_RINVESMCLASS | 0x00000043 | 67 | Invalid esm_class value |
| ESME_RCNTSUBDL | 0x00000044 | 68 | Cannot submit to distribution list |
| ESME_RSUBMITFAIL | 0x00000045 | 69 | Message submission failed |
| ESME_RINVSRCTON | 0x00000048 | 72 | Invalid source TON |
| ESME_RINVSRCNPI | 0x00000049 | 73 | Invalid source NPI |
| ESME_RINVDSTTON | 0x00000050 | 80 | Invalid destination TON |
| ESME_RINVDSTNPI | 0x00000051 | 81 | Invalid destination NPI |
| ESME_RINVSYSTYP | 0x00000053 | 83 | Invalid system_type |
| ESME_RINVREPFLAG | 0x00000054 | 84 | Invalid replace_if_present flag |
| ESME_RINVNUMMSGS | 0x00000055 | 85 | Invalid number of messages |
| ESME_RTHROTTLED | 0x00000058 | 88 | Throttled (send limit exceeded) |
| ESME_RINVSCHED | 0x00000061 | 97 | Invalid scheduled delivery time |
| ESME_RINVEXPIRY | 0x00000062 | 98 | Invalid message expiry |
| ESME_RINVDFTMSGID | 0x00000063 | 99 | Invalid predefined message ID |
| ESME_RX_T_APPN | 0x00000064 | 100 | Receiver temporary application error |
| ESME_RX_P_APPN | 0x00000065 | 101 | Receiver permanent application error |
| ESME_RX_R_APPN | 0x00000066 | 102 | Receiver rejected message |
| ESME_RQUERYFAIL | 0x00000067 | 103 | Query request failed |
| ESME_RINVTLVSTREAM | 0x000000C0 | 192 | Invalid TLV stream |
| ESME_RTLVNOTALLWD | 0x000000C1 | 193 | TLV not allowed |
| ESME_RINVTLVLEN | 0x000000C2 | 194 | Invalid TLV length |
| ESME_RMISSINGTLV | 0x000000C3 | 195 | Mandatory TLV missing |
| ESME_RINVTLVVAL | 0x000000C4 | 196 | Invalid TLV value |
| ESME_RDELIVERYFAILURE | 0x000000FE | 254 | Transaction delivery failure |
| ESME_RUNKNOWNERR | 0x000000FF | 255 | Unknown error |
| ESME_RSERTYPUNAUTH | 0x00000100 | 256 | Service type not authorised |
| ESME_RPROHIBITED | 0x00000101 | 257 | Operation prohibited |
| ESME_RSERTYPUNAVAIL | 0x00000102 | 258 | Service type unavailable |
| ESME_RSERTYPDENIED | 0x00000103 | 259 | Service type denied |
| ESME_RINVDCS | 0x00000104 | 260 | Invalid data coding scheme |
| ESME_RINVSRCADDRSUBUNIT | 0x00000105 | 261 | Invalid source address subunit |
| ESME_RINVDSTADDRSUBUNIT | 0x00000106 | 262 | Invalid destination address subunit |
| ESME_RINVBCASTFREQINT | 0x00000107 | 263 | Invalid broadcast frequency interval |
| ESME_RINVBCASTALIAS_NAME | 0x00000108 | 264 | Invalid broadcast alias name |
| ESME_RINVBCASTAREAFMT | 0x00000109 | 265 | Invalid broadcast area format |
| ESME_RINVNUMBCAST_AREAS | 0x0000010A | 266 | Invalid number of broadcast areas |
| ESME_RINVBCASTCNTTYPE | 0x0000010B | 267 | Invalid broadcast content type |
| ESME_RINVBCASTMSGCLASS | 0x0000010C | 268 | Invalid broadcast message class |
| ESME_RBCASTFAIL | 0x0000010D | 269 | Broadcast operation failed |
| ESME_RBCASTQUERYFAIL | 0x0000010E | 270 | Broadcast query failed |
| ESME_RBCASTCANCELFAIL | 0x0000010F | 271 | Broadcast cancel failed |
| ESME_RINVBCAST_REP | 0x00000110 | 272 | Invalid number of repeated broadcasts |
| ESME_RINVBCASTSRVGRP | 0x00000111 | 273 | Invalid broadcast service group |
| ESME_RINVBCASTCHANIND | 0x00000112 | 274 | Invalid broadcast channel indicator |
| Reserved | 0x00000400–0x000004FF | 1024–1279 | Reserved for vendor-specific errors |
WhatsApp Error Codes
The WhatsApp error codes below are those returned by the WhatsApp Business/Cloud API (via Meta). These numeric codes indicate issues such as invalid parameters, rate limits, message delivery problems, template issues, account status restrictions, and other conditions that affect message submission or delivery. Proper handling of these codes in your integration allows for clearer diagnostics and better automated retry or fallback logic.
