Short answer: use the app channels first and keep SMS as the safety net. A Telegram code costs $0.01 per delivered message through Telegram's official Gateway API. A WhatsApp authentication message is charged only when it is delivered, at Meta's rate for the user's country. SMS reaches every mobile number, with or without an app, so it is the fallback that completes the sign-up when the other two cannot. None of the three is phishing-proof, so the security work is the same for all of them: rate limits, short code lifetimes and number checks. BroadNet OTP and our sister brand MyOTP.App send codes over these channels from one API.
Facts checked on 23 October 2026 at Telegram's Gateway documentation and terms, Meta's WhatsApp pricing and authentication-template documentation, NIST SP 800-63B-4, the FBI's Internet Crime Complaint Center, Google and Apple developer documentation, and myotp.app. Prices and rules change, so check the linked source before you sign a contract.
| Question | SMS OTP | WhatsApp OTP | Telegram OTP |
|---|---|---|---|
| How the code arrives | As a text message from the mobile network | As an authentication template in the WhatsApp app | As a message in the Telegram app, optionally signed by your verified Telegram channel |
| Does the user need an app? | No, any mobile phone works | Yes, a WhatsApp account on that number | Yes, a Telegram account on that number |
| How you are charged | Per message sent to the network, at the rate for that country and operator | Per delivered message, at Meta's authentication rate for the user's country | $0.01 per delivered code, the same in every country |
| Code autofill | Android SMS Retriever API; iOS and web one-time-code autofill | Copy-code, one-tap autofill and zero-tap buttons | The user reads or copies the code in Telegram |
| Code lifetime you can set | Set by your own system | 1 to 90 minutes | 30 to 3,600 seconds |
| Main fraud risk | SMS pumping and SIM swap | Account takeover of the WhatsApp account | Account takeover of the Telegram account |
How does each OTP channel work?
All three channels deliver the same thing: a short code that proves the user controls a phone number. What differs is the path. SMS OTP travels from your platform to the user's mobile operator and lands in the phone's messages app. It needs no internet connection, no app and no account, which is why it still has the widest reach. WhatsApp OTP is a message sent through the WhatsApp Business Platform using an approved template in Meta's authentication category. Telegram OTP is sent through Telegram's Gateway API and arrives in the Telegram app on the account registered to that phone number.
WhatsApp authentication templates
Meta allows only fixed wording in authentication templates: the code, an optional security line ("For your security, do not share this code.") and an optional expiry notice. You cannot add marketing text. Each template carries one of three buttons. A copy-code button copies the code to the clipboard. A one-tap autofill button passes the code straight into your Android app, and Meta calls it "the preferred solution". A zero-tap template, available on Android only, lets your app receive the code without the user leaving the app. The code expiry can be set from 1 to 90 minutes (Meta, authentication templates).
Telegram's Gateway API
Telegram's Gateway API is the official way for a business to send verification codes to Telegram users. You call sendVerificationMessage with the user's phone number, and Telegram either generates a code of 4 to 8 digits or sends one you supply. The code lives for 30 to 3,600 seconds. Delivery reports (sent, delivered, read, expired or revoked) are posted to an HTTPS callback address that you provide. You can also have messages signed by a verified Telegram channel that you own, so users see your brand. Before sending, checkSendAbility tells you whether the number can receive a code at all. A positive check is charged as one message, and the send that follows it is then free. A negative check costs nothing (Telegram, Gateway API reference).
What does each channel cost?
The three channels are billed in different ways, so compare cost per completed verification, not price per message.
- Telegram: Telegram's product page states $0.01 per delivered code, with automatic refunds for codes that are not delivered within the lifetime you set. You pay with prepaid credits, and Telegram says it accepts payment in TON. Its terms state that credit purchases are final and that charges are otherwise final when a message is sent, so read both pages before you budget (Telegram, Gateway terms).
- WhatsApp: Meta has charged per delivered message since 1 July 2025. The rate depends on the template category and the country calling code of the user's number, and monthly volume tiers lower the authentication rate as you send more. The service-message charge that Meta introduced on 1 October 2026 does not apply to authentication templates (Meta, pricing).
- WhatsApp for senders based abroad: if your business is based in a different country from the user and sends more than 750,000 messages outside the customer service window to users in that market in a moving 30-day period, Meta applies a higher authentication-international rate. Since 1 October 2026 this covers 18 markets, including Saudi Arabia, the UAE, Egypt, Iraq, Kuwait and Oman (Meta, authentication-international rates).
- SMS: you pay per message submitted to the network, at the rate for the destination country and operator. Prices vary widely between countries, so check the OTP pricing page and the per-country SMS rates for the markets you serve.
The worked example below is hypothetical. It uses round prices to show how the arithmetic works, not real rates for any country: SMS at $0.040 per message, WhatsApp at $0.0135 per delivered message (BroadNet's WhatsApp list rate) and Telegram at $0.01 per delivered code. Each strategy sends 1,000 codes, and any user the app channel cannot reach gets an SMS instead.
| Strategy (hypothetical) | Codes sent by app channel | Codes sent by SMS | Total cost for 1,000 users |
|---|---|---|---|
| SMS only | 0 | 1,000 × $0.040 = $40.00 | $40.00 |
| WhatsApp first, 60% delivered on WhatsApp | 600 × $0.0135 = $8.10 | 400 × $0.040 = $16.00 | $24.10 |
| Telegram first, 50% of numbers reachable on Telegram | 500 × $0.01 = $5.00 | 500 × $0.040 = $20.00 | $25.00 |
Two things decide the real result: the share of your users who are reachable on each app in each country, and how quickly you switch to SMS. Our WhatsApp vs SMS OTP cost guide gives the break-even formula country by country, and the OTP cost estimator runs the numbers with your own volumes.
Which channel delivers more reliably?
SMS reaches the most people because it needs only an active mobile number, but delivery depends on the route. Codes sent over direct operator connections with a registered sender ID arrive quickly and return a delivery receipt; codes on grey routes can be filtered without warning. WhatsApp and Telegram deliver over the internet, so they also work on Wi-Fi when the user has no mobile signal, for example while travelling abroad. They fail when the user has no account on that number, has removed the app or is offline until the code expires.
That is why delivery status matters more than the channel. Meta reports sent, delivered and read for WhatsApp messages, and Telegram posts the same kind of status to your callback address. Use those signals to decide when to send the SMS, instead of waiting for the user to ask for a new code.
Which channel is the most secure?
No OTP channel is phishing-resistant: if a fake website persuades a user to type the code, the attacker can use it. The differences lie in how an attacker can intercept the code.
- SMS and SIM swap. An attacker who persuades an operator to move the victim's number to a new SIM card receives the victim's text messages. The FBI's Internet Crime Complaint Center recorded 1,611 SIM-swapping complaints with adjusted losses of more than $68 million in 2021 (FBI IC3). The US National Institute of Standards and Technology classes OTP over the phone network as a "restricted" authenticator: services may still use it, but must offer users an alternative that is not restricted and explain the risks (NIST SP 800-63B-4).
- WhatsApp and Telegram. Codes travel inside the app rather than over the mobile network, so a SIM swap alone does not expose an existing session. The risk moves to the app account itself: if an attacker registers or takes over the user's WhatsApp or Telegram account, the codes go to the attacker. Encourage users to turn on the two-step verification that both apps offer.
- Autofill reduces phishing on every channel. Android's SMS Retriever API reads a code that carries your app's 11-character hash, and Apple's domain-bound codes end with a line such as "@example.com #123456", so the code is suggested only on your real website or app (Google, Apple). WhatsApp's one-tap and zero-tap buttons give the same benefit inside your Android app.
For high-value actions, such as changing a payout account, add a check that does not depend on the code alone. NIST suggests looking at risk signals such as a recent SIM change or number port before you send a code. Our guides to SIM swap fraud and OTP security standards cover these controls in detail.
What about SMS pumping fraud?
SMS pumping, also called artificially inflated traffic, happens when bots fill in your sign-up form with numbers that a fraudster controls, often in expensive destinations. Each code you send earns the fraudster a share of the termination fee. App channels change this picture: WhatsApp and Telegram charges are paid to Meta and Telegram, so that payout model does not work there, and Telegram's checkSendAbility shows whether a number is a real Telegram account before you pay for the send. But every code you send still costs money, so a bot can still run up your bill. Keep the same controls on every channel: rate limits per number, per IP address and per country, a bot challenge on the form, number validation with an HLR lookup, and alerts when traffic to one country suddenly jumps. Our SMS pumping guide explains the attack in detail.
How do you build a fallback that never pays twice?
- Choose the first channel per country. Start with the channel most of your users in that country have, at the lowest cost per completed verification. Where WhatsApp costs more than a local SMS, start with SMS.
- Check before you send. For Telegram, call checkSendAbility and pass its request ID to the send, so the check and the message cost one charge between them. For WhatsApp, Meta charges only for delivered messages, so trying WhatsApp first costs nothing for users who have no WhatsApp account.
- Wait on the delivery status, not a fixed timer. If the app channel has not reported "delivered" within a short window that you set, for example 10 to 20 seconds, send the SMS.
- Use one code across channels. Send the same code, with the same expiry, over the fallback channel, so that a late WhatsApp or Telegram message and the SMS both work, and the user is never confused by two different codes.
- Stop the other channel once the code is used. Telegram lets you revoke a message that has not yet been delivered, although revoked codes are not refunded. Mark the code as used in your own system so it cannot be entered twice.
- Offer voice as the last step. For users who cannot receive text messages, a voice OTP call reads the code aloud.
How do MyOTP and BroadNet OTP fit?
MyOTP.App is the BroadNet Group's self-service OTP API. According to myotp.app, it sends codes over SMS, WhatsApp and Telegram with one API key and one credit balance, and you choose the channel on each request with a single field. Telegram codes go through the Telegram Gateway API and can fall back automatically to SMS when the user is not on Telegram. MyOTP's pricing page lists a Starter plan at $20 a month and a Business plan at $25 a month, and checking a code is free. Read more on our MyOTP product page.
BroadNet OTP is the enterprise service for high-volume senders. It sends SMS over direct operator connections and adds automatic fallback, number validation and fraud controls such as rate limits per number and per IP address. For WhatsApp codes, BroadNet is an official Meta Business Solution Provider, and our WhatsApp Business API handles authentication templates and their approval.
Frequently asked questions
Is WhatsApp OTP cheaper than SMS OTP?
Often, but not everywhere. Meta charges per delivered authentication message at a rate set for each country, and SMS prices vary by country and operator. Compare the two rates for each market, then include the cost of sending an SMS to users who do not receive the WhatsApp message.
How much does Telegram OTP cost?
Telegram's Gateway API costs $0.01 per delivered code, the same in every country, paid from prepaid credits. A send-ability check is charged only when the number can receive codes, and the send that follows it is then free. Telegram's documentation says that codes not delivered within their lifetime are refunded automatically.
Is Telegram's Gateway API official?
Yes. Telegram publishes and runs the Gateway API itself at core.telegram.org/gateway. Codes arrive inside the Telegram app, and you can have them signed by a verified Telegram channel that you own so that users see your brand.
Is SMS OTP still allowed under NIST guidelines?
Yes. NIST SP 800-63B-4, published in July 2025, classes OTP over the phone network as a restricted authenticator. A service that uses it must offer at least one alternative that is not restricted, tell users about the risks and plan for a future in which it may no longer be acceptable.
Can WhatsApp OTP fill in the code automatically?
Yes, on Android. One-tap autofill passes the code into your app with one tap, and zero-tap templates deliver it to your app with no tap at all. On iPhone, Meta's documentation says iOS 26 and later can suggest the code from the keyboard; for earlier iOS versions, use the copy-code button.
What happens if the user does not have WhatsApp or Telegram?
The message cannot be delivered, so send the code by SMS instead. Telegram's checkSendAbility tells you in advance whether the number can receive a code, at no charge when it cannot. With WhatsApp, an undelivered message is not charged, so you can switch to SMS as soon as no delivery report arrives.
Do WhatsApp and Telegram OTP stop SMS pumping?
They remove the termination-fee payout that drives pumping on SMS, but they do not make you immune. Bots can still request codes for real accounts and run up your bill, and your SMS fallback can still be targeted. Keep rate limits, bot challenges and country alerts in front of every channel.
Which OTP channel should a bank use?
Banks usually need the widest reach and a clear audit trail, so SMS over direct operator routes stays the base channel, with WhatsApp as an option where customers prefer it. Check your central bank's rules first: some regulators require additional factors for payments, and our guide to OTP rules for banks covers several markets.
Sources
- Telegram, Gateway API overview, API reference and terms of service, accessed 23 October 2026.
- Meta for Developers, Authentication templates, Pricing and Authentication-international rates, accessed 23 October 2026.
- NIST, SP 800-63B-4, Digital Identity Guidelines: Authentication and Authenticator Management, July 2025.
- FBI Internet Crime Complaint Center, Public Service Announcement on SIM swapping, 8 February 2022.
- Google, SMS Retriever API: construct a verification message; Apple, Enabling AutoFill for domain-bound SMS codes, accessed 23 October 2026.
- MyOTP.App, home page, pricing and Telegram OTP, accessed 23 October 2026.
Want to cut verification costs without losing reach? Talk to BroadNet about OTP over SMS and WhatsApp with automatic fallback, or start on MyOTP.App to send your first codes over SMS, WhatsApp and Telegram today.
