Guide · Delivery
In short
When you dispatch an SMS, the carrier makes several attempts to deliver it to the recipient's handset. The outcome of those attempts — delivered, failed, never-arrived — is reported back to us by the carrier as a delivery report, or DLR. We surface the outcome per recipient in your dashboard.
This is different from most SMS dashboards, which aggregate delivery into a percentage without showing you which specific numbers received the message and which didn't. Aggregated charts hide bad sends; per-recipient reports let you investigate.
A message can end up in one of six terminal states. Most land in the first two.
Delivery · April reminder
198 delivered · 2 failed| Number | Network | Status | Time | Reason |
|---|---|---|---|---|
| +234 803 •• 5907 | MTN | Delivered | 09:04 | — |
| +234 812 •• 0176 | Airtel | Delivered | 09:04 | — |
| +234 809 •• 7234 | Glo | Delivered | 09:04 | — |
| +234 908 •• 1120 | 9mobile | Failed | 09:04 | DND blocked |
| +234 705 •• 8321 | MTN | Delivered | 09:05 | — |
| +234 818 •• 4442 | MTN | Failed | 09:05 | Unreachable |
The delivery table shows one row per recipient — phone number, network, status, timestamp, and a failure reason if applicable. You can filter by status, by network, or by reason when something goes wrong at scale.
When a message fails, the carrier tells us why. We surface the reason on the delivery row. The common ones:
Most delivery reports arrive within 5–15 seconds of dispatch. The carriers generate the DLR the moment the handset acknowledges receipt. If a handset is off or out of range, the carrier retries for a window — usually 24 hours — before marking the message as Expired.
In the dashboard, a recipient's status may sit in Sent for a few minutes before transitioning to Delivered. This is normal. If a status is still Sent 30 minutes later, it's likely on its way to Undelivered or Expired — we reconcile these automatically as the final state arrives.
A healthy delivery report for a well-maintained contact list looks like this:
If your numbers deviate meaningfully from this, something is wrong — either with the list, the routing, or the send itself. The next section walks through what to check.
Low delivery rates usually trace to one of four causes. Check them in order:
The most useful moment for a delivery report isn't after a clean send. It's after a batch where something obviously went wrong. Here's what we recommend, in order:
Delivery reports are more than a deliverability signal — they're an audit artifact. If a customer claims they never received their order alert, you can look up their phone number in the report and see: delivered at 14:07, or failed with "DND blocked" at 14:06. That answer is often the difference between a refund and a resolved ticket.
For compliance reviews, the full per-recipient report is downloadable as CSV (feature in build) or visible directly in the dashboard. We retain delivery reports for at least 12 months from dispatch.
Delivery FAQ
Yes. A send is billed the moment the carrier accepts it. The billing doesn't change based on whether the handset acknowledges (Delivered) or not (Undelivered). Expired and DND-blocked messages are not billed because the carrier rejected before attempting delivery.
At least 12 months from dispatch. Your billing ledger retains the record of the send indefinitely; the per-recipient delivery outcome is stored for 12 months and available in the dashboard.
Yes — the contact detail view shows every campaign that recipient has been part of, with per-campaign delivery status. Useful when a customer asks 'did you send me the receipt?'
Product
Per-number outcomes with failure reasons, timestamps, and export.
Read moreSolutions
At logistics volume, delivery reports become operationally critical — not optional.
Read morePricing
You only pay for messages the carrier accepted. Blocked and expired sends are not billed.
Read more