DLR

A delivery receipt reports the mobile network's status for a sent SMS, such as delivered, expired, rejected or unknown.

Definitions only — a term explained here is not a service we sell.

A delivery receipt (DLR) is the status a mobile network returns for a submitted SMS. It is a network status, not proof that a person read the message.

Codes differ between networks, so map each state to an internal status.

Receipt and states

The SMSC returns a message ID when it accepts a submission, then sends the receipt asynchronously. Reconciliation matches it by ID, not send order. The states are the SMPP message_state set (accepted, enroute, delivered, expired, deleted, undeliverable, rejected and unknown), not the 3GPP TS 23.040 status-report values. Not every network sends every state. Intermediate states may be suppressed. Some routes lose receipts or translate states.

Where the receipt comes from

  1. Application
  2. SMPP gateway
  3. SMSC
  4. HLR / HSS
  5. MSC / MME
  6. Handset
  7. Delivery receipt
The application submits through an SMPP gateway and SMSC; the delivery receipt is highlighted as the final step.
Text description

The application submits to an SMPP gateway, which passes it to the SMSC. The sequence then shows the home location register and MSC before the handset. The delivery receipt is the highlighted final step.

What the state does not prove

A delivered state means the network believes the message reached the handset. It does not prove the handset displayed it or the content arrived intact. The sender ID may not survive. On a concatenated message, receipts can arrive per segment or per message, so reconciliation must know the route's model. The SMPP decoder shows the raw receipt fields.

FAQ

Why is a DLR slower than the message?

The receipt comes from the recipient network, so it can lag the message. Retries and offline handsets add delay.

What does unknown mean?

The network could not determine a final state, often because a downstream link returned none. Treat it as unresolved, not delivered.

Should I retry on failure?

Only on states that can change, such as temporary unreachability. Retrying on invalid numbers adds message attempts without improving delivery.

Learn more

Sources

  1. 3GPP TS 23.040: Technical realization of the Short Message Service (SMS), status reports
  2. SMPP v3.4 specification, section 5.2.28 message_state