DLT-compliant SMS for India
SMS API at ₹0.10for OTP and transactional messages
At 25 lakh SMS a month. Starts at ₹0.20 and drops with every slab. GST extra.
DLT-compliant OTP, transactional and service SMS through one REST API, with operator failover and delivery reports. No setup fee.
OTP, transactional and service SMS
Every message type goes through the same API and is billed at the same slab rate.
OTP
Login, sign-up and payment OTPs, routed for fast delivery and retried through an alternate operator if a route fails.
ACMEINnow
482916 is your Acme login OTP. It is valid for 10 minutes. Do not share it with anyone. - Acme
From ₹0.10 an SMS
Transactional alerts
Debit and credit alerts, payment and order confirmations, sent the moment the event happens.
ACMEBKnow
Rs 2,499.00 debited from A/c XX4821 on 23-Oct via UPI. Not you? Call your branch. - Acme Bank
From ₹0.10 an SMS
Service messages
Delivery updates, appointment reminders, renewal and account notices to your customers.
ACMEINnow
Your order #48213 is out for delivery today between 2 and 6 PM. - Acme
From ₹0.10 an SMS
OTP, transactional and service messages. One SMS is one 160-character part.
FastKYC
₹0.20per SMS + GST
For up to 24,999 a month
₹0.20 × 5,000 SMS · billed at your volume's slab
The same volume elsewhere
MSG91
OTP credit packs
₹0.25 / SMS
₹1,250 a month
25% more
Fast2SMS
Rate set by wallet top-up
₹0.25 / SMS
₹1,250 a month
25% more
Twilio
Pay as you go, international route
₹7.32 / SMS
₹36,600 a month
37× more
Plivo
Pay as you go, international route
₹7.04 / SMS
₹35,200 a month
35× more
Published list prices per SMS to Indian numbers, before GST. Providers may offer negotiated discounts; Twilio and Plivo send India traffic over the international route.
How it works
How an OTP reaches your customer
One API call. Everything between your server and the customer's phone is handled for you.
Your app sends the OTP
One API call with the mobile number, your DLT-registered sender ID and template, and the message.
DLT checks the message
The SMS is scrubbed against your registered sender ID and template on TRAI's DLT platform before any operator accepts it.
The operator delivers it
It is routed to the customer's operator; if a route fails, the platform retries through an alternate one, so an OTP is not lost to one outage.
You get the delivery report
The delivery status comes back to your webhook and dashboard, and the SMS is billed at your slab's rate.
One rate card, set by your monthly volume
The more you send in a month, the lower the rate - and the whole month is billed at the rate of the slab you reach.
- Up to 24,999 SMS a month₹0.20
- 25,000 to 99,999 SMS a month₹0.18
- 1,00,000 to 4,99,999 SMS a month₹0.16
- 5,00,000 to 9,99,999 SMS a month₹0.14
- 10,00,000 to 24,99,999 SMS a month₹0.12
- 25,00,000 to 50,00,000 SMS a month₹0.10
Prices per SMS before 18% GST. Above 50 lakh a month, talk to us.
What counts as one SMS
Operators bill by the 160-character part. A longer message, or one in a regional script, is sent as several parts and billed as several SMS.
- A login OTP in English, 92 characters1 SMS
- A payment alert in English, 220 characters2 SMS
- An OTP in Hindi, 60 characters1 SMS
- A reminder in Hindi, 140 characters3 SMS
English (GSM) text: 160 characters in one SMS, 153 per part when longer. Hindi and other Unicode scripts: 70 characters, 67 per part.
SMS prices compared
Monthly cost of SMS to Indian numbers at each provider's published list price, before GST.
| Provider | 5,000 a month | 1,00,000 a month | 10,00,000 a month | 25,00,000 a month |
|---|---|---|---|---|
| FastKYCSlab rates, ₹0.20 to ₹0.10 per SMS | ₹1,000 | ₹16,000 | ₹1,20,000 | ₹2,50,000 |
| MSG91OTP packs: 5,000 at ₹0.25, 15,000 at ₹0.22, 27,000 at ₹0.20, up to 4,02,632 at ₹0.19 and 8,55,556 at ₹0.18; larger volumes are quoted. GST extra. | ₹1,250 | ₹19,000 | Quote only | Quote only |
| Fast2SMSOne rate for every SMS type, set by the wallet top-up: ₹0.25 below ₹4,000, down to ₹0.11 from ₹6 lakh. A slab rate lasts 6 to 24 months. GST not stated. | ₹1,250 | ₹17,000 | ₹1,30,000 | ₹3,25,000 |
| TwilioUS$0.0832 per SMS segment to India, sent over the international route; shown at ₹88 to the dollar. | ₹36,600 | ₹7,32,000 | ₹73,20,000 | ₹1,83,00,000 |
| PlivoUS$0.08 per SMS to India over the international route (domestic route not supported); shown at ₹88 to the dollar. | ₹35,200 | ₹7,04,000 | ₹70,40,000 | ₹1,76,00,000 |
For pack and wallet pricing, the rate shown is the one your monthly volume reaches. Providers may offer negotiated discounts.
DLT-compliant by default
DLT registration
Every business sending SMS in India registers its entity, sender IDs and templates on an operator's DLT portal - a one-time ₹5,000 + GST entity fee paid to the operator. We help you through it.
Links and numbers
Since 1 October 2024, a URL in an SMS must be whitelisted in your DLT template, and public link shorteners are blocked. We check templates before you go live.
Check the number first
The MNRL Check API tells you if a number is on the Mobile Number Revocation List, so OTPs never go to a disconnected or reassigned number.
APIs
The compliance API behind SMS delivery
Check a number against the Mobile Number Revocation List before you message it, so OTPs and alerts never reach a disconnected or reassigned number.
SMS pricing questions
How much does an SMS cost?
From ₹0.20 per SMS at up to 24,999 a month, falling by slab to ₹0.18, ₹0.16, ₹0.14 and ₹0.12, and ₹0.10 from 25 lakh a month. Prices are before 18% GST. Above 50 lakh a month, we price it with you.
How does the slab pricing work?
Your monthly volume decides your slab, and every SMS that month is billed at that slab's rate. Sending 1,00,000 SMS in a month puts all of them at ₹0.16.
What counts as one SMS?
One 160-character part. English text longer than 160 characters is sent in parts of 153; Hindi and other Unicode scripts fit 70 characters, or 67 per part. Each part is billed as one SMS.
Do I need DLT registration?
Yes. TRAI requires every business sending SMS in India to register its entity, sender IDs and message templates on an operator's DLT portal. The one-time entity fee of ₹5,000 + GST is paid to the operator, and we help you register.
Why are Twilio and Plivo so much more expensive for India?
They send SMS to Indian numbers over the international route, which operators charge at international rates. FastKYC sends over domestic DLT routes.
What happens when a network fails?
Messages are routed for fast delivery, and if one network fails the platform retries through alternate operators, so an OTP is not lost to a single carrier outage.
Can I check a number before I message it?
Yes. The MNRL Check API tells you whether an Indian mobile number is on the Mobile Number Revocation List, so OTPs and alerts are not sent to disconnected or reassigned numbers.
How do I integrate the SMS API?
Through a REST API that works from any major programming language. Delivery reports arrive on your webhook and in the dashboard in real time once you are live.
API catalog
Every check we run, grouped two ways
By what the API verifies, or by who it is built for. The same APIs, reached from whichever direction you are starting.
Browse all APIs