DLT-India Onboarding
India’s TRAI DLT (Distributed Ledger Technology) regime requires every business that sends A2P SMS in India to register on a DLT portal operated by a telecom operator before any traffic is delivered. Unregistered or mismatched messages are blocked by the operators themselves — not by Orbit. Orbit mirrors the four DLT artifacts so you can manage your Indian registrations alongside the rest of your compliance posture. You still complete the underlying registration on a registrar’s DLT portal; Orbit records the resulting IDs and tracks their status. All endpoints below are rooted athttps://api.orbit.devotel.io/api/v1/compliance/dlt-india.
These endpoints record the registrations you obtain on a DLT
registrar’s portal. Orbit does not approve them — the registrar and
operators do. Each artifact starts in
pending and is updated as it
clears.Onboarding order
DLT artifacts depend on one another, so register them in this order:Principal Entity (PE)
Register your business as a Principal Entity with a registrar and
record the assigned PE ID.
Headers (Sender IDs)
Register the 3–11 character Headers (Sender IDs) you will send
under, each tied to your PE and a category.
Content templates
Register every message template, with variable placeholders, under
a Header and category.
1. Principal Entity
POST /dlt-india/principal-entities (admin/owner) records your PE.
| Field | Type | Notes |
|---|---|---|
registrar | enum | vilpower, trueconnect, tanla, jio, videocon, bsnl. |
pe_id | string | TRAI Principal Entity ID (8–20 chars). |
legal_name | string | Registered legal name (1–200). |
pan_or_gstn | string | Optional PAN or GSTN (≤ 50). |
entity_type | string | Optional (≤ 50). |
GET /dlt-india/principal-entities lists your PEs with their
status, rejection_reason, and submission/approval timestamps.
2. Headers (Sender IDs)
POST /dlt-india/headers (admin/owner) registers a Header under a PE.
| Field | Type | Notes |
|---|---|---|
principal_id | string | The Orbit ID of the parent PE. |
header | string | The Sender ID / Header (3–11 chars). |
category | enum | promotional, transactional, service_implicit, service_explicit. |
GET /dlt-india/headers lists registered Headers and their status.
3. Content templates
POST /dlt-india/content-templates (admin/owner) registers a message
template. DLT requires every message body to match an approved
template, with variable parts marked as placeholders.
| Field | Type | Notes |
|---|---|---|
principal_id | string | Parent PE. |
header_id | string | Optional parent Header. |
template_id | string | Registrar’s template ID (≤ 64). |
template_name | string | 1–200. |
category | enum | Same set as Headers. |
template_type | enum | text, unicode, unicode_text, otp. |
content | string | Body with {#var#} placeholders (1–2000). |
variables | string[] | Optional variable names (≤ 20). |
GET /dlt-india/content-templates lists templates and their status.
4. Consent templates
POST /dlt-india/consent-templates (admin/owner) records the consent
text backing your opt-ins, required to tie promotional sends to a
documented consent artifact.
| Field | Type | Notes |
|---|---|---|
principal_id | string | Parent PE. |
consent_template_id | string | Registrar’s consent ID (≤ 64). |
consent_name | string | 1–200. |
consent_text | string | The consent wording (1–2000). |
GET /dlt-india/consent-templates lists consent templates and status.
Status and nudges
Every artifact carries astatus (starting at pending), an optional
rejection_reason, and submission/approval timestamps. If Orbit
detects a DLT-related delivery rejection on your India traffic,
GET /dlt-india/nudge surfaces an observational prompt
(failure_count, last_failure_at); POST /dlt-india/nudge/dismiss
acknowledges it.
Related references
- Consent Management & Receipts — India DPDP consent receipts and Consent Managers.
- Sender-ID Registration — Sender-ID registration for non-India markets.
- Send Gates — country rules and the gates that enforce them.
- API Reference → Compliance — full request/response schemas (regenerated from the live API).