The entity ID is the number that ties every header, template and SMS to your business. This guide covers how it differs from the other DLT IDs, where each portal shows it, how to check it is registered, and what makes an operator call it invalid.
A DLT entity ID, or PE ID, is the long number issued when a telecom operator approves your business as a Principal Entity. MSG91, an SMS provider, describes it as 19 digits. One registration on any operator's portal covers every operator, so the same ID works on Jio, Airtel, Vi and BSNL. Your portal shows it on the dashboard or profile. Keep it as text, give it to your SMS gateway, and make sure your gateway is declared in your PE–TM chain.
Under TRAI's TCCCPR 2018 rules, the business that sends commercial messages is the Principal Entity, or Sender. You register once, and an entity registrar checks your PAN, business proofs and authorised person. Vi and BSNL publish a target of 72 working hours for this check. On approval, the registrar "will approve, register and activate the Entity ID on DLT".
Portals use different names for the same number. Jio's screens say PEID. Airtel's duplicate-PAN message asks for your "existing DLT Registration No." Format: MSG91 describes the ID as 19 digits, and its own published telemarketer ID (1302157225275643280) is 19 digits as well. No operator publishes a format specification.
About "prefix tables". Some providers publish a table that maps an entity ID's first three digits to the portal that issued it. No operator confirms that mapping, so we don't reproduce it, and you should not use it to validate IDs.
| ID | Identifies | Issued when | Notes |
|---|---|---|---|
| Entity ID (PE ID) | Your business | Entity approval | One per legal entity; unique across operators |
| Telemarketer ID (RTM / TM ID) | The SMS company that carries your traffic | TM registration | Unique across operators; valid five years (Vi/BSNL FAQ) |
| Header | One sender ID, e.g. AVNZON | Header approval | Owned by one PE; see header rules |
| Content template ID | One approved message wording | Template approval | See template registration |
| Consent template ID | Wording used to collect explicit consent | Consent template approval | Airtel: "approval may take up to 24 hours" |
Every message carries the PE ID, the header, the template ID and the chain of TM IDs that handled it. The scrubber checks that they belong together.
The Vi and BSNL FAQs are explicit: "Each Principal Entity needs to register only once with any of the Access Provider to obtain an Entity ID", and the PE ID "will be unique across all telecom Access providers in India". Headers and templates you register under it are shared too, and so are whitelisted links: BSNL says CTAs "are propagated across all telecom operators".
Each legal entity registers separately, because the registration is tied to the business PAN. Airtel blocks a second registration on the same PAN: "You are already registered on DLT with the given PAN No. Please provide existing DLT Registration No." A group with three companies that each have their own PAN has three entity IDs, and each header belongs to exactly one of them.
We cannot log in to other businesses' accounts, so the locations below come from MSG91's screenshot guide, plus what Airtel's own portal code shows. Treat them as Medium confidence; portals change layouts.
| Portal | Where the entity ID appears | Basis |
|---|---|---|
| Jio TrueConnect | Top left of the screen after login | MSG91 screenshots |
| Airtel (airtel.in/business/commercial-communication) | Dashboard and entity profile | MSG91; Airtel's code reads the DLT ID from the entity profile |
| Vi (vilpower.in) | Account Settings | MSG91 screenshots |
| BSNL (ucc-bsnl.co.in) | Account Settings | MSG91 screenshots |
| SmartPing | Profile | MSG91 screenshots |
If you cannot log in, ask whoever sends your SMS: a gateway needs your entity ID to carry your traffic, so it will have it on file. Portal walkthroughs are in our Jio, Airtel, Vi and BSNL guides.
Operators publish who is registered. BSNL's portal home page links a daily "List of Principal Entities Registered in DLT" and "List of Headers" as PDFs, named like TRAI-ENTITY-REPORT-29-Oct-2026.pdf. Vi and MTNL publish the same lists, and Jio has a "List of PE & Headers on DLT". Search the PDF for your registered name. This is the quickest way to confirm a vendor really registered you, or to see who holds a header you wanted.
An entity ID can be valid and still be refused because the registration behind it has lapsed:
A chain is the declared path a message takes from your entity through each telemarketer (aggregator and delivery TM) to the operator. TRAI's direction of 20 August 2024 required traceability from 1 November 2024. After extensions to 30 November and 10 December, TRAI announced that "effective 11th December 2024, SMS traffic sent through unregistered paths is being rejected". About 1.13 lakh active PEs had to declare chains.
If the chain is missing, the 600-series code is 605 ENTITY_ID_NOT_ALLOWED_FOR_TM. When you change SMS provider, add the new provider's telemarketer to your chain before moving traffic. If you move to AvanceZone, we give you the telemarketer details to declare.
With the AvanceZone API, dlt_entity_id is optional: a string of up to 20 characters. Leave it out and the gateway uses the entity ID stored with your sender ID, then the one on your account. Pass it when one account sends for more than one registered entity:
<?php
$payload = [
'sender_id' => 'AVNZON',
'recipient' => '919876543210',
'message' => 'Your OTP for login is 482913. It is valid for 10 minutes. Do not share it with anyone. -AVNZON',
'dlt_entity_id' => '1234567890123456789', // a string, never an int or float
'dlt_template_id' => '1234567890123456780',
];
$ch = curl_init('https://whitelabled.securesmsc.com/api/v2/sms/send');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 15,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('SMS_API_KEY'),
'Content-Type: application/json',
'Accept: application/json'],
CURLOPT_POSTFIELDS => json_encode($payload),
]);
echo curl_exec($ch);
curl_close($ch);The IDs above are placeholders. Keep entity and template IDs as strings throughout your stack. JavaScript numbers lose precision after about 16 digits, and spreadsheets keep only 15, so a 19-digit ID read as a number comes back changed and is then rejected as invalid. More sending code is in our PHP SMS guide.
| Cause | Code you may see | Fix |
|---|---|---|
| Typo, wrong account, or ID mangled by a spreadsheet | Airtel 611; 600 / 604 | Copy it again from the portal, as text |
| Header registered under a different PE | Airtel 611; 623 | Send that PE's ID, or register the header under yours |
| Entity expired or unpaid | Airtel 802; 602 | Renew on the portal you registered on |
| Entity blacklisted | Airtel 801; 603 | Contact the registering operator |
| Gateway not in your PE–TM chain | 605 | Declare the chain on your portal |
The full code tables are in our DLT error codes guide. New templates also need tagged variables: see variable tagging.
We register new entities on DLT and connect existing ones to our DLT-compliant gateway: chain declaration, header mapping and template mapping, tested before your first live send. We are in Sulur, Coimbatore; see bulk SMS in Coimbatore.