Compliance

DLT Consent Registration India: Template vs Consent Rules

Master DLT consent registration in India. Learn the difference between consent and template approvals under TRAI TCCCPR rules to fix blocked SMS delivery.

StartMessaging Team
DLT Consent Registration India: Template vs Consent Rules

Disclaimer: This article is for informational purposes only and does not constitute legal or regulatory advice. For formal compliance audits under TRAI regulations or the DPDP Act, consult a qualified corporate legal advisor.

When Nikhil, senior backend architect at Indian retail loyalty platform BazaarClub, reviewed his delivery analytics following a major customer campaign, he discovered a perplexing anomaly. His team had completed full Distributed Ledger Technology (DLT) onboarding: they registered their Principal Entity ID (PE-ID), secured approved 6-character Sender Headers (BZRCLB), and obtained approval for their message Content Templates. Yet, when sending order status updates and promotional reward alerts to 50,000 opted-in users, delivery rates dropped to 14% on Reliance Jio and Bharti Airtel networks. The SMS aggregator gateway returned HTTP 200 OK, but carrier-level scrubbing logs rejected the packets with the error code SCRUB_FAIL_NO_CONSENT_TEMPLATE. Nikhil had hit a common regulatory hurdle in Indian business messaging: failing to understand dlt consent registration india sms rules and confusing Content Template approval with Consent Template binding.

Under the Telecom Commercial Communications Customer Preference Regulations (TCCCPR) governed by TRAI, Content Templates define what words you are sending, whereas Consent Templates provide verifiable proof of customer permission. While authentication OTPs and Service Implicit messages bypass consent binding, Service Explicit and Promotional communications require active DLT Consent Registration. This guide explains the technical difference between Content and Consent templates, details carrier scrubbing rules across message categories, provides a step-by-step registration workflow on Indian operator portals, and presents developer best practices for maintaining zero-downtime messaging compliance.


Many engineering teams treat DLT registration as a single multi-step checklist: obtain a PE-ID, register a Sender ID, approve text templates, and begin sending API requests. However, TRAI’s TCCCPR framework separates identity, content text, and legal consent into distinct ledger objects on operator DLT portals (such as Jio Trueconnect, Airtel DLT, Vodafone Idea DLT, and BSNL).

┌────────────────────────────────────────────────────────────────────────────────────────┐
│                              TRAI DLT Compliance Hierarchy                             │
├────────────────────────────────────────────────────────────────────────────────────────┤
│ 1. Principal Entity ID (PE-ID)   ──> Corporate Organizational Registration               │
│ 2. Sender Header (Header-ID)     ──> 6-Character Sender Tag (e.g., BZRCLB or STARTM)      │
│ 3. Consent Template (Consent-ID) ──> Customer Permission Scope & Opt-In Proof           │
│ 4. Content Template (Template-ID)──> Approved Message Text String with {#var#} Slots   │
└────────────────────────────────────────────────────────────────────────────────────────┘

A Content Template registers the precise wording of your message (e.g., "Your order {#var#} has been shipped via {#var#}"). In contrast, a Consent Template registers the customer relationship context and opt-in acquisition method (e.g., "Consent collected via web checkout checkbox for account alerts").

Compliance DimensionDLT Content TemplateDLT Consent Template
Primary PurposeValidates exact message text & variable placeholdersEstablishes legal proof of customer opt-in consent
Required For OTPs?Yes (Content template mandatory for traditional SMS)No (OTP falls under Service Implicit — consent implied)
Required For Service Explicit?YesYes (Mandatory binding required by carriers)
Required For Promotional SMS?YesYes (Mandatory binding against NCPR DND scrub)
Key Portal Data FieldsHeader ID, Message Category, Variables {#var#}Brand Name, Scope of Consent, Opt-in URL / Screenshot
Lifecycle & ExpiryPermanent (unless modified or revoked)Valid for 1 to 5 years (requires periodic renewal)
Carrier Scrubbing ActionDrops message if text string alters by > 1 charDrops message if receiver is on DND without valid consent

TRAI classifies commercial communications into distinct traffic categories. Understanding which category your message falls under determines whether you must bind a DLT Consent Template to your API payload.

┌────────────────────────────────────────────────────────────────────────────────────────┐
│                        TRAI Traffic Classification & Consent Rules                     │
├───────────────────┬───────────────────┬───────────────────┬────────────────────────────┤
│ Service Implicit  │ Service Explicit  │ Promotional SMS   │ Authentication OTP         │
│ (Login OTPs,      │ (Subscription     │ (Marketing offers,│ (Instant verification      │
│ Transaction PINs) │ updates, alerts)  │ discount codes)   │ codes)                     │
├───────────────────┼───────────────────┼───────────────────┼────────────────────────────┤
│ Consent Template: │ Consent Template: │ Consent Template: │ Consent Template:          │
│ NOT REQUIRED      │ MANDATORY BINDING │ MANDATORY BINDING │ NOT REQUIRED               │
└───────────────────┴───────────────────┴───────────────────┴────────────────────────────┘

Service Implicit messages include critical transactional notifications requested directly by the user, such as One-Time Passwords (OTPs), order confirmations, purchase receipts, and password reset codes.

Because the user initiates the transaction, consent is legally implied. You do not need to register or bind a DLT Consent Template for Service Implicit messages. However, traditional SMS routes still require an approved DLT Content Template and Header ID.

Service Explicit messages consist of transactional updates sent to existing customers that are not directly triggered by an immediate user action. Examples include account balance updates, policy renewal reminders, delivery status alerts, and loyalty point statements.

Because these messages are sent asynchronously, TRAI mandates that businesses register a DLT Consent Template documenting how customer permission was obtained. If a customer is registered on the national DND (Do Not Disturb) registry, carriers will block Service Explicit messages unless a valid Consent Template ID is bound to the transmission.

3. Promotional Messaging

Promotional messages include discount offers, product launches, marketing broadcasts, and upsell campaigns. Promotional SMS is strictly blocked for all phone numbers on the National Customer Preference Register (NCPR) DND list unless explicit consent has been registered on the DLT ledger and scrubbed successfully by telecom switches.


To prevent carrier packet drops on Service Explicit and Promotional campaigns, engineering and legal teams must complete DLT Consent Registration on their primary DLT operator portal (Jio, Airtel, Vi, or BSNL).

┌────────────────────────────────────────────────────────────────────────────────────────┐
│                        DLT Consent Registration Workflow                               │
├─────────────────┬──────────────────┬──────────────────┬────────────────┬───────────────┤
│ 1. Access DLT   │ 2. Define Scope  │ 3. Attach Proof  │ 4. Operator    │ 5. Bind to    │
│ Portal Console  │ & Brand Details  │ of Opt-In        │ Verification   │ Content ID    │
└─────────────────┴──────────────────┴──────────────────┴────────────────┴───────────────┘

Log into your DLT portal console (e.g., Jio Trueconnect or Airtel DLT) and navigate to Consent Management > Add New Consent Template. Enter clear, non-ambiguous details:

  • Consent Template Name: Choose an internal descriptive title (e.g., BazaarClub_Order_Notification_Consent_v1).
  • Brand Name: Your registered business or brand name (e.g., BazaarClub).
  • Scope of Consent: Clearly state what types of communications the customer agreed to receive. Example:

    “BazaarClub collects consent to send transactional account updates, order tracking alerts, loyalty reward summaries, and promotional event notifications to registered mobile numbers.”

Step 2: Upload Proof of Opt-In Mechanism

TRAI rules mandate that businesses provide verifiable proof of how user opt-in is collected. You must upload supporting evidence:

  • Web Sign-Up Screenshot: A clear screenshot of your website registration form showing an un-prechecked opt-in checkbox with text reading: “I agree to receive transaction updates and promotional SMS from BazaarClub.”
  • Mobile App UI Screenshot: Visual proof of your application’s mobile onboarding screen.
  • Privacy Policy URL: A live link to your organization’s public Privacy Policy detailing data handling under India’s Digital Personal Data Protection (DPDP) Act.

Step 3: Operator Verification and Content Template Binding

Once submitted, telecom operator compliance teams review the application within 2 to 7 business days. Upon approval, the DLT portal issues a unique 19-digit Consent Template ID (e.g., 1001592847192837465).

Finally, navigate to your DLT Content Template dashboard, select your approved Service Explicit or Promotional content templates, and link the newly issued Consent Template ID. Carrier scrubbing engines will now validate messages against this active ledger link.


From a software architecture perspective, developers must manage user opt-in states in their database while using reliable messaging APIs that simplify regulatory overhead.

When storing user consent to comply with DPDP Act and TRAI audit requirements, log timestamps, IP addresses, and consent version hashes:

import crypto from 'crypto';
import express, { Request, Response } from 'express';

const app = express();
app.use(express.json());

interface UserConsentRecord {
  userId: string;
  phoneNumber: string;
  consentGiven: boolean;
  consentTimestamp: string;
  ipAddress: string;
  consentTemplateId: string;
  consentHash: string;
}

// In-Memory / Database Consent Store
const consentDatabase = new Map<string, UserConsentRecord>();

app.post('/api/user/register-consent', (req: Request, res: Response) => {
  const { userId, phoneNumber, consentGiven, consentTemplateId } = req.body;
  const ipAddress = req.ip || '127.0.0.1';

  if (!userId || !phoneNumber || consentGiven !== true) {
    return res.status(400).json({ error: 'Valid user ID, phone number, and explicit consent check are required.' });
  }

  const timestamp = new Date().toISOString();
  // Create cryptographic hash of consent payload for DPDP Act audit verification
  const consentHash = crypto
    .createHash('sha256')
    .update(`${userId}:${phoneNumber}:${timestamp}:${consentTemplateId}`)
    .digest('hex');

  const record: UserConsentRecord = {
    userId,
    phoneNumber,
    consentGiven: true,
    consentTimestamp: timestamp,
    ipAddress,
    consentTemplateId: consentTemplateId || '1001592847192837465', // DLT Consent ID
    consentHash,
  };

  consentDatabase.set(userId, record);

  console.log(`[Consent Logged] User ${userId} opt-in registered. Hash: ${consentHash}`);

  return res.status(200).json({
    success: true,
    message: 'User consent logged successfully for TRAI / DPDP audit compliance.',
    consentHash,
  });
});

While Service Explicit notifications require manual DLT Consent Registration and template binding, authentication OTPs fall under Service Implicit rules. To bypass DLT registration delays entirely for authentication flows, developers can use StartMessaging’s DLT-Free OTP API.

// Sending OTP via StartMessaging (Bypasses DLT Consent Registration Overhead)
async function sendAuthenticationOtp(phoneNumber: string) {
  const response = await fetch('https://api.startmessaging.com/otp/send', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'X-API-Key': process.env.STARTMESSAGING_API_KEY!,
    },
    body: JSON.stringify({
      phoneNumber, // e.g. +919876543210
    }),
  });

  const data = await response.json();
  if (!response.ok) {
    throw new Error(data.message || 'OTP dispatch failed.');
  }

  // Authentication OTP delivered instantly via pre-approved enterprise DLT routes at ₹0.25/OTP
  return data;
}

Regulatory Audit & DPDP Act Compliance Checklist for Developers

To maintain full compliance across TRAI regulations and India’s Digital Personal Data Protection (DPDP) Act, engineering teams should implement this operational checklist:

┌────────────────────────────────────────────────────────────────────────────────────────┐
│                        Compliance & Audit Control Checklist                            │
├───────────────────┬───────────────────┬───────────────────┬────────────────────────────┤
│ 1. Bind Consent   │ 2. Audit Opt-In   │ 3. Handle Opt-Out │ 4. Maintain Audit Logs     │
│ Verify DLT IDs    │ Log IP address &  │ Process revocation│ Store timestamped hashes   │
│ link to Explicit  │ timestamp during  │ requests within   │ for 24+ months for TRAI    │
│ content templates │ user sign-up      │ 24 hours          │ audit inspection           │
└───────────────────┴───────────────────┴───────────────────┴────────────────────────────┘
  1. Verify DLT Consent Binding for Explicit Traffic: Audit your DLT portal dashboard to ensure every Service Explicit and Promotional Content Template has an active, bound Consent Template ID.
  2. Enforce Un-prechecked Checkboxes: Under the DPDP Act and TRAI guidelines, consent checkboxes on signup forms must not be pre-selected. The user must perform an affirmative action to opt in.
  3. Automate Consent Revocation (Opt-Out): If a user texts “STOP” or unchecks communication preferences in their account settings, your database must immediately flag the record and suppress further Service Explicit messages within 24 hours.
  4. Maintain Timestamped Audit Logs: Store consent records (including user ID, IP address, timestamp, and consent version) in an immutable log format for a minimum of 24 months to satisfy TRAI regulatory audits.
  5. Separate Authentication OTP Pipelines: Isolate authentication OTP traffic onto dedicated Service Implicit or DLT-free routes. Never combine marketing text with login codes, as doing so reclassifies the message as Promotional and triggers DND consent scrubbing drops.

Frequently Asked Questions

Q: Is DLT consent registration required for sending SMS OTPs in India?

A: No. One-Time Passwords (OTPs) and transactional verification codes fall under the Service Implicit message category. Because the user explicitly requests an OTP during login or checkout, consent is legally implied. Service Implicit messages require a valid DLT Content Template and Header ID on traditional SMS routes, but they do not require a separate DLT Consent Template.

Q: What is the main difference between a DLT content template and a consent template?

A: A DLT Content Template defines the exact text string, character length, and dynamic variable placeholders ({#var#}) of your message. A DLT Consent Template registers the legal scope of permission obtained from the customer (e.g., website opt-in form proof and privacy policy link). Content templates validate what you say, while consent templates prove that you have permission to send it.

Q: Why are my Service Explicit SMS messages failing delivery even after content template approval?

A: If your Service Explicit or Promotional content template is approved but not bound to an active, approved DLT Consent Template ID, telecom operator switches automatically subject the traffic to National Customer Preference Register (NCPR) DND scrubbing. If a recipient has active DND enabled on their mobile number, the carrier drops the message due to missing consent proof.

Q: How long does a registered DLT consent template remain valid in India?

A: DLT Consent Templates are typically approved with a validity period of 1 to 5 years, depending on the telecom operator portal (Jio, Airtel, Vi, BSNL). Businesses must periodically renew their consent templates and re-verify their customer opt-in acquisition mechanisms to maintain active status on the DLT ledger.


After binding his approved DLT Consent Templates to BazaarClub’s Service Explicit campaigns and migrating authentication OTPs to StartMessaging’s DLT-free OTP API (at ₹0.25/OTP), Nikhil resolved his delivery failures. Promotional alerts reached opted-in customers successfully, while login OTPs delivered in under 3 seconds with zero DLT consent overhead.

Looking for zero-friction OTP verification for your app? Sign up for StartMessaging to start sending DLT-free SMS OTPs at ₹0.25/OTP, or explore our OTP API documentation to ship reliable authentication in under 5 minutes.

S

StartMessaging Team

StartMessaging Team

Related posts