The given article will give you an overview of Delivery Reports and an explanation of each status and error code for both SMS messages and Viber messages.
What are the different SMS statuses and what do they mean?
There are four different SMS statuses, with ‘Delivered’, ‘Failed’, and ‘Rejected’ being the final statuses for an SMS message.
- Delivered - The SMS message was either delivered to the handset or accepted for delivery by the network operator, depending on the delivery report type used in the given country.
- Failed - The SMS message was not delivered.
- Sent - The SMS message was sent, but no final status is available.
- Rejected - The SMS message was rejected, meaning that it was not accepted for delivery. Your account will not be credited for rejected messages.
For ‘ Delivered’ messages, depending on the specific market, the SMS message was either delivered to the handset or accepted for delivery by the network operator.
P.S. Network-based delivery reports are mainly used in Southeast Asia and South America.
For ' Sent' messages, the SMS message was sent, but no final delivery status is available from either the handset or the network operator. P.S. In some cases, SMS messages go through a retry cycle (by default set to 6 hours by Messente within the API, but can be changed to a time of your choosing), as they couldn't be delivered due to connectivity issues, or were, in fact, already delivered, but the delivery report is not available.
For ‘ Rejected’ messages check ‘err’ values 004; 006; 007; 008; 009 below.
For 'Failed' messages, most of the time 'err' values 001 and 002 apply, with 003 and 005 applying occasionally.
When SMS messages fail, what are the most common issues?
When SMS messages fail, we can investigate the reason behind the delivery issue by examining the error code.
001 - Failed to deliver SMS to this number
Messente has successfully forwarded the message, but we received a response from the carrier that they are unable to deliver this message. Most common causes are as follows:
- the phone number format is invalid
- the handset is switched off
- the number is deactivated or unallocated
- operator-side error
- signaling issues between the handset and the network operator
- the sender ID or a word in the message has been blacklisted by the local carrier(s)
- the sender ID has not been whitelisted by the local carrier(s)
- sending messages to the given country has been disabled
In most cases, the exact reason needs to be determined manually.
- Restart the handset as it will reset the connection between the network operator and the handset, thus solving the issue 90% of the time.
002 - Sending SMS expired in 6 hours
The phone number format itself is correct, but the message could not be delivered due to an unavailable network connection between the carrier and the handset.
- the handset was switched off
- the handset was out of coverage area
- the handset itself is experiencing a temporary error and needs a restart
In this situation, the mobile operator pings the mobile phone every now and then to check whether the phone is able to receive the SMS. After 6 hours of unsuccessful attempts, the error code will be set to "expired".
003 - Invalid number
The number is invalid.
- invalid number format
- the number is invalid and not reachable
- number contains the local country’s trunk prefix ‘0’E.g. +44 (0) XXXXXXXX
004 - Error crediting Account
The account has run out of prepaid credits.
005 - Could not determine the destination country/operator or invalid number format
The number format seems to be valid but there are no countries with this particular prefix.
- invalid number
- number is missing the area code/country prefix
- number contains local country’s trunk prefix ‘0’
006 - Too many identical messages sent to the same number, blocked for 60 minutes
Messente triggers a filter by restricting messages being sent to the same phone number.
- sending 5+ messages with identical content and sender ID within 60 minutes
- sending 20+ messages to the same phone number with the same sender ID
Messente does this to prevent:
- any unwanted message requests due to technical errors
- our customer from sending too many identical messages to the end-customer
- the end-customer from making too many SMS requests (e.g. requesting an unusually large amount of PIN codes)
For all of the above cases, the goal is to cut costs and protect the customer. The filter applies for 60 minutes starting from the 6th, or the 21st SMS message respectively.
P.S. This only applies to the affected numbers and not the account as a whole.
007 - Sender name not allowed
- using a sender ID that has not been whitelisted for your account
P.S. Whitelisted sender IDs are case sensitive, e.g. "CoffeeShop" is not the same as "coffeeshop" or "COFFEESHOP". They are all different for Messente. Incorrectly formatted sender IDs will be rejected.
008 - Number is in the ‘blacklist’
- the phone number is blacklisted in your account's phonebook and you can't send any SMS messages to that specific number
P.S. To remove a phone number from the blacklist, go to Messente Dashboard and navigate to the Phonebook (Contacts & Groups).
009 - Number is unroutable
- the destination country or operator is blocked for your account or the number is invalid
Please verify that the number is valid and if the problem persists then contact our support.
000 - No error
What are the Viber Delivery Report statuses and error codes for Viber and what do they mean?
The Delivery Report statuses are the following:
- Rejected - no Viber app available on the recipient’s mobile device.
- Expired - the recipient has a Viber app available, but the delivery request expired due to TTL (time-to-live) running out.
- Sent - the recipient has a Viber, but the recipient is out of reach, due to which the delivery is pending/being retried by Viber.
- Delivered - the message was successfully delivered to the recipient's number.
- Seen - the message was delivered and opened by the recipient.
The error codes, accompanying the delivery reports, are:
- 0 - No issues, the message has been delivered to the recipient.
- 2 - the recipient has a Viber app available, but the delivery request expired due to TTL (time-to-live) running out.
- 8 - The recipient has used opted out of your Viber messages within the Viber app.
- 10 - The recipient doesn't have Viber installed, the message is rejected because it can't be delivered.