What DLT is and why messages fail without it
In India every commercial SMS must be sent by a registered entity, from an approved header (the sender ID), using an approved template. These records live on a distributed ledger run by the operators, which is where the name DLT comes from. Before delivering a message the operator checks that the entity exists, that the header is registered to it and that the text matches a template registered for that header. If any link in the chain is missing or does not match, the message is rejected, usually with a template or header error.
Most delivery problems that new senders see in India are registration problems, not technical ones. The good news is that registration is a one-time piece of work with a predictable structure. This checklist follows the order in which the pieces depend on each other, so you can work through it top to bottom.
The three records in plain language
| Record | What it is | Who owns it |
|---|---|---|
| Entity | Your registered business identity on the DLT platform, with an entity ID | Your company |
| Header | The sender name recipients see, such as a six-character code | Registered to your entity |
| Template | The approved message text with marked variables | Registered to your entity and mapped to headers |
Think of the entity as the account holder, the header as the name on the envelope and the template as the letter. The operator will not deliver a letter it has not seen before, and it will not accept one whose wording has been changed after approval.
Before you register
Registration stalls most often because documents are missing. Collect them first.
- Certificate of incorporation or equivalent proof of business
- PAN of the business and the authorised signatory
- A letter of authority if the person registering is not a director
- Proof of address for the registered office
- A working mobile number and email address for verification codes
- A list of every message you plan to send, grouped by purpose
That last item is the one teams forget. Writing down your messages first lets you decide how many templates you need and which content type each belongs to, and it keeps you from registering the same sentence five times with small differences.
Step by step
- Register the entity. Use the DLT portal of any one operator. Once complete, the registration is recognised across operators. Keep the entity ID safe: you will paste it into Telnxo
- Choose content types. Decide which of your messages are transactional (for example OTPs and order updates), service-related or promotional. The type controls which headers and sending hours apply
- Register headers. Pick names customers recognise. Keep them short, consistent across channels and clearly tied to your brand. Map each header to the content types it may carry
- Write templates. Fixed text stays exactly as approved. Variables are marked in the approved format and are the only part that changes at send time. Keep variable values within the length the portal allows
- Register consent templates. If you collect opt-in or opt-out by SMS, register those messages as consent templates too
- Map templates to headers. A template is usable only with the headers it is mapped to. Missing mappings are a leading cause of header errors
- Add everything to Telnxo. Under SMS settings enter your entity ID, headers and template IDs so that each send can carry the matching identifiers
- Send a test of every template. Use realistic sample values, including the longest value you expect. Check that each one is delivered before you send real traffic
Writing templates that are approved first time
Approval teams look for clarity and consistency. A template that explains who is writing and why is easier to approve than one that is vague.
- Name your brand near the start of the message so the recipient knows who is writing
- Keep variables for genuinely variable data such as names, amounts, dates and codes
- Avoid placing a variable where it could hold a whole sentence, since that defeats the purpose of a fixed template
- Do not mix promotional language into a transactional template
- Keep links to domains you control and, where required, registered
- Make the opt-out instruction clear in promotional messages
A worked example
Suppose you send order confirmations. A good transactional template might read: “Hi {#var#}, your order {#var#} is confirmed and will arrive by {#var#}. Track it at {#var#}. – YourBrand”. It names the brand, states the purpose and uses variables only for data that changes. The exact variable format is defined by the portal you use, so copy it from there.
Common rejections and their causes
| Symptom | Likely cause | How to fix it |
|---|---|---|
| Template mismatch | The sent text differs from the approved text, including spaces, punctuation or a changed variable position | Compare the sent text character by character with the approved template |
| Header not allowed | Header not mapped to that template or content type | Map the header to the template on the portal |
| Entity not found | Wrong entity ID saved in the account | Copy the ID from the portal again |
| Template ID missing | The send did not include the template ID | Select the template in your Telnxo settings or pass its ID |
| Content type mismatch | A promotional message sent on a transactional route | Use the correct template and header for the content |
After go-live
Registration is not finished when the first message is delivered. Keep a small routine going.
- Review rejections weekly and group them by cause
- Register a new template before you change any message text
- Retire templates you no longer use so that your list stays understandable
- Keep a document that maps each product message to its template ID and header
- Re-check portal rules every quarter
Further reading
- Your operator's DLT portal help pages (authoritative for current rules)
- TRAI telecom commercial communications customer preference regulations
- Telnxo guide: OTP delivery and security best practices
Frequently asked questions
How long does approval take?
It depends on the operator and the completeness of your documents. Plan for several working days and submit all templates together.
Can I change an approved template?
Not in place. Register a new template and switch your traffic to the new ID once it is approved.
Do I need a separate header for OTPs?
It is good practice. A dedicated header for transactional traffic keeps it separate from promotional sending.
Why is a message rejected when the text looks identical?
Small differences such as a trailing space, a different quote character or a variable in a different position count as a mismatch.
Do international messages need DLT?
No. DLT applies to messages sent to Indian numbers. Other countries have their own sender rules, covered in our global SMS guides.