DLT Template Variable Rules in India (with Examples)
How DLT template variables work in India: allowed character classes, length limits, common rejection reasons, and copy-paste-ready examples that pass the first time.
StartMessaging Team
Compliance
DLT (Distributed Ledger Technology) template variables are the part of TRAI’s SMS framework that trips up the most teams. You register a template with placeholders, get it approved by your operator, and then your runtime fills the placeholders before sending. Get the variable rules wrong and the carrier will scrub your message at the gateway.
Why DLT Templates Exist
TRAI introduced DLT templates to stop spam and unsolicited commercial communication. Every SMS body must match an operator-approved template, and the carrier’s scrubbing engine checks the body at send time. See our companion guide on how scrubbing works.
Variable Types
Operators support a small set of variable types — the exact names differ by operator portal but the categories are:
| Type | Allowed characters | Typical max length | Example |
|---|---|---|---|
| Alphanumeric | A-Z, a-z, 0-9 | 30 | Order ID |
| Numeric | 0-9 | 15 | OTP code, amount |
| Date | 0-9, /, - | 10 | 15-04-2026 |
| Time | 0-9, : | 8 | 14:30:00 |
| URL | Whitelisted domain | 50 | app.example.com/x |
| Free text | Restricted, often disallowed | 30 | Customer name |
Character and Length Rules
- Variable placeholders use the syntax
{#var#}in most operator portals. - The expanded message must fit one or two SMS segments (160 / 320 chars GSM).
- Numeric variables must not contain alphabets — even “Rs” in front of an amount must be in the static text, not the variable.
- Dates and times are validated against simple regex patterns.
- URLs must come from a domain whitelist registered alongside the template.
Approved Template Examples
# OTP login template
Your OTP is {#var#}. Valid for 10 minutes. Do not share this with anyone. - YourBrand
# Order confirmation
Hi {#var#}, your order {#var#} of Rs {#var#} is confirmed. Track at {#var#}. - YourBrand
# Appointment reminder
Reminder: your appointment with {#var#} on {#var#} at {#var#}. Reschedule on {#var#}. - YourBrandCommon Rejection Reasons
- Promotional language in a transactional template (“Buy now”, “Discount”).
- URL outside the approved whitelist.
- Variable placeholder syntax wrong for the operator portal.
- Header (sender ID) doesn’t match the brand in the template body.
- Expanded worst-case message exceeds segment limit.
How StartMessaging Skips This
StartMessaging’s standard route uses our pre-approved DLT templates so you never see the variable rules. You just call /otp/send with a phone number and we handle template selection. Skip this whole article if you’re on our DLT-free route.
FAQ
See also our full DLT template approval guide.
Related Articles
Understand TRAI's DLT registration mandate for SMS in India. Learn the process, portals, timelines, costs, and how to skip DLT entirely with StartMessaging.
Learn how to write DLT SMS templates that get approved on the first attempt. Template types, variable syntax, rejection reasons, and operator-specific tips.
How TRAI message scrubbing works in India: the PE, header, and template checks every SMS goes through, common failure codes, and how to debug delivery loss.
Ready to Send OTPs?
Integrate StartMessaging in 5 minutes. No DLT registration required.