OTP SMS Going Over 160 Characters? Fix Guide
When your OTP SMS exceeds 160 characters: GSM-7 vs UCS-2 encoding, multi-part SMS, the cost impact, and template tightening tactics.
StartMessaging Team
Engineering
SMS has hard character limits. OTP templates that go over the limit silently fragment into multiple SMS, doubling cost and sometimes confusing the user.
SMS Character Limits
- GSM-7 (English / basic Latin): 160 chars per part.
- UCS-2 (Unicode, Hindi, etc.): 70 chars per part.
- Multi-part overhead: 7 chars per segment for the join header.
GSM-7 vs UCS-2
Stick to GSM-7-safe characters (basic Latin) to keep your OTP at 160 chars. A single Unicode character pushes the entire SMS to UCS-2 — meaning 70-char limit per part.
Multi-Part SMS
Carriers reassemble parts on arrival, but DLR is per-part. A partial-delivery condition is possible (rare).
Cost Impact
- 1 part: Rs 0.25.
- 2 parts: Rs 0.50.
- 3 parts: Rs 0.75.
Tightening Templates
- Drop “Thank you for using {brand}”.
- Drop apostrophes and curly quotes.
- Use “mins” not “minutes”.
- Don’t embed support phone in OTP SMS.
FAQ
StartMessaging templates are defaulted to single-part GSM-7 — you stay at Rs 0.25 / OTP without thinking about encoding.
Related Articles
Unicode (Hindi, Tamil, etc.) OTPs failing to send: GSM-7 vs UCS-2 encoding, DLT template language registration, and why a single accented character breaks delivery.
Learn how to write DLT SMS templates that get approved on the first attempt. Template types, variable syntax, rejection reasons, and operator-specific tips.
Tactics that cut SMS OTP spend by 30–70% in India: rate limits, idempotency, retry control, fallback channels, and choosing the right provider.
Ready to Send OTPs?
Integrate StartMessaging in 5 minutes. No DLT registration required.