SMS delivery reports

SMS delivery reports – a complete guide

SMS delivery reports – a complete guide

Delivery reports for SMS always cause confusion.

We receive far more supports requests on delivery reports than any other subject.

Let’s see if we can clarify what they’re all about.

This won’t take long…

What is an SMS delivery report?

An SMS delivery report or DLR is a notification that you receive from the SMCS (Short Message Service Center) that lets you know the status of a text message that you sent to a mobile phone.

The outgoing message does a virtual handshake with the receiving phone and allows you to confirm that the message has arrived on the recipient’s phone.

Unlike email where you can see if an email has been read, there’s no way of knowing the text message has actually been read, only that it has arrived in the person’s SMS inbox.

How do SMS delivery reports work?

How do SMS delivery reports work?

As soon as a text message is received by a mobile network it will attempt to deliver it to the relevant network that the mobile number is assigned to.

Before the message has been delivered, the delivery report status will be pending.

Once the text has been successfully received the SMCS provides a ‘delivered’ delivery report which is updated as the message status.

If the message is undelivered then the message status is updated accordingly. If the text has been sent using an SMS provider’s SMS API, then the reason for failure will also be logged as an error code.

Are SMS delivery reports reliable?

Broadly speaking, yes, delivery reports are pretty reliable. Certainly if you’re sending messages to UK mobiles you can depend on the SMS delivery report being accurate.

The only time to be wary is if you make the mistake of using an indirect grey route for sending your messages.

You may then find that delivery receipts are either missing or inaccurate. Sometimes you will receive a delivered outcome for messages that you know were not delivered to the phones.

Inaccurate or missing delivery reports is one of the main reasons for avoiding SMS grey routes.

There are many common reasons why a text message might not be delivered, the most obvious being a wrong number.

Delays to text messages are also quite common.

How do I know if an SMS was delivered?

The process for switching on delivery notifications is slightly different depending on whether you’re an IOS of Android user.

You need to give permission for others to receive delivery reports.

Switching on delivery reports for Android

From the Home screen, tap Messages
Tap More (top right)
Tap Settings
Select Text messages.
Tap Delivery Reports On or Off

Android delivery report settings


Switching on delivery reports for iPhone

If you’re using an iphone, delivery or read receipts are switched off by default. As a user you decide whether you would like others to be notified if you have read their texts.

To change read receipts on an iphone..

Go to Settings
Scroll to Messages
Scroll to Send read Receipts and toggle it on.

IPhone SMS Read Receipts 1

Can you turn off delivery reports for SMS?

Yes, you can easily switch off delivery notifications. By default these are always switched off anyway, so unless you’ve switched them on you don’t need to change anything.

See above for the process of switching delivery reports on and off for Android and IOS phones.

Business SMS delivery reports

When you’re using a business SMS service, delivery reports come with far more detail than those you receive when sending from one phone to another.

There are a vast number of different delivery outcomes that can give you enormous detail on the status of every single message that you send.

For example, at The SMS Works, we provide a total of 16 different delivery reports error codes.
There are 2 different types of delivery report status.

This outcome indicates that the message can never be delivered to the number that you sent to. Further attempts will also result in a failed outcome.

For example, error 5001 indicates that the number does not exist on any network or had not been assigned to anyone.

Repeated sending to the same number won’t change that.

Other delivery report codes are temporary. For example, error code 5015 means that the message expired before it could be delivered. This usually means that the person’s phone is switched off and the message couldn’t be delivered.

Most networks try to deliver a text for about 2 days before it expires.

Business SMS delivery reports

The SMS Works failed SMS delivery report codes

5001 Handset Error: Number does not exist or has not been assigned to a user. true
5004 Message has been sent to the operator but the request was rejected, or a delivery report with status REJECTED was reverted. true
5006 Handset Error: No response. Handset may be switched off or in a low signal area. true
5008 Handset Error: Roaming not allowed. true
5009 Message has been sent to the operator, but has failed to deliver, since a delivery report with status UNDELIVERED was reverted from the operator. true
5010 Message has been received and rejected due to the user being subscribed to DND (Do Not Disturb) services, disabling any service traffic to their number. true
5011 The subscriber’s mobile service has been suspended by the operator. true
5013 Handset Error: Device is set to Do Not Disturb (DND). In this instance the message may still be delivered if the DND setting is removed within the validity period of the message. false
5015 The message was received and sent to the operator. However, it has been pending until the validity period has expired, or the operator returned EXPIRED status in the meantime. false
5020 Message has been rejected due to an anti-flooding mechanism. By default, a single number can only receive 20 varied messages and 6 identical messages per hour. true
5034 Handset Error: System failure. true

What are the SMS delivery status codes and what do they mean?

The following table breaks down each of the industry standard delivery status values that you may encounter.





The message has been accepted by the platform and is scheduled for delivery to the relevant mobile network at the time you have specified. It has not yet been sent by us.


The message has been validated and sent to the mobile network for delivery. This does not mean it has been delivered, as we are yet to receive any delivery status notification. This is the default status that we set, once messages leave our platform, but does not indicate or imply that the message has been delivered. Messages will remain in a SENT state until we get a further update from the network. You don’t need to take any more action at this time.


The message has been delivered successfully. All is well with this one.


The message was accepted by the mobile network but cannot be delivered. The network has discarded this message and will not attempt to redeliver it. There are a variety of reasons why SMS messages may not be delivered. We provide a simplified set of error codes and categories that help you to understand why a particular message is undeliverable and decide on next steps.


By default, we ask the mobile networks to continue to retry delivery of messages over a 48 hour period. If this expiry time is reached without either the message being delivered or a permanent error returned (when the message will be marked as UNDELIVERABLE) you’ll receive a delivery report with an EXPIRED status. You can reduce the expiry time by using the ‘validity’ parameter in our SMS API to set the number of minutes before an EXPIRED status is returned.


If the mobile network does not accept the message you’ll receive a delivery report with a status of REJECTED. There can be several reasons for messages being rejected, such as the number in question no longer being assigned to a handset.

Why does the status of a delivery report change?

Where you have an non-permanent delivery report status like SENT, this outcome will be updated to DELIVERED when the message is actually delivered to the handset. Non-permanent delivery outcomes can change when a new status replaces it.

How long does it take for SMS delivery notifications to be updated?

New updates are received and updated in real time. So as soon as a new delivery report status is received, the delivery report outcome is updated.

What’s the difference between a delivery report and a DLR?

Delivery report and DLR are exactly the same thing. DLR is simply an abbreviation.

Accessing SMS delivery reports

At the SMS Works, we provide 3 ways that you can view, download and access your delivery reports.

1 Login to your account

Having logged in to your account, go to Delivery Reports. Here you’ll see the last 1000 messages along with the delivery outcome.

You’ll also see the mobile number, what you used as the sender ID and the number of credits used to send the message.

view of SMS delivery report

By clicking on the eye icon you can view detailed information on any of the messages.

detailed delivery report

The delivery report will also indicate whether our AI SMS shortener has been used to reduce the number of characters used to send the message.

SMS delivery report with AI optimisation

The number of credit used and saved will also be show,

2 Custom delivery report export

You can also choose to export export delivery reports for a given date range or other criteria that you can set.

select delivery report criteria

3. SMS delivery reports sent to a webhook

We will make an HTTP POST for each delivery report to the URL end-point that you specify on your account page. You will need to write code to handle these reports, if you wish to do so automatically.

To set the URL, login to your account and go to Profile and then webhooks. Here you can set the URL to which you want delivery reports to be posted.

setting the SMS delivery report URL

You can also set up delivery report monitoring alarms. This tool will send you an email notification if your webhook for forwarding delivery reports fails or is unresponsive.

It’s a powerful safeguarding tool to ensure that delivery reports are forwarded to your systems as expected.

If you would like a visualisation of your delivery reports without getting lost in data, our SMS insights tool will help. It’s an SMS analytics platform that provides a number of charts and tables to help you understand your SMS activity.

It’s free to all customers.

Delivery reports and sending to international phone numbers

In the UK, mobile networks handle delivery reports in the same way and they are typically very reliable indeed.

It’s very rare for a delivery report to be missing, incomplete or inaccurate.

International networks are often not nearly as reliable in providing accurate delivery reports. SMS providers can only pass on the information that they receive from the networks and if there is missing or incorrect data, there isn’t much that the SMS company can do to resolve it.

This is worth bearing in mind if your SMS campaigns send significant amounts of international SMS traffic.

Calculating the SMS delivery rate with DLR reports

calculating SMS delivery rate

The average non-delivered rate for business SMS traffic in the UK is 11.2%.
This figure is surprisingly high and is mainly due to companies not keeping their SMS data as clean as possible.

Often dead numbers are retained in the database or the number format might be completely wrong.(Numbers are too short, too long or contain non-numeric values.)

Delivery reports allow you to calculate the non-delivered rate for all your SMS activity.

It’s a simple calculation.

SMS delivery rate calulation

How can you use delivery report data to improve mobile phone quality data?

SMS delivery reports are an extremely valuable resource to help you improve the quality of your customer data.

There’s no point in sending messages to bad numbers.

If some of your mobile numbers are incorrect then you’re not communicating effectively and the response rates to your campaigns will be suppressed. Worse still, your customers will not be receiving vital information.

Data cleansing and improvement can be a painstaking task.

The best way to tackle it is to be systematic and stick to a process.

There is no magic solution and every organisation will need to tackle it in their own way.

Firstly download your SMS delivery reports for the past month and identify all numbers that have an undelivered outcome.

Match these individual numbers against your customer data and identify email addresses for each customer.

Add the email addresses to the delivery report.

You can then do a merged email asking customers to update their mobile number. The correct number can then be allocated to the record, ready for the next SMS campaign.

If you need to clean your database before sending your text campaign, you could use an HLR lookup service which checks the number is active without actually sending a text.

Are SMS delivery reports free?

Delivery reports are free, there is no additional charge for them.

How long are delivery reports retained?

Most SMS providers retain delivery reports for 90 days, then they are archived. This is due to the fact that SMS delivery reports create huge file sizes.

If your organisation has a specific SMS data retention policy we can work with you to put this in place.

SMS delivery reports, data security and persona data

data security and SMS delivery reports

Sometimes you may wish to delete delivery reports and all personal data as soon as the message has been successfully delivered.

Many organisation have strict personal data policies that require personal data, including SMS DLR reports to be deleted immediately.

To allow this, The SMS Works have a TTL (time to live) parameter that allows you to specify a set number of minutes, after which the delivery report will be permanently deleted.

This does of course mean that you won’t be able to refer to the delivery reports at a later date.

author avatar
Henry Cazalet Managing Director
Co-founder and Director of The SMS Works, a low cost and powerful SMS API for developers. About Henry