Key Takeaways
- Indonesia OTP on an Android gateway is a Telkomsel, Indosat, or XL SIM you registered (NIK) and keep in credit — not a Singapore aggregator number your users will ignore.
- Jakarta DLR is not Surabaya DLR. Canary on the islands you sell, on cold handsets.
- Bahasa copy is usually still Latin GSM-7 if you avoid smart punctuation. Do not wrap a six-digit code in a paragraph.
- Raise OEM/Android SMS rate ceilings for the auth phone; carrier fair-use and prepaid caps still apply. Login codes never share the promo modem.
- Priced by devices and SMS send volume. You use your own phone and operator SMS credit. Rupiah airtime is yours.
What this page is not
Not the market overview. That is SMS gateway for Indonesia. These notes are login OTP: which SIM, which template, which peak you must not collide with. Sender-ID and promotional A2P sit with counsel and Kominfo— not as a certification we sell.
OTP that works on Telkomsel in Jakarta can still stall on a prepaid XL SIM you never topped up in Surabaya. Measure the radio you actually own.
Local CLI across an archipelago
Users answer numbers that look like home. A US/SG aggregator CLI can land late or in spam. The Android path sends through your pulsa. You still pay Telkomsel, Indosat, or XL per SMS. Product pattern: OTP verification.
OTP checks that fail in Indonesia
| Check | Failure lookalike | Fix |
|---|---|---|
| Operator mix | “App is down” on one island | Second device, matching SIM, pin deviceIds |
| Pulsa / postpaid cap | Submit OK, never delivered | Balance ritual; spare charged phone |
| NIK / prepaid expiry | SIM dies after a contractor leaves | Org KYC, inventory the ICCID |
| OEM killers | Overnight pairing drop | Device setup |
| WhatsApp on the same handset | Battery + focus stolen | OTP phone does one job |
Bahasa templates vs GSM-7
Bahasa Indonesia in Latin script stays GSM-7 if you skip emoji and typographic quotes. {app} kode {otp} is enough. Concatenated onboarding essays delay the PDU and break SMS Retriever hashes if you change the prefix carelessly. Keep the prefix stable.
Stand up an ID OTP radio
- Map user operators. Telkomsel-heavy outside Java is a different mix than Greater Jakarta. Hold matching SIMs; pin deviceIds.
- NIK-register in the org’s name. Contractor leftover prepaid is a custody and shutdown risk.
- Pair a dedicated OTP phone. Charger, data, OEM exemptions. Not the sales Android that also runs WhatsApp Business.
- Latin GSM-7 code line. {app} kode {otp}. Hindari emoji and curly quotes. Measure if you add more Bahasa.
- Idempotent resend with a cap. Failed loops still debit pulsa. Invalidate the old code when you issue a new one.
- Canary Jakarta and one outer city. Cold handsets. Reboot. Then Lebaran staffing so the radio is not in someone’s suitcase.
DLR: delivery reports. Webhooks: SMS webhooks. API: SMS API documentation. Extra radios: multi-device and dual SIM.
Lebaran, payday, and blast SIMs
Greeting CSVs and promo pacing belong on another device. Raise OEM rate ceilings on the auth phone if Android throttles; that does not create unlimited carrier send. Dual SIM in one chassis is still one battery and one OEM killer.
Airtime and platform fee
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. Free is 300 SMS lifetime for canaries, not a national launch. Paid from $19/month. Device and SMS volume pricing.
Next steps
Org-owned otp-id SIM, GSM-7 codes, Jakarta plus one outer canary, greetings on a different radio. Use the geo page for market context only.
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
- device and SMS volume pricingPlans and allowances
- SMS gateway by regionCountry-specific notes





