Short answer
Under a TRAI Direction dated 18 November 2025, every variable in an SMS content template must be tagged with the type of value it carries. The generic {#var#} placeholder gives way to typed tags such as {#numeric#}, {#alphanumeric#}, {#url#}, {#email#} and {#cbn#}. Operators check each message against its tags during DLT scrubbing, and messages that fail are rejected once the logger period ends. Links and callback numbers must also be whitelisted, and every message must travel through a declared PE-TM chain, which operators have enforced since 11 December 2024.
Overview of TRAI's 2026 compliance updates
From {#var#} to typed variables
Until now, the variable parts of a DLT template have been marked with one generic placeholder, {#var#}. The DLT platform had no way to know what a variable would carry, so a variable registered for a name could carry anything, including a link. TRAI's directions of February and May 2023 asked operators to limit variables and pre-tag each one for its purpose. The November 2025 Direction notes that these requirements had not been implemented. It makes tagging mandatory, using tags proposed by the Cellular Operators Association of India (COAI) and agreed by all access providers in September 2025.
| Step | What the Direction requires |
|---|---|
| New templates | Templates registered more than 10 days after the Direction must use tagged variables |
| Tag scrubbing | Within 30 days, operators start validating tagged values, including checks against whitelisted URLs, OTT and APK links and callback numbers |
| Existing templates | Must be modified to the tagged format within 60 days of tag scrubbing starting |
| Logger mode | For the first 60 days of tag scrubbing, messages that fail validation are still delivered, but a fault is recorded |
| Enforcement | After those 60 days, messages that fail tag validation are rejected |
| Notices | Operators identify the businesses (Principal Entities) whose messages generate faults and tell them what to correct |
Operators implement these steps on their own systems, so exact dates can differ between portals. On the Direction's timeline, logger mode would have ended in early 2026. If any of your active templates still use {#var#}, treat them as at risk of rejection and update them now.
Message traceability and PE-TM chain binding
TRAI requires every commercial message to be traceable from the business that sends it, the Principal Entity (PE), through every telemarketer (TM) that carries it to the operator. On the DLT portal, your business declares the telemarketers that carry its traffic, such as your SMS provider and any delivery partner it uses. Once the request is approved, the chain is registered and gets a chain ID.
Since 11 December 2024, operators have rejected messages whose chain is undeclared or doesn't match the declared chain. Tagging doesn't replace this check; it adds to it. A correctly tagged template still fails if the chain is wrong, and a correct chain won't rescue an untagged template.
About "14-digit traceability": some guides mention a 14-digit traceability requirement. We couldn't find one in TRAI's directions, its press releases or the operator guides listed below. Traceability is enforced through the PE-TM chain. The only 14 in these rules is the maximum length of a callback number on BSNL's portal.
Approved variable tags and usage rules
| Tag | Use it for | Example in a template | What is checked |
|---|---|---|---|
{#numeric#} | Numbers only: OTPs, numeric order numbers, and amounts written as plain digits | Your OTP is {#numeric#}. | Digits only, with no letters, commas, decimal points or other special characters |
{#alphanumeric#} | Letters and numbers: order IDs, PNRs, booking and ticket references | PNR: {#alphanumeric#} | Letters and numbers, up to 40 characters. Not for links: BSNL's portal rejects values that start with www, http or https |
{#url#} | Whitelisted web links: static, dynamic or short URLs | Track your order: {#url#} | Must match a link registered as a call-to-action (CTA) |
{#email#} | Email addresses | Write to {#email#}. | Must be a validly formatted email address |
{#cbn#} | Whitelisted callback numbers: mobile, landline or toll-free | Call {#cbn#} for help. | Must match a callback number registered as a CTA |
The Direction defines one more tag, {#urlott#}, for app download, OTT and APK links registered as CTAs. If your messages contain app links, use it instead of {#url#}.
The Direction writes the tags without braces, as #numeric#, #url# and so on. On DLT portals they sit inside braces like the old {#var#}, and some portals use short names. BSNL's portal, for example, uses {#num#}, {#alp#}, {#urg#} for URLs, {#uro#} for OTT and APK links, {#cbn#} and {#eml#}. Always use the exact form your own portal shows.
Usage rules to watch
- Amounts and dates: "1,250.00", "03/10/2026" and "10:30" all contain symbols, so they fail a numeric tag. Send plain digits where your message allows, or check which tag your portal accepts.
- Length limits: BSNL's guidelines allow 120 characters for links, 40 for numeric, alphanumeric and email values, and 3 to 14 characters for callback numbers.
- Number of variables: keep variables to the minimum the message needs. BSNL's guidelines allow up to three per template, with more only on justification.
- Back-to-back variables: BSNL's guidelines allow two variables with no text between them only when both are alphanumeric.
Before and after: example templates
These templates are illustrative examples, not taken from any customer. Only the placeholders change; the fixed text stays exactly as approved.
| Message type | Old template | Tagged template |
|---|---|---|
| OTP | Your login OTP is {#var#}. Do not share it with anyone. - YourBrand | Your login OTP is {#numeric#}. Do not share it with anyone. - YourBrand |
| Order update | Your order {#var#} has been shipped. Track it here: {#var#} - YourBrand | Your order {#alphanumeric#} has been shipped. Track it here: {#url#} - YourBrand |
| Support | For help with your booking, call {#var#} or write to {#var#}. - YourBrand | For help with your booking, call {#cbn#} or write to {#email#}. - YourBrand |
Step-by-step audit and template migration checklist
A business registers its entity, headers and templates on one operator's DLT portal, and other operators can identify it through that registration. Work on the portal where your templates are registered. If different teams registered templates on different portals, repeat the checklist on each one. Portal addresses are listed in our DLT registration guide.
- Export your active templatesOn Jio TrueConnect, Airtel DLT, Vi or BSNL, export or note every approved template with its template ID, header and category. Mark the ones your systems actually send, and deactivate unused templates where your portal allows it.
- Replace {#var#} with typed tagsMap each variable to a tag based on the values your application really inserts. An order number that sometimes contains letters needs
{#alphanumeric#}, not{#numeric#}. Keep the fixed text identical, including spaces and punctuation, and keep the same number of variables; new wording is a new template and goes through approval again. - Whitelist links and callback numbersRegister every URL, app link and callback number as a CTA before you resubmit, and put each link in a
{#url#}or{#urlott#}variable. For links that change per message, register a dynamic URL up to the question mark, such ashttps://smstake.com/track?, and send the full link, such ashttps://smstake.com/track?id=AB12, in the variable. Don't build links from a fixed domain plus an{#alphanumeric#}path: Vi's CTA guide says dynamic URLs need a question mark and must not have dynamic paths. - Resubmit and verify PE-TM bindingSubmit the updated templates through your portal's template edit or bulk tagging option, and track each request until it is approved. BSNL's portal, for example, offers a CSV upload that migrates approved templates in bulk. Then confirm the PE-TM chain lists the providers carrying your traffic today, update the template text configured with your SMS provider, and send a small test batch before full volume. Act quickly on any fault notice from your operator.
How SMSTAKE can help
SMSTAKE offers free DLT registration assistance to any business, including help with template submissions. Applicable operator fees, where they apply, are separate, and approvals are made by the operator's DLT platform. Read more in our free DLT registration support guide.
Moving your templates to tagged variables?
Send us the templates you use today, without any customer data. Our team will help you map each variable to the right tag and prepare the updated submissions. When you're ready to send, use SMSTAKE's DLT compliant Bulk SMS gateway.
Get Free DLT HelpSources
Checked on 3 October 2026. Rules change, so confirm current requirements on your DLT portal or with the official source before acting.
- TRAI Direction, 18 November 2025 - pre-tagging of variables in content templates (PDF)
- BSNL - Content Template Guidelines: variable types and template migration (PDF)
- Vi - CTA whitelisting user manual: static, dynamic and APK links (PDF)
- TRAI Direction, 30 November 2024 - message traceability through the PE-TM chain (PDF)
- TRAI Press Release No. 92/2024 - traceability requirement in force from 11 December 2024 (PDF)
- Jio TrueConnect - PE-TM chain binding user guide (PDF)
- TRAI Press Release No. 53/2024 - URL whitelisting and template rules (PDF)