BroadNet
Fundamentals BroadNet answer

What is a DLR (Delivery Receipt)?

Last reviewed 1 min readReviewed by BroadNet engineering
Quick answer

A DLR is the asynchronous confirmation that an SMS has been delivered (or failed to deliver) at the handset. It is generated by the recipient operator's SMSC, returned over SMPP via deliver_sm or HTTP webhook, and carries a state (DELIVRD, UNDELIV, REJECTD, EXPIRED) plus an operator-specific error code.

Plain-language definitionVendor-neutralReviewed May 27, 2026
DiagramHow an A2P message reaches the phone
  1. Your applicationSends over the REST API or SMPP
  2. BroadNet platformValidates, routes and bills each message
  3. Operator SMSCDirect operator connection
  4. Subscriber handsetThe message is delivered
The delivery receipt (DLR) travels back along the same path to your webhook
The long answer

Everything worth knowing, nothing that isn't.

§01

What 'delivered' actually means

DELIVRD means the recipient's MSC has reported successful radio delivery to the handset — the network is satisfied. It does not mean the user read the message, opened the messaging app, or even had their screen on. Treat DLR as a network-level acknowledgement, not a read receipt. (For read receipts, use RCS or WhatsApp.)

§02

The error codes you actually see

GSM Cause Codes 1–127 are the protocol-level reasons (absent subscriber, equipment failure, etc.). SMPP error codes 0x0000–0x00FF are the SMPP-level reasons (invalid source address, congestion). Operator-specific TLVs sometimes carry richer context (radio out of coverage, handset memory full). A good aggregator translates the noisy operator codes into a clean error taxonomy you can act on. BroadNet's DLR feed normalises across 200+ operators into a 25-code error vocabulary.

§03

Why DLRs come back late

Many reasons. Roaming subscriber off-network for hours. SMSC store-and-forward retrying for the validity period (default 24 hours; up to 72 hours for some carriers). Operator A2P routing path going through three intermediate SMSCs each adding their own queue delay. Mature monitoring tracks DLR latency p50/p95/p99 by destination operator and alerts when a route degrades — see /products/dlr-monitoring patterns.

§04

What to do with the DLR

Three actions. Mark the message as delivered/failed in your system of record. Trigger downstream business logic (cart recovery flow continues, OTP retry kicks in). Feed it back into a route-quality scoreboard so your aggregator can rebalance. The third is what separates a CPaaS from a wire — BroadNet uses your DLRs to drive route selection in real time.

BNWritten by the BroadNet engineering team·Operating carrier-grade messaging since 2003, headquartered in Dubai·Editorial standards
Build with this

Need help wiring this up?

The pages below are the products and integration guides that put this concept on the wire. If you'd rather walk through it live, our engineering team takes calls same-day during MENA working hours.

Talk to our engineering team
Feedback

Was this answer helpful?

Your vote helps us prioritise which answers to expand with examples, diagrams, and code snippets.

Was this answer helpful?
Thanks — noted. We'll keep this answer maintained.
Got it. Tell us what was missing — send a quick note.

How we write and review content

Still need help?

Talk to a real engineer about your build.

We reply within one business day, and production accounts get 24/7 support. Our solutions engineers ship code, not scripts.

$ curl -X POST https://api.broadnet.me/sms/sendSms
Response SLA
Test-access requestsReply within 1 business day
Production24 / 7 · < 15 min
Operator NOC24 / 7 · pager