Why does my DLT-registered SMS template keep getting rejected or not delivered?
The most common reasons: the live message text no longer matches the registered template's fixed wording exactly, a variable value doesn't match its declared type under TRAI's pre-tagging rules, a URL or callback number isn't on your registered CTA whitelist, or the PE ID / Header / Content Template ID sent with the message doesn't line up with what's registered. Run the message and template through the validator to check the first two instantly.
What is a PE ID in DLT registration?
Principal Entity ID — a unique identifier assigned to your business when you register as a sender on a telecom operator's DLT platform. It has to be included in every SMS API payload alongside the Header and Content Template ID.
What is a Content Template ID?
The identifier assigned to a specific SMS content template once the content template registrar approves it. Every outgoing message is checked against the registered template tied to the Content Template ID you supply in the payload.
Is the [VARIABLE] bracket format still accepted in DLT templates?
Many operator portals still display it, but TRAI's direction dated 18 November 2025 requires new templates to use one of six typed tags instead of a generic placeholder: #numeric#, #url#, #urlott#, #cbn#, #email#, or #alphanumeric# (also shown as {#numeric#} etc. on some portals). See the full breakdown.
How many characters fit in one SMS segment?
A single GSM-7 encoded SMS holds up to 160 characters; split across multiple concatenated segments, each part holds 153 characters. A Unicode SMS (needed for Devanagari/other non-Latin scripts, or emoji) holds up to 70 characters single-segment, or 67 per part when concatenated.
Why did my SMS switch from GSM-7 to Unicode and cost more segments?
As soon as a message contains even one character outside the GSM 7-bit default alphabet and extension table — an emoji, a smart/curly quote, an em dash, or non-Latin script — the entire message is sent as Unicode (UCS-2), dropping the per-segment limit from 160 to 70 characters. The validator flags this under "SMS encoding".
Does this validator check my template against the live TRAI DLT registry?
No — there's no public API for that. Everything runs locally in your browser; it only checks template structure, variable typing, and SMS encoding/segments. It cannot confirm your PE ID, Header, or Content Template ID are actually registered — verify those on your operator's DLT portal.
What happens if I add extra text to an approved template, like a promo line?
Any text not part of the registered template — even one appended sentence — breaks the structural match, and the operator's scrubber will typically reject the message. Extra content needs to be part of the registered template itself, or registered as a separate template.
Can two variables sit next to each other with no text between them?
Generally no. Under current tagging rules only #alphanumeric# may sit directly next to another variable tag without static text between them — every other combination needs fixed wording as a separator.
How long does DLT content template approval take?
Typically around two working days once submitted to the content template registrar, though this varies by operator and template complexity.
Still have a template that won't match?
Paste it into the validator and see exactly which check fails. Open the validator →