The rate card is the easy part. An Indian OTP costs ₹0.115 over WhatsApp and roughly ₹0.15–₹0.25 over SMS — and almost nobody’s bill matches those numbers, because two things decide the total that no rate card mentions.
The advertised numbers
- WhatsApp authentication template — ₹0.115 per delivered message. No DLT registration, no sender ID, no template approval queue with a telecom operator.
- SMS — ₹0.15 to ₹0.25 depending on route and volume, plus DLT registration and per-template scrutiny. Transactional routes cost more than promotional ones and are the only ones you should use for a login code.
- Voice OTP — several times either, and worth reserving for accessibility and for numbers that have failed both channels.
What actually moves the bill
1. The category your messages went out under
Meta prices marketing several times above utility and authentication. An order update, a delivery alert or a login code usually qualifies as utility or authentication — but only if someone categorises it that way. Sent as marketing by default, you pay the marketing rate for content that was never marketing, on every message, indefinitely.
This is the single largest line-item difference between two invoices for identical volume, and it is invisible on both of them. The messages were delivered, the charges are real, and nothing on the statement says the category was wrong.
2. Messages you were charged for that never arrived
On most platforms the charge lands when the provider accepts the message, not when it is delivered. Roughly one in twenty WhatsApp sends is accepted and then never reaches a handset — an unreachable device, a per-user frequency cap, a policy block. Every one of those is billed.
Across a month of real traffic that is a few percent of spend, and it is undetectable from a statement, because a charge for an accepted message looks exactly like a charge for a delivered one.
QuickAuth holds the price when a message is sent and only makes the charge final once Meta confirms delivery. Anything that never arrives is returned automatically. You are billed for messages that reached a handset.
What a real month looks like
Take 100,000 authentication messages, WhatsApp-first with SMS fallback, on typical Indian delivery rates:
- ~92,000 delivered over WhatsApp at ₹0.115 — about ₹10,580.
- ~8,000 fall back to SMS at ₹0.18 — about ₹1,440.
- Total ≈ ₹12,020, against ₹18,000 for the same volume sent entirely over SMS.
Sitting invisibly inside the top line: the ~5% Meta accepted and never delivered. Billed on charge-at-send, not billed on charge-on-delivery.
The saving is real but it is not the interesting number. The interesting number is the ~5% that Meta accepted and never delivered: on charge-at-send billing you pay for those too, and on charge-on-delivery you do not.
Questions worth asking any provider
- Am I charged on acceptance or on confirmed delivery? Worth a few percent of spend, and most answers are vague for a reason.
- Who decides the message category, and can I see it? If nobody is actively keeping eligible content in the utility lane, you are paying the marketing rate by default.
- Is DLT registration handled, or is it my homework? The TRAI portal is slow and easy to get wrong — see the DLT guide.
- What happens when WhatsApp does not deliver? Without automatic SMS fallback, that is a user who cannot log in.
- Am I billed in INR, on Indian routes? USD billing on globally-aggregated routes rarely gives the best Indian per-message cost.
The short version
WhatsApp at ₹0.115 with SMS fallback is the cheapest reliable way to send an OTP in India today, and the full comparison goes through deliverability and DLT as well as cost. But the rate is the part everyone quotes and the smallest part of the difference. Ask about category and about delivery-based billing — that is where the money actually is.
Questions
How much does one OTP cost in India?
Over WhatsApp, ₹0.115 per delivered authentication template. Over SMS, typically ₹0.15 to ₹0.25 per message depending on your route and volume, before DLT charges. The gap is why most Indian teams send WhatsApp first and keep SMS as the fallback rather than the default.
Why is my OTP bill higher than the per-message rate suggests?
Two reasons, and neither appears on a rate card. Messages sent under the marketing category cost several times the utility or authentication rate for content that often qualifies as neither. And on most platforms you are charged when the provider accepts a message, not when it is delivered — so the few percent that never arrive are still billed.
Do I pay for an OTP that never arrives?
On most platforms, yes. The charge lands when the provider accepts the message. Roughly one in twenty WhatsApp sends is accepted and then never delivered — an unreachable handset, a frequency cap, a policy block — and every one of those is billed. QuickAuth holds the price at send and only makes the charge final once delivery is confirmed.
Is there a cheaper option than SMS for OTP in India?
WhatsApp authentication templates, at roughly half to two-thirds the cost of an Indian SMS route, with no DLT registration and no sender-ID approval. The catch is reach: not every user has WhatsApp, so SMS fallback is not optional — it is what makes WhatsApp-first safe.