Key Takeaways
- laravel sms gateway with android device OTP: hash the code, enqueue POST /messages, expire in your app — Horizon green is not delivery.
- Do not rewrite /blog/laravel-sms-gateway. This spoke is auth SMS only.
- Isolate OTP deviceIds from bulk campaigns.
- Priced by devices and SMS send volume. You use your own phone and operator SMS credit.
- Free 300 SMS lifetime is a staff drill, not customer login.
- PHP HTTPS on /codebase-php. Not a Complete Laravel SDK.
Laravel OTP on an android device fails when the login controller awaits the modem. Hub: Laravel SMS gateway. OTP. OTP templates.
Priced by devices and SMS send volume. You use your own phone and operator SMS credit.
If the six-digit code is in
telescopeand in Slack, you do not have an OTP flow. You have a leak with a queue name.
OTP is a job with a TTL
Hash at rest. Expire in Redis/DB, not in the SMS. Queue the send. Developer Center.
What Laravel stores vs shreds
| Data | Keep | Drop |
|---|---|---|
| Code | Hash + TTL in auth | Logs, Telescope, tickets |
| Message id | Support window | Forever “just in case” |
| E.164 | While the account lives | After deletion + hold check |
| Promo footer | Never on OTP | Always |
Dedicated Android
Last-seen alert. Device health. Setup.
Boring copy
No STOP, no sale. Webhooks for DLR, not for printing the code.
Hub vs this spoke
Notifications sibling: Laravel notifications. This page is login only.
REST, not an SDK
PHP HTTPS samples. Notification channels still POST JSON.
Checklist
- Queued job, not the controller.
- Idempotency-Key per attempt.
- Bodies banned from logs.
- OTP device isolated.
- Staff canary on a cold phone.
- TTL matches the SMS phrase.
Next steps
Canary, then devices + volume.
Related product pages
Jump to the live product docs for this topic—not another long-form article.
- OTP and 2FA SMS on AndroidAuthentication flows
- SMS API documentationLive endpoint reference
- PHP REST send samplesPHP code examples
- device and SMS volume pricingPlans and allowances





