What is Vonage's SMPP DLR format?
How can I translate Vonage's SMPP delivery receipts?
- Delivery Receipts (DLRs)
Format of the message_id:
- In the submit_sm_resp, message_id is represented in hexadecimal format.
- In the deliver_sm (DLR), message_id is represented in decimal format.
For Kannel users, use msg-id-type=0x01.
Format of the deliver_sm (DLR): "id:XXXXXXXXXX sub:001 dlvrd:000 submit date:YYMMDDHHMM done date:YYMMDDHHMM stat:ZZZZZZZ err:YYY text:none "
- XXXXXXXXXX is the corresponding message_id (in decimal).
- ZZZZZZZ is the message state.
- YYY is the numeric error code, present when the message state is different from DELIVRD or ACCEPTD. The full list of error codes can be found on our developer documentation on delivery receipts.
|Message is delivered to destination|
|EXPIRED||Message validity period has expired|
|DELETED||Message has been deleted|
|ACCEPTD||Message is in accepted state|
|UNDELIV||Message is undeliverable|
|UNKNOWN||Message is in invalid state|
|REJECTD||Message is in a rejected state|
Error Code Examples
|0||Delivered||Message was delivered successfully.|
|1||Unknown||Message was not delivered and no reason could be determined.|
|2||Absent Subscriber - Temporary||Message was not delivered because handset was temporarily unavailable. Retry.|
|3||Absent Subscriber - Permanent||The number is no longer active and should be removed from your database.|
|4||Call Barred by User||This is a permanent error. The number should be removed from your database and the user must contact their network operator to remove the bar.|
|5||Portability Error||There is an issue relating to portability of the number and you should contact the network operator to resolve it.|
|6||Anti-Spam Rejection||The message has been blocked by a carrier's anti-spam filter.|
|7||Handset Busy||The handset was not available at the time the message was sent. Retry.|
|8||Network Error||The message failed due to a network error. Retry.|
|9||Illegal Number||The user has specifically requested not to receive messages from a specific service.|
|10||Illegal Message||There is an error in a message parameter, for example, wrong encoding flag.|
|11||Unroutable||Vonage cannot find a suitable route to deliver the message. Submit a support request.|
|12||Destination Unreachable||A route to the number cannot be found. Confirm the recipient's number.|
|13||Subscriber Age Restriction||The target cannot receive your message due to their age.|
|14||Number Blocked by Carrier||The recipient should ask their carrier to enable SMS on their plan.|
|15||Prepaid Insufficient Funds||The recipient is on a prepaid plan and does not have enough credit to receive your message.|
|50||Entity Filter||The message failed due to
|51||Header Filter||The message failed because the header ID (
|52||Content Filter||The message failed due to
|53||Consent Filter||The message failed due to consent not being authorized. (Related to DLT registration mentioned in India SMS Features and Restrictions.)|
|54||Regulation Error||Unexpected regulation error. Submit a support request.|
|99||General Error||Typically refers to an error in the route. Submit a support request.|
There seems to be a critical error code missing from this list - "Unknown subscriber". For example, a number that has been disconnected (and therefore removed from the HLR) or a number that fits a valid numbering plan but hasn't ever been provisioned.
It seems that Nexmo is returning UNDELIV with err=000 for this case. Could this be confirmed and/or documented?
Hi Toby and thanks for your feedback! This should not be the case, however it really depends of the error code we receive. Could you please provide an example of the described occurrence for us to investigate further and amend accordingly if necessary.
Thanks and Best Regards,
Article is closed for comments.