Glossary

Delivery receipt (DLR)

A delivery receipt (DLR) is the status report a network returns after an SMS is delivered or fails. What DLR statuses mean and why a missing receipt isn't proof of failure.

Last updated

A phone with chat bubbles; one messaging-app check says registered, another is unknown.A phone with chat bubbles; one messaging-app check says registered, another is unknown.

A delivery receipt (DLR) is a status report that tells the sender of an SMS what happened to it: delivered to the handset, failed, expired or still pending. The recipient's network generates it, and the messaging provider passes it back to the sending application, usually as a webhook. DLRs are how A2P senders measure delivery rates and spot broken routes.

Where do delivery receipts come from?

In mobile networks, the receipt is the SMS-STATUS-REPORT defined in 3GPP TS 23.040, Technical realization of the Short Message Service. The sender sets a flag asking for a status report when it submits the message. When the message centre delivers the SMS, or gives up, it sends back a report with a status code.

Between businesses and messaging providers, receipts usually travel over the SMPP protocol or an HTTP API. The SMPP 3.4 specification suggests a text format with fields such as stat and err. Common stat values:

StatusMeaning
DELIVRDDelivered to the handset
UNDELIVCould not be delivered (for example, invalid or barred number)
EXPIREDValidity period ended before delivery, often because the phone was off
REJECTDRejected by the network or a filter
ACCEPTD / ENROUTEAccepted or in transit, no final status yet
UNKNOWNThe final status can't be determined

Providers usually map these, plus network-specific error codes, to their own simpler statuses.

Why are delivery receipts unreliable?

DLRs are useful but not exact:

  • Coverage varies. Some networks, countries and routes don't return receipts, or return only intermediate ones.
  • Timing varies. A receipt can arrive seconds or hours later, or never.
  • Some routes misreport. Low-cost routes have been known to report messages as delivered when they weren't, or to strip receipts. A sudden jump to near-perfect delivery on a cheap route deserves a check.
  • Delivered isn't read. A receipt says nothing about whether a person saw the message, or whether the right person owns the number.

Treat a missing receipt as unknown, not as failed. Use test messages to handsets you control to check a route.

What can you learn from failed receipts?

Patterns in failures point to list problems:

  • Many UNDELIV results with "unknown subscriber" errors suggest disconnected or mistyped numbers.
  • Failures to landlines mean non-mobile numbers are in the list. See line type.
  • Many EXPIRED results suggest phones that are off or out of coverage for a long time, or abandoned SIMs.

Cleaning those numbers before the next send lowers cost and protects sender reputation.

How does MobileValidate relate to delivery receipts?

MobileValidate doesn't send messages, so it doesn't produce DLRs. It answers questions you'd otherwise learn from failed receipts, before you pay for the send. The carrier lookup returns the line type and current carrier. The upcoming HLR lookup will report whether a mobile number is reachable right now, a direct measure of number reachability. Unknown answers are free. See SMS cost reduction for how teams combine pre-send checks with their own receipt data.

Frequently asked questions

Does a delivered DLR mean the person read the message?

No. It means the network reports that the message reached the handset. It says nothing about whether the recipient opened or read it.

Why do some messages never get a DLR?

Not every network or route returns receipts, some return them late, and some messages expire before a final status is known. A missing receipt is an unknown, not a failure.

Can I check whether a number can receive SMS before sending?

Partly. A carrier lookup shows whether the number is mobile, and an HLR lookup shows whether a mobile subscriber is currently reachable. Only an actual send produces a delivery receipt.

All articles