DLT Registration and SMS DLT Templates (2026 Guide)
DLT registration for SMS in India: fees, documents, Jio, Airtel and Vi portals, then DLT templates with TRAI's 2026 variable tags and 12 D2C samples.

Updated October 2026.
An SMS DLT template is the exact message text a business registers on a telecom operator's DLT portal before it can send that SMS to an Indian number. Fixed words stay fixed. Each part that changes goes in a typed slot, such as {#numeric#} for an amount or {#url#} for a link. If the SMS that goes out doesn't match an approved template, the operator blocks it.
The typed slots are new. Until early 2026, every variable was written as {#var#}. TRAI's direction of 18 November 2025 made senders label what each variable holds, and messages that fail that check are now rejected. Many sample pages online still show the old format.
I ran CleverTap at Healthify, where SMS ran through Exotel, with Vi as our DLT operator. Rejections were rare for us, because most of what we sent were service messages with simple variables like a first name. The harder part was making SMS personal and deciding who got SMS instead of WhatsApp. I cover both below.
What DLT is and why every SMS in India needs a template
DLT (distributed ledger technology) is the shared registry operators run under TRAI's Telecom Commercial Communications Customer Preference Regulations (TCCCPR), last amended on 12 February 2025. Before a business SMS is delivered, the operator checks it against what the sender registered. This check is called scrubbing.
Four things get registered, in this order.
- Principal Entity. The business, registered with PAN, an address proof and a letter of authorisation. You get a Principal Entity ID (PE ID).
- Header. The sender name the customer sees, like a 6-letter brand code. Each header belongs to one entity.
- Consent template. The text you use to ask customers for permission, needed for promotional and some service messages.
- Content template. The SMS body itself, linked to a header and a category. Approval gives you a DLT template ID.
At send time, your CRM platform passes the PE ID, header and template ID to the SMS provider. MoEngage's DLT guide says an SMS that doesn't match an approved template will be rejected.

DLT registration: fees, documents and portals
DLT registration means registering your business as a Principal Entity on one operator's DLT portal. You register once, on any one portal, and the entity ID works across all operators. Your SMS provider can help, but the registration is in your business's name.
| Operator | DLT portal |
|---|---|
| Jio | trueconnect.jio.com |
| Airtel | dltconnect.airtel.in |
| Vi (Vodafone Idea) | vilpower.in |
| BSNL | ucc-bsnl.co.in |
DLT registration fees. Provider guides from Infobip and Exotel put the one-time entity fee at about ₹5,900 on the Jio, Airtel and Vi portals. Operators set and change the fee, so check the portal before you pay.
Documents you need. A business PAN, one proof that the business exists (GST certificate, certificate of incorporation, or a shop and establishment licence), a letter of authorisation on your letterhead, and ID proof for the person signing. Keep each file under 2 MB.
Steps. Pick a portal, register the entity and wait for approval, then register your headers, then your consent templates, then your content templates.
What changed in 2026: typed variable tags
TRAI's November 2025 direction replaced the single {#var#} slot with six tags. Each tag tells the operator what the variable may contain, and the operator checks the value when the SMS is sent.
| Tag | Holds | Checked against |
|---|---|---|
{#numeric#} |
Digits only: OTPs, amounts, counts | No letters or symbols |
{#alphanumeric#} |
Letters and numbers: names, order or booking IDs | Up to 40 characters |
{#url#} |
A web link | Your whitelisted links |
{#urlott#} |
An app download link | Your whitelisted app links |
{#cbn#} |
A callback number | Your whitelisted numbers |
{#email#} |
An email address | A valid email format |
Source: Annexure I of TRAI's direction of 18 November 2025 and its press release. Some portals use short forms, so match the exact spelling your operator's portal shows.
The timeline ran in three steps. New templates had to be tagged from mid-January 2026. Existing templates got 60 days to be edited, during which failed checks were only logged. After that, the direction says any message failing tag validation "shall be rejected outright". So if a template still uses {#var#} and your SMS stopped arriving this year, start there.

DLT SMS template format rules
Everything outside the tagged slots must match the sent SMS word for word, including spaces and punctuation. These are the rules that matter most, as of October 2026.
| Rule | What it means | Source |
|---|---|---|
| Variable tags | Every slot uses one of the six typed tags | TRAI, November 2025 |
| Variable count | Two by default. A third only in an exigency, with reasons recorded | TRAI, February 2023 |
| More than three | Only in special circumstances, with a justification, each variable pre-tagged | TRAI, May 2023 |
| Fixed content | At least 30% of the template is fixed text when more than three variables are allowed | TRAI, May 2023 |
| Slot placement | Variables don't sit next to each other, unless one value can't fit in 30 characters | TRAI, February and May 2023 |
| Brand name | Include the brand name in the template | WebEngage |
| Links and numbers | URLs, app links and callback numbers must be whitelisted | TRAI, August 2024 and November 2025 |
Sources: TRAI's directions of 12 May 2023 (which restates the February 2023 limits), 30 August 2024 and 18 November 2025, plus WebEngage's DLT guide. Operators apply these through their own portals, so check yours before you register.
The safe habit is two variables or fewer. Most messages need only one: "Your BRANDX order has shipped" needs no order number if the tracking link carries it.
DLT template categories: promotional, service and transactional
The category decides who gets the SMS and when. Portals use four labels. The definitions below follow WebEngage's DLT guide and Exotel's template guide, as of October 2026.
| Category | Use it for | Consent and DND |
|---|---|---|
| Promotional | Offers, sales, new launches | Not delivered to DND numbers. Time window applies |
| Service Implicit | Updates to existing customers, like order or delivery status | Goes to DND numbers. Implied consent |
| Service Explicit | Recommendations to people who opted in | Needs registered consent |
| Transactional | Bank OTPs and transaction alerts | Goes to all numbers, all day |
The Transactional label has been reserved for banks in practice, so most D2C brands and apps register order updates and OTPs as Service Implicit. Before you file a non-bank template as Transactional, confirm with your operator's portal that it will accept it.
Headers now carry a suffix, "-P", "-S", "-T" or "-G", for promotional, service, transactional and government messages, per TRAI's press release of 12 February 2025.
Promotional SMS has a daytime window, but platform guides give different hours. WebEngage's guide says no promotional SMS between 21:00 and 10:00, while Exotel's TCCCPR page says 9 AM to 9 PM. Confirm the current window with your SMS provider before you schedule a sale.
DLT consent template and why it matters
A consent template is the message you send to ask a customer for permission. It's registered on the portal like a content template. Promotional and Service Explicit templates need proof of consent, per WebEngage's guide.
TRAI's 2025 amendment set three consent rules worth knowing.
- Consent-seeking messages go out from a 127xxx short code, or another code TRAI prescribes.
- If a customer opts out, you can ask again only after 90 days.
- Senders must self-certify their headers, content templates and consent templates every year, or the sender or its headers are suspended.
DLT SMS template samples for D2C brands and apps
Most sample lists online are written for banks. These are for brands and apps, written in the 2026 format with two variables or fewer. Swap BRANDX for your brand, and check the category against your operator's portal.
| Use and category | Sample template |
|---|---|
| Login OTP Service Implicit |
{#numeric#} is your BRANDX login OTP. It is valid for 10 minutes. Do not share it with anyone. |
| COD confirmation Service Implicit |
Your BRANDX cash on delivery order of Rs {#numeric#} needs confirmation. Confirm or cancel at {#url#} |
| Order shipped Service Implicit |
Your BRANDX order {#alphanumeric#} has shipped. Track it at {#url#} |
| Out for delivery Service Implicit |
Your BRANDX order is out for delivery today. For help, call {#cbn#} |
| Delivery failed Service Implicit |
We could not deliver your BRANDX order today. Pick a new delivery slot at {#url#} |
| Refund processed Service Implicit |
Your BRANDX refund of Rs {#numeric#} is processed. It reaches your account in 5 to 7 working days. |
| Review request Service Implicit |
How was your BRANDX order? Rate it in 10 seconds at {#url#} |
| App goal reminder Service Implicit |
You are {#numeric#} kg away from your BRANDX goal. Log today's meals in the app: {#urlott#} |
| Cart reminder Promotional |
You left something in your BRANDX cart. Complete your order at {#url#} |
| Back in stock Promotional |
An item you wanted is back in stock at BRANDX. Shop it at {#url#} |
| Price drop Promotional |
An item on your BRANDX wishlist is now Rs {#numeric#}. See it at {#url#} |
| Sale Promotional |
The BRANDX sale is live. Get {#numeric#}% off sitewide till midnight. Shop at {#url#} |
A few choices are deliberate. Each sample writes "Rs", not the rupee sign, for a reason covered in the length section below. The out-for-delivery sample puts the phone number in a {#cbn#} slot, so the number must be whitelisted first. And the cart reminder is filed as promotional, because it asks for a sale.
How I personalised SMS at Healthify
At Healthify we connected Exotel, our SMS provider, to CleverTap as a channel. That let us personalise SMS with the same profile attributes we used everywhere else, instead of sending one generic text.
When people signed up, they told us their current weight and how much they wanted to lose, and we stored the target as a profile attribute. An SMS could then say how many kilos a person was away from their goal, pulled from that attribute. Some of our messages used more than one attribute.
The DLT side stays simple if you plan it. The registered template holds the fixed words and a typed slot. The CRM fills the slot from the profile. The "App goal reminder" sample above is how that kind of message would be registered today. The weight goes in {#numeric#} and the app link in {#urlott#}. My Liquid and Jinja guide covers the CRM half, including fallbacks for missing data.
The second lesson was about who gets SMS at all. We also ran a recap campaign, in the style of the "what India ordered" recaps food apps send. We tracked what India logged the most, such as the highest-calorie foods, and sent people their own personalised cards. The roughly 10 lakh most engaged users got theirs on WhatsApp. Everyone else got SMS, because SMS was the cheaper channel at that scale. We also used SMS as the fallback in journeys, so a person whose WhatsApp didn't deliver still heard from us.

Where DLT details go in your CRM
Every CRM platform needs the same three things from you: the PE ID, the header and the approved template ID. The pattern is the same across tools.
- Connect your SMS provider to the CRM as a channel. At Healthify, that was Exotel inside CleverTap.
- Save the PE ID and header in the provider or channel settings.
- On each SMS campaign or journey step, paste the approved DLT template ID.
- Write the message body to match the registered template word for word. Put the CRM's personalisation tag exactly where the DLT tag sits.
Step 4 is where most send failures start. A changed comma, an extra space or a longer value than the tag allows is enough to fail scrubbing. MoEngage and WebEngage both document their DLT fields, so check your tool's guide for the exact field names.
SMS length, the rupee sign and cost
A standard SMS part holds 160 characters. If the message has even one character outside the basic SMS character set, it switches to Unicode, and each part holds only 70. The rupee sign is one of those characters, and so is any Hindi or other regional script.
So "Rs 499" and "₹499" can cost very different amounts at scale: the ₹ version can split into two or three billed parts. Fixed text counts too, so keep templates short. Long values are the other trap. A product name can easily pass 40 characters, which is the {#alphanumeric#} limit, and that's why the samples above link to the product rather than naming it.
DLT template approval time on Jio, Airtel, Vi and BSNL
I couldn't find a published approval time from Jio, Airtel, Vi or BSNL, whose portals sit behind a login. The working numbers below come from platforms that file these daily, as of October 2026.
- WebEngage says to expect at least 2 to 4 business days for a template, and to contact the operator after 3 days.
- Exotel says headers and templates typically take 1 to 3 days, and entity registration on Airtel or Vi 3 to 7 business days.
- Exotel also notes that syncing an entity ID across portals can take 5 to 7 days, so a template can work on one network and fail on another for a few days.
You register the entity on one portal and reuse the PE ID on others. MoEngage's India regulations page lists the portals as Jio TrueConnect, Airtel, Vi's VILPOWER, BSNL and Videocon's PingConnect. It advises registering headers and templates on all of them.
Since December 2024, after TRAI's extended deadline of 10 December, your entity must also add each SMS provider's telemarketer ID on its DLT portal, per Netcore's SMS FAQ. Your provider gives you the ID.
Why DLT templates get rejected, and why approved ones still fail
There are two places an SMS can fail: when you register the template, and when you send the message. They need different fixes.
| Stage | What you see | Usual cause | Fix |
|---|---|---|---|
| Registration | Template rejected | Wrong category, such as a sale filed as Service Implicit | Refile under the right category |
| Registration | Template rejected | Untyped {#var#} slots, or too many variables |
Use typed tags and two variables or fewer |
| Registration | Template rejected | No brand name, or vague fixed text | Add the brand and say what the message is for |
| Send | Template ID mismatch or not found | ID not pasted on the campaign, or not linked to that header | Check the ID and its header on the portal |
| Send | Scrubbing failed | Sent text differs from the template, even by a space | Copy the registered text into the CRM exactly |
| Send | Variable exceeded max length | A value is longer than its tag allows | Shorten the value or move it into fixed text |
| Send | Tag validation failed | A value doesn't match its tag, like letters in {#numeric#}, or a link that isn't whitelisted |
Match the value to the tag, whitelist the link |
| Send | Preference not matched | A promotional SMS to a DND number, or outside the time window | Use Service Implicit only for real service messages, or fix the timing |
Sources: TRAI's November 2025 direction, MSG91's DLT FAQ and Exotel's template guide. Per Exotel, a rejected template generally can't be edited, so you create a new one.
DLT is the SMS half of compliance in India. The WhatsApp half is WhatsApp template approval, and approved WhatsApp messages can still fail, as I explain in WhatsApp delivery rate. Keep the CRM marketing glossary open for terms like PE ID.
Where I fit
I'm Raviraj, founder of Compound Lab, a retention agency for D2C brands and consumer apps. If you're learning, see where this work fits in a career in how to become a CRM marketer. Running a brand and need SMS set up as a working fallback to WhatsApp? Book a 30-minute call.
FAQ
What is DLT registration? It's the one-time registration of a business on a telecom operator's DLT portal, required by TRAI before the business can send commercial SMS in India. You get a Principal Entity ID, then register headers and message templates under it.
What are DLT registration fees? Provider guides put the one-time entity fee at about ₹5,900 on the Jio, Airtel and Vi portals. You pay it once, on one portal, and the registration works for all operators. Operators can change the fee, so check the portal you choose.
Can I do DLT registration online? Yes. It's done entirely online on an operator portal such as Jio TrueConnect, Airtel DLT or Vi's VILPOWER. You upload the documents, pay the fee and track approval there.
What is an SMS DLT template?
An SMS DLT template is the exact SMS text a business registers on an Indian telecom operator's DLT portal, with changing parts written as typed tags like {#numeric#} or {#url#}. Operators block any SMS that doesn't match an approved template linked to the sender's header.
Can I still use {#var#} in a DLT template?
No. Since TRAI's November 2025 direction, every variable must use one of six typed tags: numeric, alphanumeric, url, urlott, cbn or email. Old templates had 60 days to be edited, and messages that fail the tag check are now rejected.
What is a DLT template ID? A DLT template ID is the long numeric ID the operator portal gives a content template once it's approved. Your CRM platform or SMS provider sends it with every SMS so the operator can match the message to the template.
Why does my SMS fail with "template ID not found" or a mismatch? Usually the template ID isn't on the campaign, the template isn't linked to the header you're sending from, or the sent text differs from the registered text. Copy the registered text into your CRM exactly and check the ID against the header on your DLT portal.
How many variables can a DLT template have? Two by default, with a third allowed only in an exigency, under TRAI's February 2023 direction. More than three needs a written justification, and then at least 30% of the template must be fixed text.
What does "variable exceeded max length" mean?
A value sent in a slot was longer than the slot allows. The {#alphanumeric#} tag allows up to 40 characters, so long product names or IDs often hit it. Shorten the value, or move it into fixed text or a link.
How long does DLT template approval take? CRM and SMS platforms report 1 to 4 business days for a content template, and up to 7 business days for entity registration, as of October 2026. Check your operator's portal for current timing.
Need SMS set up as a fallback to WhatsApp, with templates that pass? Book a 30-minute call.