Under TRAI’s direction of 18 November 2025, every variable in a DLT content template must be tagged with the type of data it will hold, instead of using the generic {#var#}. Operators check each value you send against its tag, and messages that fail the check are rejected once enforcement is fully on.
The six tags #
| Tag | Use it for | Rules |
|---|---|---|
{#numeric#} | OTPs, amounts, account or order numbers made only of digits | Digits 0–9 only; up to 40 characters |
{#alphanumeric#} | Names, reference IDs, ticket numbers | Letters and numbers; up to 40 characters; must not contain a link |
{#url#} | Website and landing-page links | Up to 120 characters; must match a whitelisted URL CTA |
{#urlott#} | App download and OTT links, such as WhatsApp links | Up to 120 characters; must match a CTA registered under OTT or APK |
{#cbn#} | Callback numbers | 3–14 digits; must match a whitelisted Number CTA; keep “+91” in the fixed text |
{#email#} | Email addresses | A valid email format; up to 40 characters |
Example #
Before: Dear {#var#}, your OTP is {#var#}. Track at {#var#}
After: Dear {#alphanumeric#}, your OTP is {#numeric#}. Track at {#url#}
Tips #
- Pick the narrowest tag that fits. For example, use
{#numeric#}for an OTP, not{#alphanumeric#}. - Make sure the values your system sends match the tag: no spaces or symbols in
{#numeric#}, and no links in{#alphanumeric#}. - Only
{#alphanumeric#}may appear back to back without fixed text in between.
Official source: TRAI Direction on variable tagging, 18 Nov 2025.
See also our blog post: Mandatory variable tagging for DLT SMS templates.