· By smsroute editorial · 8 min read

smsroute delivers SMS to any Indian mobile number from $0.0135 per message with DLT-ready templates included. Routes reach Jio, Airtel, Vi, and BSNL via our Singapore POP with 231 ms median latency and 98.4% delivery success. Payment in Bitcoin, USDT (TRC-20/ERC-20), Ethereum, Litecoin, Monero, or Solana. No KYC at signup. Shared DLT headers available for low-volume senders; bring your own header + template_id if you already have TRAI entity registration.

India's 4 DLT Template Categories — And Why the Wrong One Quietly Kills Your Delivery

DLT splits every A2P SMS into one of four categories, and the category you register a template under dictates what's allowed. Miscategorization is the #1 reason TRAI issues notices and the #2 reason messages go BLOCKED at delivery. Get the category wrong and the operator gateway quietly kills the send — no error at the handset, just a "BLOCKED" status in your webhook that you won't notice until a customer complains their OTP never arrived. Here's what each category actually means:

Promotional. Marketing content — offers, sales, new product launches, discount codes. Sends allowed only between 10:00 and 21:00 IST. Recipients on the National Do Not Call (NDNC) registry are automatically scrubbed — operators drop promotional SMS to any number registered under Fully Blocked or Partially Blocked DND preferences. Throughput is the lowest of the four categories; operators rate-limit promotional senders aggressively when complaint rates spike.

Transactional. Historical category, now effectively deprecated for non-banking senders. Reserved for RBI-licensed entities sending banking SMS. Deliverable 24/7 to all numbers including DND. If you are not a bank, NBFC, or insurance provider regulated by IRDAI, you cannot register Transactional — use Service-Explicit instead.

Service-Explicit. Messages the user has explicitly opted into — OTPs, delivery updates, appointment confirmations, password resets, booking acknowledgments. Deliverable 24/7 to all numbers regardless of DND status. This is the category most SaaS and ecommerce senders will live in. NDNC scrubbing does not apply. Throughput is the highest of the four categories, with tier-1 operators typically permitting 30-100 TPS per header out of the box.

Service-Implicit. Messages arising from an ongoing customer relationship but not explicitly requested in the current transaction — account balance updates, statement reminders, service expiry notices, policy-renewal nudges. Deliverable 24/7 to DND numbers because of the implicit opt-in via account relationship. Throughput mid-tier; NDNC scrubbing does not apply.

Rule of thumb: OTPs and delivery receipts go under Service-Explicit. Account statements and renewal reminders go under Service-Implicit. Anything the recipient didn't ask for in the current session that markets a product goes under Promotional.

Pricing vs competitors

Provider Price per SMS (USD) vs. smsroute
smsroute $0.0135 best price
Twilio$0.0218baseline
Telnyx$0.016317% more
MessageBird$0.018527% more
Bandwidth$0.019230% more

Prices as of April 2026 from each provider's public pricing page. smsroute lands ~45% below Twilio and 27% below Plivo on the Indian route. Against the India-native aggregators (MSG91, Textlocal), smsroute's edge is the shared-DLT option for indie developers and the crypto billing — India-native aggregators almost universally require INR billing and GST registration.

Mobile operators in India

India's mobile market has been through a brutal restructuring since Reliance Jio launched in late 2016 with free voice and near-free data. What was once a seven-to-nine-operator market is now a four-operator consolidation, and effectively a three-horse race on retail SMS volume.

Reliance Jio. Market leader with ~40% share. Jio is the operator that triggered the consolidation — its entry bankrupted several rivals and forced Idea Cellular into the Vodafone merger that became Vi. Jio's DLT portal (trueconnect.jio.com) is the most-used of the four and typically has the fastest template turnaround — under 24 hours for straightforward templates.

Airtel India. ~32% share. Bharti Airtel's SmartPing platform manages its DLT entity and template registry. Airtel is the most latency-consistent operator on our Singapore route, averaging 195 ms on the operator leg.

Vi (Vodafone Idea). ~19% share, down from near-30% pre-Jio. Result of the 2018 Vodafone India + Idea Cellular merger, now operating jointly under the "Vi" brand. Financial distress has slowed its 4G expansion and, at the edges of coverage, its delivery receipts. Templates on VilPower typically take 36-48 hours versus Jio's 12-24.

BSNL. ~9% share. State-owned, primarily rural, slowest 4G rollout of the four. Delivery to BSNL numbers is functional but latency runs higher (340-420 ms p50 on the operator leg) and template turnaround on ucc-bsnl.co.in is 48-72 hours in our experience.

How to send SMS to India in 3 steps

Step 1 — Create an account and attach your DLT header

Sign up at smsroute.cc. In the dashboard under Senders → India DLT, paste your 6-character header and at least one approved template_id, or opt into the shared pool for indie-dev traffic.

Step 2 — Top up with crypto

Minimum $5. USDT (TRC-20 preferred for low fees) credits in ~1 minute. Bitcoin, Ethereum, Litecoin, Monero, and Solana also accepted.

Step 3 — Send with the DLT fields in the payload

The India route requires template_id and the registered header as from. Anything else returns DLT_FIELD_MISSING.

The API validates your body against the registered template_id before submission. If the variable-substituted body doesn't fit the registered pattern, you get DLT_TEMPLATE_MISMATCH back with a diff of where the drift occurred — most useful during integration testing.

Latency from our Singapore POP to Indian operators

smsroute routes Indian traffic via a Singapore POP directly interconnected to each of the four operator gateways. Median round-trip from API submission to operator-delivered receipt:

  • Jio: 208 ms
  • Airtel: 195 ms
  • Vi: 251 ms
  • BSNL: 342 ms

Aggregate median: 231 ms. 95th percentile: 680 ms. Rolling 90-day delivery success rate: 98.4%. The bulk of the remaining 1.6% is BSNL rural handsets with intermittent receive-SMS windows and recently-ported Vi numbers still propagating through the MNP database.

TRAI DLT — The Registration Process Every Indian SMS Integration Begins With

Every A2P SMS sent to an Indian mobile number since 2021 must pass through the Distributed Ledger Technology (DLT) framework enforced by TRAI. This is not a nice-to-have: an unregistered send returns BLOCKED at the operator gateway and never touches the handset. Before you integrate any SMS API for India, you need three things on DLT: an entity registration, a header registration, and at least one template approval.

Step 1 — Entity registration. Entity registration is the legal handshake between your business and each of the four DLT portals. India has no single unified DLT registry; each operator runs its own portal. You register once on each:

  • Jio — trueconnect.jio.com — —5,900 one-time
  • Airtel — smartping.live — —5,900 one-time
  • Vi (Vodafone Idea) — vilpower.in — —5,900 one-time
  • BSNL — ucc-bsnl.co.in — —1,500-7,500 one-time (tier depends on sender class)

Total across all four: —5,900 to —7,500 depending on whether you take BSNL's starter tier. You upload PAN, GST certificate, a board resolution or letter of authorization, and incorporation proof. Each portal issues you a Principal Entity ID (PE ID) that is portable across all four networks — but the submission is duplicative.

Step 2 — Header registration. A "header" is India's version of a sender ID. Six alphanumeric characters (no digits in some operator interpretations, mixed in others — register both if you can), Latin script only, and strongly associated with your brand. Typical headers look like ICICIB, AMAZON, AIRTEL. Headers carry a category: Promotional, Transactional, Service-Explicit, or Service-Implicit. The category determines what you're allowed to send under that header and at what hours.

Step 3 — Template approval. Every message body must match an approved template. You submit the template text with {#var#} placeholders for dynamic fields, wait 24-48 hours, and receive either an approval with a numeric template_id or a rejection reason. The three most common rejections:

  1. Variable placeholder position{#var#} cannot be the first token. Start with brand name or boilerplate text. "Hi {#var#}, your OTP is..." is fine; "{#var#} your OTP is..." rejects.
  2. Mixed-language content — a single template cannot contain both English and Devanagari scripts unless you've declared regional-multilingual at header registration. English-only is the safe default.
  3. Length overflow — the template renders at maximum variable length. If your {#var#} is a user name that could be 40 characters, the operator validator assumes 40 characters. Templates that fit 160 GSM-7 at the minimum case routinely fail when the max case exceeds it.

smsroute ships with a shared pool of pre-registered generic-purpose headers and templates for indie developers who can't reasonably incorporate in India to run the entity registration. If you already have your own PE ID and header, paste them into the dashboard and smsroute will route your traffic under your own DLT identity.

Frequently asked questions

How do I register on DLT to send SMS to India?

DLT (Distributed Ledger Technology) registration runs per-operator. You register your entity once on each of the four operator portals — Jio (trueconnect.jio.com), Airtel (smartping.live), Vi (vilpower.in), and BSNL (ucc-bsnl.co.in) — with PAN, GST, and a business letter of authorization. Total one-time cost —5,900-7,500. Then you register a 6-character alphanumeric header, then submit each message template for approval (24-48 hour turnaround). smsroute can share pre-registered headers for low-volume senders.

What does a DLT template rejection mean?

The top three rejection reasons are: (1) variable placeholder position — {#var#} cannot be at the absolute start of the message; (2) mixed-language content — you can't have English and Hindi scripts in the same template unless registered as regional-multilingual; (3) length overflow — transactional templates cap at 160 GSM-7 characters or 70 UCS-2 characters, including variables rendered at maximum length. Fix these three and approval is usually same-day.

Do OTPs need a DLT template?

Yes. All A2P SMS to Indian numbers — including OTPs — require a DLT-approved template under the Service-Explicit category. An unregistered OTP send will be dropped by the operator with a BLOCKED status. smsroute returns a specific error code (DLT_TEMPLATE_NOT_FOUND or DLT_TEMPLATE_MISMATCH) when the body text doesn't match a registered template id.

Why does my Indian SMS say 'BLOCKED'?

BLOCKED in the delivery receipt almost always means DLT non-compliance. Common causes: (1) no template_id in the payload; (2) template_id exists but body doesn't match the registered variable pattern; (3) sending promotional content to a number on NDNC (National Do Not Call) registry; (4) sending outside 10:00-21:00 IST with a Promotional category template. Check the operator-specific error subcode in the webhook.

Can I send to DND-registered numbers for transactional messages?

Yes. NDNC (National Do Not Call) scrubbing applies only to Promotional category templates. Transactional, Service-Explicit, and Service-Implicit categories deliver to DND-registered numbers 24/7 — because the recipient has an existing account relationship with the sender. This is the key reason DLT categorization matters: miscategorized promotional content sent as transactional is the #1 TRAI enforcement trigger.

What format should Indian mobile numbers be in?

E.164 format with country code: +91. Indian mobile numbers start with 6, 7, 8, or 9. For example, +919812345678. Drop any leading 0 from the domestic format. smsroute's API normalizes missing plus-sign and common local formats, but strict E.164 is safest.

How long does an SMS take to arrive in India?

Median delivery is 2.3 seconds from API submission to handset via our Singapore POP. 95th percentile is 6.8 seconds. Jio and Airtel typically deliver in 180-250 ms operator-leg; Vi and BSNL run 280-400 ms. Delays beyond 30 seconds usually mean handset is offline or the number has been ported — operators buffer and retry for 72 hours.

Is smsroute cheaper than Twilio for India?

Yes — smsroute charges $0.0135 per SMS to India versus Twilio's $0.0246, roughly 45% lower. Plivo and MessageBird land in the $0.0185-$0.021 range. The gap reflects smsroute's direct interconnect with Indian operators and a leaner compliance stack; DLT template management is bundled rather than upsold as an enterprise add-on.

Related pages

Related

Related

Related

Features SMS API Pricing API Docs Blog
curl -X POST https://api.smsroute.cc/v1/messages \
  -H "Authorization: Bearer $SMSROUTE_API_KEY" \
  -d '{
    "to": "+919812345678",
    "from": "ACMEIN",
    "body": "Hi Priya, your OTP is 384921. Valid 10 min. - Acme",
    "template_id": "1007161234567890123",
    "dlt_category": "service_explicit"
  }'
import requests, os

r = requests.post(
    "https://api.smsroute.cc/v1/messages",
    headers={"Authorization": f"Bearer {os.environ['SMSROUTE_API_KEY']}"},
    json={
        "to": "+919812345678",
        "from": "ACMEIN",
        "body": "Hi Priya, your OTP is 384921. Valid 10 min. - Acme",
        "template_id": "1007161234567890123",
        "dlt_category": "service_explicit"
    }
)
print(r.json())
import fetch from "node-fetch";

const apiKey = process.env.SMSROUTE_API_KEY;

const res = await fetch("https://api.smsroute.cc/v1/sms/send", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    to: "+915551234567",
    from: "smsroute",
    text: "Your verification code is 384921",
  }),
});

console.log(await res.json());

Latency from our Singapore POP to Indian operators

smsroute routes Indian traffic via a Singapore POP directly interconnected to each of the four operator gateways. Median round-trip from API submission to operator-delivered receipt:

  • Jio: 208 ms
  • Airtel: 195 ms
  • Vi: 251 ms
  • BSNL: 342 ms

Aggregate median: 231 ms. 95th percentile: 680 ms. Rolling 90-day delivery success rate: 98.4%. The bulk of the remaining 1.6% is BSNL rural handsets with intermittent receive-SMS windows and recently-ported Vi numbers still propagating through the MNP database.

TRAI DLT — The Registration Process Every Indian SMS Integration Begins With

Every A2P SMS sent to an Indian mobile number since 2021 must pass through the Distributed Ledger Technology (DLT) framework enforced by TRAI. This is not a nice-to-have: an unregistered send returns BLOCKED at the operator gateway and never touches the handset. Before you integrate any SMS API for India, you need three things on DLT: an entity registration, a header registration, and at least one template approval.

Step 1 — Entity registration. Entity registration is the legal handshake between your business and each of the four DLT portals. India has no single unified DLT registry; each operator runs its own portal. You register once on each:

  • Jio — trueconnect.jio.com — —5,900 one-time
  • Airtel — smartping.live — —5,900 one-time
  • Vi (Vodafone Idea) — vilpower.in — —5,900 one-time
  • BSNL — ucc-bsnl.co.in — —1,500-7,500 one-time (tier depends on sender class)

Total across all four: —5,900 to —7,500 depending on whether you take BSNL's starter tier. You upload PAN, GST certificate, a board resolution or letter of authorization, and incorporation proof. Each portal issues you a Principal Entity ID (PE ID) that is portable across all four networks — but the submission is duplicative.

Step 2 — Header registration. A "header" is India's version of a sender ID. Six alphanumeric characters (no digits in some operator interpretations, mixed in others — register both if you can), Latin script only, and strongly associated with your brand. Typical headers look like ICICIB, AMAZON, AIRTEL. Headers carry a category: Promotional, Transactional, Service-Explicit, or Service-Implicit. The category determines what you're allowed to send under that header and at what hours.

Step 3 — Template approval. Every message body must match an approved template. You submit the template text with {#var#} placeholders for dynamic fields, wait 24-48 hours, and receive either an approval with a numeric template_id or a rejection reason. The three most common rejections:

  1. Variable placeholder position{#var#} cannot be the first token. Start with brand name or boilerplate text. "Hi {#var#}, your OTP is..." is fine; "{#var#} your OTP is..." rejects.
  2. Mixed-language content — a single template cannot contain both English and Devanagari scripts unless you've declared regional-multilingual at header registration. English-only is the safe default.
  3. Length overflow — the template renders at maximum variable length. If your {#var#} is a user name that could be 40 characters, the operator validator assumes 40 characters. Templates that fit 160 GSM-7 at the minimum case routinely fail when the max case exceeds it.

smsroute ships with a shared pool of pre-registered generic-purpose headers and templates for indie developers who can't reasonably incorporate in India to run the entity registration. If you already have your own PE ID and header, paste them into the dashboard and smsroute will route your traffic under your own DLT identity.

Frequently asked questions

How do I register on DLT to send SMS to India?

DLT (Distributed Ledger Technology) registration runs per-operator. You register your entity once on each of the four operator portals — Jio (trueconnect.jio.com), Airtel (smartping.live), Vi (vilpower.in), and BSNL (ucc-bsnl.co.in) — with PAN, GST, and a business letter of authorization. Total one-time cost —5,900-7,500. Then you register a 6-character alphanumeric header, then submit each message template for approval (24-48 hour turnaround). smsroute can share pre-registered headers for low-volume senders.

What does a DLT template rejection mean?

The top three rejection reasons are: (1) variable placeholder position — {#var#} cannot be at the absolute start of the message; (2) mixed-language content — you can't have English and Hindi scripts in the same template unless registered as regional-multilingual; (3) length overflow — transactional templates cap at 160 GSM-7 characters or 70 UCS-2 characters, including variables rendered at maximum length. Fix these three and approval is usually same-day.

Do OTPs need a DLT template?

Yes. All A2P SMS to Indian numbers — including OTPs — require a DLT-approved template under the Service-Explicit category. An unregistered OTP send will be dropped by the operator with a BLOCKED status. smsroute returns a specific error code (DLT_TEMPLATE_NOT_FOUND or DLT_TEMPLATE_MISMATCH) when the body text doesn't match a registered template id.

Why does my Indian SMS say 'BLOCKED'?

BLOCKED in the delivery receipt almost always means DLT non-compliance. Common causes: (1) no template_id in the payload; (2) template_id exists but body doesn't match the registered variable pattern; (3) sending promotional content to a number on NDNC (National Do Not Call) registry; (4) sending outside 10:00-21:00 IST with a Promotional category template. Check the operator-specific error subcode in the webhook.

Can I send to DND-registered numbers for transactional messages?

Yes. NDNC (National Do Not Call) scrubbing applies only to Promotional category templates. Transactional, Service-Explicit, and Service-Implicit categories deliver to DND-registered numbers 24/7 — because the recipient has an existing account relationship with the sender. This is the key reason DLT categorization matters: miscategorized promotional content sent as transactional is the #1 TRAI enforcement trigger.

What format should Indian mobile numbers be in?

E.164 format with country code: +91. Indian mobile numbers start with 6, 7, 8, or 9. For example, +919812345678. Drop any leading 0 from the domestic format. smsroute's API normalizes missing plus-sign and common local formats, but strict E.164 is safest.

How long does an SMS take to arrive in India?

Median delivery is 2.3 seconds from API submission to handset via our Singapore POP. 95th percentile is 6.8 seconds. Jio and Airtel typically deliver in 180-250 ms operator-leg; Vi and BSNL run 280-400 ms. Delays beyond 30 seconds usually mean handset is offline or the number has been ported — operators buffer and retry for 72 hours.

Is smsroute cheaper than Twilio for India?

Yes — smsroute charges $0.0135 per SMS to India versus Twilio's $0.0246, roughly 45% lower. Plivo and MessageBird land in the $0.0185-$0.021 range. The gap reflects smsroute's direct interconnect with Indian operators and a leaner compliance stack; DLT template management is bundled rather than upsold as an enterprise add-on.

Related pages

Related

Related

Related

Related