Key Takeaways
- A delivery report is the operator’s story about a submit — not a screenshot of the recipient inbox.
- Pending is normal. Treat stuck pending plus a growing queue as an incident, not a single slow SMS.
- Some routes never return a useful DLR. Design OTP retries on your TTL, not on a missing “delivered.”
- Webhooks carry DLR into your backend. Verify signatures. Live fields live in Developer Center.
- You still pay operator airtime for the radio burst even when DLR later says failed.
android sms gateway delivery reports are how you stop guessing whether the phone actually handed a message to the operator. They are also how teams over-promise. A green DLR is not “the customer saw the code.” It is a network ack with gaps.
Product path: SMS delivery reports (DLR). API context: Android SMS Gateway API. You supply the SIM and airtime. Pricing is devices plus send volume.
Submit → SMSC → handset
*when the carrier returns it. Some routes never do.
What a delivery report is (and is not)
Your backend calls send. The control plane stores a job. The Android app gives it to the radio. The operator may later say the message reached the destination network or failed. That later sentence is the DLR. It is not a read receipt. It is not proof of consent. It is not a substitute for looking at a staff inbox when you change templates.
Phone gateways inherit GSM reality: roaming, prepaid empty, handset off, SMSC congestion. Aggregators hide some of that behind a rented number. You chose the SIM path; you get the honesty and the holes. The Android SMS gateway overview is the radio picture.
If your SLA is “JSON delivered,” you will ship to a spam folder and call it success. Canary the bubble.
Status table
Names in the panel can be slightly friendlier than the wire. The jobs are stable.
| What you see | What it usually means | What you should do |
|---|---|---|
| Accepted / queued | Control plane has the job; phone may not have sent yet | Watch queue depth and device online |
| Pending | Submitted; waiting on operator or device | Normal for seconds to a bit longer; not an instant page |
| Delivered | Carrier reported success toward the destination | Good signal; still not “user read OTP” |
| Failed / expired / rejected | Radio, credit, destination, or policy said no | Classify: your SIM vs their number vs content filter |
| Unknown / no DLR | Route does not return reports | Do not block the user forever; use TTL + canary stats |
Panel, API, webhooks
Operators watch the device panel. Engineers subscribe to webhooks so tickets and auth retries are not a human refreshing a grid. Verify X-SmsGateway-Signature (name as documented live). Idempotency matters: the same DLR can arrive twice. Field lists belong in the Developer Center, not copied from a blog.
Lookup by message id is the support path when a customer swears nothing arrived. Pair it with device health: a beautiful failed DLR on an offline phone is a charger problem.
Why DLR lags the inbox
Some networks ack late. Some ack early. iPhone vs Android presentation differs. Concatenated parts can split outcomes. Unicode can change how the destination stores the body. For template work, a receiver handset beats a dashboard. See test on real handsets.
Using DLR in OTP without lying
Issue a code with a TTL you print in the SMS. If the user taps resend, invalidate the old code. Use DLR as a hint to fail over the device when a whole pool is pending — not as a reason to spray three live codes to one number. Product shape: OTP verification.
Ops: what to page on
- Accept rate collapsing while the API still returns 200.
- Pending share spiking with queue depth on one device.
- OTP p95 inbox time (canary) over SLA — DLR-only metrics will miss spam-folder failures.
- Retry storms after recovery: they burn airtime and look like a second outage.
Incident shape: incident response for outage.
Next steps
Send ten canaries, watch panel + webhook + inbox, then write which statuses you will page on. Pair a phone with the Android app. Free allowance is 300 SMS lifetime — enough to learn the gaps before you promise a customer SLA.
Related product pages
Jump to the live product docs for this topic—not another long-form article.
- SMS delivery reports (DLR)Delivery status tracking
- SMS API documentationLive endpoint reference
- device and SMS volume pricingPlans and allowances
- Android SMS gateway product guideDefinition, product, and how to buy





