Key Takeaways
- CodeIgniter order alerts through an Android SMS gateway are server-side HTTPS to POST /messages — not a Composer “Complete SMS SDK.”
- Persist the gateway message id next to the order id. HTTP 200 is accepted, not delivered.
- Use Idempotency-Key from the order (plus event type) so payment webhooks do not double-text.
- Confirm live JSON in Developer Center. This page is the shop-floor shape.
- You bring the Android and operator credit. Platform pricing is devices plus send volume.
CI is the shop; the phone is the radio
Paid, packed, or delayed: the customer wants an SMS from a number they can save. CodeIgniter holds the order. The Android SIM sends it. Transactional SMS. PHP samples: PHP HTTPS/JSON. Framework docs (CI, not us): CodeIgniter user guide.
Live contract: Developer Center. Do not invent a ci_order_sms() helper as if it were our API. We meter devices and volume. Do not title this “Unlimited SMS.”
HTTPS from the server
Bearer key in env. POST https://app.sms-gateway.app/api/v1/messages with to and text. Hub: Android SMS gateway API. Pairing: setup.
“If the order webhook retries, the customer should not get three ‘shipped’ texts. The key is the order, not the HTTP attempt.”
Order-alert failure modes
| Symptom | Likely cause | First check |
|---|---|---|
| Checkout slow | Inline curl to the radio | Queue a job; return the order page |
| Duplicate shipped SMS | No Idempotency-Key | Key = orderId + event |
| CRM says sent, customer empty | Mapped accept to delivered | DLR / webhooks |
| OTP delayed during a sale | Same device as marketing | Named order-alert / OTP pools |
| Pending after pack-out | Phone Doze / empty load | Last-seen; USSD balance |
Idempotency is the order id
Payment processors retry. Packing scans double. Store gateway ids on the order row. Isolate OTP from promo and from high-volume “we shipped” bursts if login matters more.
Do not send in the HTTP request
CI4 queues or a small worker. Pace to the handset. Spare phone for peak sale days. Multi-device.
Next steps
Canary one paid-test order to a staff SIM. Confirm delivered webhook before Black Friday. Pricing. Operator credit stays yours.
Related product pages
Jump to the live product docs for this topic—not another long-form article.
- SMS API documentationLive endpoint reference
- device and SMS volume pricingPlans and allowances
- transactional SMS for orders and alertsEvent-driven messages
- Android SMS gateway product guideDefinition, product, and how to buy





