PHP: Parse DLR from an Android SMS Gateway API

Featured illustration for PHP: Parse DLR from an Android SMS Gateway API

Parse DLR statuses from an Android SMS Gateway API in PHP: status mapping, precedence, poll vs push, and outbox updates.

Written by the SMS Gateway team for operators who run phones and airtime themselves — not for theoretical cloud SMS demos.

InformationAndroid SMS GatewayAPIDevelopers
Article
Published
November 17, 2025
Updated
December 9, 2025
Reading time
17 minute read

Key Takeaways

  • php android sms gateway api parse dlr: map delivery statuses in one PHP class — REST only, not a Composer SDK product.
  • HTTP accept ≠ delivered; DLR/webhooks close the loop.
  • Precedence prevents delivered→pending regressions.
  • Priced by devices and SMS send volume. You use your own phone and operator SMS credit. BYO Android + operator airtime.
  • Confirm live enums in Developer Center.
  • Free is 300 SMS lifetime; paid from $19/month.

What a DLR is

Search intent for php android sms gateway api parse dlr is making delivery observable after accept. Service pricing is based on device count and total SMS sent through the gateway. Live fields: Developer Center. Samples: PHP code samples. Hub: Android SMS Gateway API.

If your order timeline flips to “delivered” on HTTP 200 from send, you are lying to support. Wait for the DLR mapper — or say “accepted.”

Status mapping table

Raw (conceptual)MappedNote
delivered / successdeliveredTerminal success for that send
failed / rejectedfailedTerminal; do not auto-retry OTP blindly
pending / queued / sent_to_radiopendingWait; alert if aged
unknown stringpending + logNever invent delivered

Push vs poll

Prefer webhooks when available; poll as reconciliation. Same mapper for both. Sibling: webhook integration. Not the same as inbound two-way parsers — see two-way SMS.

Precedence rules

Terminal states win. Never allow a late pending to overwrite delivered. Failed OTP challenges stay failed — issue a new challenge id. Priced by devices and SMS send volume. You use your own phone and operator SMS credit.

PHP DLR checklist

  • One mapper class; tested unknowns.
  • No Composer “Complete PHP SDK” expectation.
  • Push + poll reconciliation.
  • Precedence prevents regressions.
  • Alert stuck pending with device last-seen.

Next steps

Send a canary, parse its DLR, then wire production outbox. Setup. Pricing. Downloads.

Jump to the live product docs for this topic—not another long-form article.

FAQ

Frequently asked questions

Direct answers about android sms gateway api.

How do I parse DLR in PHP?

Ingest webhook or poll payload, normalize status via one mapper, update outbox with precedence rules. Confirm fields in Developer Center.

Is there an official PHP DLR SDK?

No. Use HTTPS JSON. /codebase-php shows sample shapes.

Does HTTP 200 on send mean delivered?

No. Accepted only.

Who pays for SMS?

You pay the operator. Gateway meters devices + volume.

Live API?

Developer Center (https://docs.sms-gateway.app/).
Keep learning

Topically related guides—chosen by subject overlap, not a fixed sitewide footer.

Browse the full Android SMS gateway knowledge base or return to how an Android SMS gateway works.

Get started

Test the gateway on your own Android phone

Install the app, pair one device, and validate your API flow before choosing a paid plan.

You supply the phone, SIM, and operator SMS credit.