Key Takeaways
- Most “permission denied” on this product is the Android app lacking SMS (and related) grants, not a missing cloud flag.
- OEM skins re-deny after updates. Re-check SEND/READ SMS, notifications, and battery exemptions on the same screen ritual as pairing.
- Work/profile and dual-user setups hide the grant. The gateway app must run in the profile that owns the SIM.
- HTTP 403 from the API is Bearer/plan/device — not the handset permission dialog. Split those tickets.
- Priced by devices and SMS send volume. You use your own phone and operator SMS credit. A denied radio still occupies a device seat.
What “permission denied” actually is
Pairing and grants live in device setup. Android documents runtime permissions generally at Android permissions. This spoke is the gateway-shaped version: SMS send/read, OEM overlays, and not confusing that with an API 403.
If the panel says paired and the phone says no, believe the phone. GSM never left.
Grant vs still-denied
| You granted | Still fails when | Next |
|---|---|---|
| SMS toggle | OEM autostart off | Vendor Settings, not Play permissions only |
| SMS toggle | Work profile | Install in the profile that owns the SIM |
| SMS toggle | Wrong dual-SIM slot | Dual SIM routing |
| Everything on device | JSON 403 | API key / plan / deviceIds — Developer Center |
| Everything on device | Inbound silent | Default SMS role / notification access; two-way setup |
Runtime SMS permissions
SEND_SMS (and READ_SMS if you ingest inbox) are the core. Denying them is a hard stop, not a degraded mode. After a Play or OEM update, Android may silently reset. Treat permission as a weekly canary, not a one-time onboarding checkbox.
OEM overlays and default-SMS role
Battery “optimization” looks like permission denied in the panel because jobs never reach the radio. Follow the same exemptions as setup. If inbound is required, complete the in-app role prompts instead of running a second SMS app as default on that SIM.
Clear the denial
- Read the exact denial. App toast vs API JSON vs OEM Settings. Screenshot the owner before you change three layers.
- Grant SMS in App info. SMS / phone / (if prompted) notifications. Repeat after every major OS update.
- OEM extras. Autostart, battery unrestricted, lock the app in recents. Same ritual as pairing.
- Confirm profile and SIM. Personal vs work. Dual SIM: the granted app must see the slot you send on.
- Re-pair if the token is stale. Permission was never the only failure. A revoked pairing looks similar in the panel.
- Canary a staff MSISDN. One PDU, DLR, inbound STOP test. Then put the phone back on charge.
App: download the Android gateway app. API: SMS API documentation.
API 403 is a different denier
Bearer token, wrong account, device not on the plan, or sending after Free’s 300 SMS lifetime. That is not the Android dialog. Split the ticket or you will toggle SMS grants until the battery dies.
Cost of a mute radio
Service pricing is based on device count and total SMS sent through the gateway. You need a working Android phone with a SIM and SMS credit from your mobile operator. Operator message costs are yours—we do not sell carrier SMS balance. The device seat still counts while it cannot send. Paid from $19/month. Device and SMS volume pricing.
Next steps
Name the denier, grant SMS, finish OEM extras, canary, then leave the phone on charge. If JSON is 403, stop touching the handset.
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
- Android SMS gateway product guideDefinition, product, and how to buy
- download the Android gateway appGet the APK





