Industry & Compliance

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.

5 May 20269 min read

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:

TypeAllowed charactersTypical max lengthExample
AlphanumericA-Z, a-z, 0-930Order ID
Numeric0-915OTP code, amount
Date0-9, /, -1015-04-2026
Time0-9, :814:30:00
URLWhitelisted domain50app.example.com/x
Free textRestricted, often disallowed30Customer 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#}. - YourBrand

Common 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.

Ready to Send OTPs?

Integrate StartMessaging in 5 minutes. No DLT registration required.