The 12 reasons DLT templates get rejected, the exact fix for each, and the checks that get your next template approved the first time.
Your DLT template was just rejected. The campaign is ready, the customer list is uploaded, and now everything waits for another review cycle.
You're not alone. Template rejections are among the most common reasons SMS campaigns in India get delayed. Most of them come down to a short list of avoidable mistakes: a missing brand name, a variable typed the wrong way, a link nobody whitelisted.
This guide covers all twelve, with a wrong-vs-right example for each. Fix the template in front of you now, then use the checklist at the end before every new submission. If you'd rather hand it over, our team handles DLT registration and template support for every bulk SMS and OTP SMS customer. You can also talk to a DLT expert directly.
Reviewers need to see who is sending the message. A template with no brand in its fixed text looks like it could come from anyone, so it gets rejected.
Fix: put your registered brand name in the static part of the message, not inside a variable.
"ShopKart" in the template but "Shop Kart Retail Pvt Ltd" on your entity? Reviewers compare the two, and an unexplained difference reads as a possible impersonation.
Fix: copy the brand string exactly from your DLT entity profile. If you trade under a different brand, register that brand with supporting proof first.
An OTP with a discount line attached, or a payment receipt that ends with "shop our new collection", is two messages pretending to be one. It can't fit a single category, so it's rejected.
Fix: one template, one purpose. Send the offer as a separate promotional message.
DLT recognises exactly one placeholder: {#var#}. Anything else, such as
{name}, [var], {#VAR#} or {# var #}, is treated
as fixed text or flagged as an error.
Fix: replace every dynamic value with {#var#}, typed exactly, with no
spaces and in lowercase.
A template that is mostly placeholders leaves the sender free to write anything, which is what DLT
exists to prevent. Two variables side by side, like {#var#}{#var#}, raise the same
concern.
Fix: use variables only for values that truly change, such as name, amount, date, OTP or order ID. Separate them with fixed words, and keep the count low.
A single {#var#} meant to carry a whole sentence, an address or a full link won't
work. When you send, each variable value is limited to 30 characters, and reviewers reject
templates that clearly depend on longer content.
Fix: move the stable words into the fixed text and keep each variable short. Long links should be whitelisted short URLs (see reason 9).
Portals cap template length, and very long promotional texts are often rejected as unclear. Even when approved, every 160 English characters (70 in Unicode) is another billed SMS segment.
Fix: say one thing, clearly. Check the length with our SMS character counter before you submit.
This is the rejection we fix most often. A promotional template submitted under a header registered for service or transactional use, or the reverse, fails because the category of the content and the header don't agree. Since TRAI's 2025 amendments, recipients even see the category as a suffix on the header: -P for promotional, -S for service, -T for transactional and -G for government.
Fix: decide the category from the message's purpose first, then choose a header registered for that category. The transactional and service SMS guide explains each category with examples.
Since 1 October 2024, operators block SMS that contain URLs, APK links or OTT links not whitelisted on the DLT portal. Templates with unregistered links are rejected, or approved and then blocked at delivery.
Fix: whitelist the domain, including any link-shortener domain, against your sender ID on the DLT portal before submitting the template. Keep the domain in the fixed text and only the changing path in a variable.
TRAI's 2025 amendments require every promotional message to give recipients a way to opt out. Promotional templates without it are rejected.
Fix: add the opt-out wording in the format your operator portal specifies to promotional templates only. Transactional, service and OTP templates don't need it.
Sometimes the problem starts before the template. If your entity was registered with names that don't match letter for letter across PAN, GST and the application, headers and templates linked to it run into trouble too.
Fix: make the business name identical across every document. Our DLT documents checklist shows what each type of business needs. Entity-level errors are covered in common DLT registration mistakes.
A Hindi or Tamil template saved as plain text turns into question marks or garbled characters, and gets rejected. Mixing scripts carelessly causes the same problem.
Fix: select the Unicode option when submitting regional-language templates, and send them through a Unicode route. In the MetaReach bulk SMS panel that's the dedicated Unicode SMS mode.
Approval is only half the battle. The most common reason an approved template fails is a template mismatch. The text your system sends differs from the approved version by a single space, a full stop or a changed word, and DLT scrubbing drops it.
| Cause | What to check |
|---|---|
| Text mismatch | Compare your code's message string with the approved template character by character, including spaces and line breaks |
| Wrong template ID | Each message must be sent with the ID of the template it matches, not a similar one |
| Variable too long | Values over 30 characters fail; trim names and addresses |
| Missing PE-TM chain | Your entity must declare the telemarketer chain. See PE-TM binding and chain validation |
| Unwhitelisted link | A new short-link domain added after approval must be whitelisted too |
| DND and timing | Promotional SMS is filtered against DND and sent only in the permitted window; DND filtering helps clean lists |
When something fails, the status code in your delivery report usually points to the cause. Our delivery report error code guide explains each one.
Don't just diagnose the problem. Solve it.
We review every template against current TRAI and operator requirements: brand name, variable format, category, header, links and opt-out. That way problems are caught before a reviewer sees them.
From entity registration and sender IDs to templates, URL whitelisting and PE-TM binding, we guide the whole process on the portal you choose.
Every rejection restarts the review. Getting the wording right before the first submission is the fastest way to get campaigns live on time.
Template help is included at no extra charge for MetaReach customers. For ready formats by industry, browse our DLT SMS template examples. OTP senders should also read the OTP DLT compliance guide, and lenders the guide to DLT for fintech SMS.
Send us your rejected template, or the one you're about to submit. A DLT specialist will review it and suggest the fix in a free consultation.
Run through this before every submission. Use the button to print it or save it as a PDF for your team.
Source: MetaReach Marketing, metareachmarketing.com/dlt-template-rejection-guide.php · Rules: TRAI Telecom Commercial Communications Customer Preference Regulations, 2018, as amended.
The most common reasons are a missing or mismatched brand name in the message, a template submitted under the wrong category or header, wrong {#var#} placeholders, and URLs that haven't been whitelisted on the DLT portal. Promotional templates without an opt-out option and regional-language text not submitted as Unicode are also frequently rejected.
Generally no. Once a content template is approved, its fixed text is locked. To change the wording, submit a new template for approval and switch your system to the new template ID once it is approved.
It depends on the operator portal and its review queue. Every rejection restarts the review, so the fastest route is getting the template right before the first submission rather than resubmitting several times.
Use {#var#} exactly, with the hash symbols and curly braces, for every dynamic value. Other formats such as {name}, [var] or {#VAR#} are not recognised. Each variable's actual value is limited to 30 characters when the message is sent.
Usually because the text your system sends doesn't exactly match the approved template, even by one space or punctuation mark. Other causes are a wrong template ID mapped in your system, a variable value longer than 30 characters, a missing PE-TM chain declaration, an unwhitelisted link, or promotional SMS sent to DND numbers or outside the permitted time window.
Yes. TRAI's 2025 amendments to the commercial communication regulations require promotional messages to give recipients an option to opt out. Add the opt-out wording in the format your operator portal specifies. Transactional and OTP templates do not need it.
Yes. Since 1 October 2024, SMS containing URLs, APK links or OTT links that are not whitelisted on the DLT portal are blocked. Whitelist the domain, including any link-shortener domain, against your sender ID before submitting templates that contain links.
Yes. MetaReach reviews your templates against current DLT rules before submission, rewrites rejected ones, checks header and category matching and helps with URL whitelisting and PE-TM chain binding, at no extra charge for customers.
The regulations behind these rules are published by TRAI. Operator portals such as Jio TrueConnect's content template guide explain the submission screens. New to DLT? Start with what DLT registration is and what it costs.
From startups to enterprises — brands that grow with MetaReach