# OTP cost by country: WhatsApp authentication rates, SMS cost drivers and the cost of a wasted code

> WhatsApp authentication rates for 44 markets (Meta, October 2026), why SMS OTP prices differ by country, and when a number check costs less than a wasted code.

Canonical: https://mobilevalidate.com/blog/otp-cost-by-country · Last updated: 2026-11-07

![A rate-card panel of six globe rows, each with a gradient bar for the domestic rate and a dashed extension for the international one, one row in risk red, beside a balance tipped by two wasted SMS envelopes against a small HLR weight.](https://mobilevalidate.com/images/blog/otp-cost-by-country.svg)

*The same code costs very different amounts by country; a check before sending can cost less than the codes it saves.*


By MobileValidate team (https://mobilevalidate.com/about) · Published: 2026-11-07 · Category: Research · Tags: OTP, WhatsApp, SMS, Pricing, SMS cost, HLR lookup, SMS pumping

A WhatsApp OTP costs between US$0.0008 and US$0.0550 per delivered code, depending on the recipient's country. Those are Meta's authentication rates on the rate card effective 1 October 2026: Colombia is the cheapest market and Germany the most expensive. An SMS OTP has no single price list. What you pay depends on what the destination operator charges to deliver the message, on whether the regulator caps that charge for senders from abroad, and on any sender registration fees. That is why the same code can cost very different amounts in different countries.

This page gives Meta's authentication rates for all 44 markets and regions we track. It explains the SMS cost drivers using regulators' own documents, and it shows when checking a number before you send costs less than a wasted code. Facts are as of 7 November 2026. We don't quote SMS providers' prices: they change often, differ by route and are negotiated. Use the SMS price on your own invoice wherever the formulas below say `S`.

## How much does one OTP cost in each country?

For WhatsApp, the table below has the answer. These are Meta's USD list rates per **delivered** authentication template message, on the rate card effective 1 October 2026, at the first volume tier ([Meta pricing](https://developers.facebook.com/docs/whatsapp/pricing); transcribed in our [rate card dataset](/datasets/whatsapp-rate-card-history)). The last two columns apply only to eligible businesses based in another country (see the next section).

| Market | Authentication (USD) | Per 1,000 codes (USD) | Authentication-international (USD) | International ÷ domestic |
|---|---:|---:|---:|---:|
| Argentina | 0.0260 | 26.00 | — | — |
| Bangladesh | 0.0037 | 3.70 | 0.0960 | 25.9× |
| Brazil | 0.0068 | 6.80 | — | — |
| Chile | 0.0200 | 20.00 | — | — |
| Colombia | 0.0008 | 0.80 | — | — |
| Egypt | 0.0036 | 3.60 | 0.0650 | 18.1× |
| France | 0.0300 | 30.00 | — | — |
| Germany | 0.0550 | 55.00 | — | — |
| Hong Kong | 0.0260 | 26.00 | — | — |
| Hungary | 0.0350 | 35.00 | — | — |
| India | 0.0014 | 1.40 | 0.0304 | 21.7× |
| Indonesia | 0.0250 | 25.00 | 0.1360 | 5.4× |
| Iraq | 0.0079 | 7.90 | 0.1280 | 16.2× |
| Italy | 0.0300 | 30.00 | — | — |
| Kuwait | 0.0440 | 44.00 | 0.1200 | 2.7× |
| Malaysia | 0.0140 | 14.00 | 0.0418 | 3.0× |
| Mexico | 0.0085 | 8.50 | — | — |
| Morocco | 0.0230 | 23.00 | 0.0811 | 3.5× |
| Nepal | 0.0034 | 3.40 | 0.1120 | 32.9× |
| Netherlands | 0.0500 | 50.00 | — | — |
| Nigeria | 0.0067 | 6.70 | 0.0750 | 11.2× |
| Oman | 0.0247 | 24.70 | 0.0600 | 2.4× |
| Pakistan | 0.0150 | 15.00 | 0.0750 | 5.0× |
| Peru | 0.0300 | 30.00 | — | — |
| Poland | 0.0122 | 12.20 | — | — |
| Qatar | 0.0120 | 12.00 | — | — |
| Romania | 0.0290 | 29.00 | — | — |
| Saudi Arabia | 0.0107 | 10.70 | 0.0598 | 5.6× |
| Singapore | 0.0160 | 16.00 | — | — |
| South Africa | 0.0095 | 9.50 | 0.0200 | 2.1× |
| Spain | 0.0200 | 20.00 | — | — |
| Sri Lanka | 0.0020 | 2.00 | 0.1440 | 72.0× |
| Turkey | 0.0009 | 0.90 | — | — |
| Ukraine | 0.0298 | 29.80 | 0.0746 | 2.5× |
| United Arab Emirates | 0.0157 | 15.70 | 0.0510 | 3.2× |
| United Kingdom | 0.0220 | 22.00 | — | — |
| North America (US, Canada) | 0.0034 | 3.40 | — | — |
| Rest of Africa | 0.0040 | 4.00 | — | — |
| Rest of Asia Pacific | 0.0113 | 11.30 | — | — |
| Rest of Central & Eastern Europe | 0.0212 | 21.20 | — | — |
| Rest of Latin America | 0.0113 | 11.30 | — | — |
| Rest of Middle East | 0.0091 | 9.10 | — | — |
| Rest of Western Europe | 0.0171 | 17.10 | — | — |
| Other | 0.0077 | 7.70 | — | — |

How to read it:

- **The recipient's country code picks the row.** A code to a `+49` number is billed at the Germany rate, wherever your business is.
- **List rates are a ceiling.** Volume tiers lower utility and authentication rates at higher monthly volumes. They are set per market and category, reset monthly, and Meta publishes them in separate files.
- **Undelivered means unbilled.** "Businesses are only charged when a message is delivered," Meta says ([Meta pricing](https://developers.facebook.com/docs/whatsapp/pricing)). A code sent to a number without WhatsApp costs no Meta fee, but it costs the user time.
- **Three markets got dearer in October.** Compared with the July 2026 card, the authentication rate rose in Pakistan (US$0.0100 → 0.0150), Peru (0.0200 → 0.0300) and South Africa (0.0076 → 0.0095). Bangladesh, Iraq, Kuwait, Morocco, Nepal, Oman, Sri Lanka and Ukraine became standalone markets with their own rates.
- **Two markets from the dataset are not shown here.** Both are in the CSV.

For SMS we don't publish a per-country price, and we'd be wary of any page that gives one without a date, a route and a source. The rest of this page explains what moves that price.

## What is the authentication-international rate, and who pays it?

It's a higher rate for authentication messages sent across a border by large senders. Meta charges it when all of these hold ([Meta, authentication-international rates](https://developers.facebook.com/documentation/business-messaging/whatsapp/pricing/authentication-international-rates)):

1. **Your business is eligible.** It becomes eligible once it sends more than 750,000 messages outside customer service windows in a moving 30-day period, across all its accounts, to users in markets that have this rate. Eligibility is permanent once granted.
2. **You got notice.** Meta sets the start time 30 days after eligibility for each market, which gives you 30 days' notice.
3. **Your business is based in another country than the recipient.** Meta decides your primary business location from public information, such as where the company is listed and its corporate structure, including any parent company.

Meta's own example: a business based in Indonesia sending codes to Indonesian users pays the normal rate, while a business based in India pays the international one. Eighteen markets have the rate: Indonesia since 1 June 2024, India since 1 July 2024, Egypt, Malaysia, Nigeria, Pakistan, Saudi Arabia, South Africa and the UAE since 1 February 2025, and nine more since 1 October 2026.

The multiplier is what matters for a business abroad. In Sri Lanka the international rate is 72 times the domestic one, in Nepal 33 times and in India 22 times. A global app with a large South Asian user base can see its WhatsApp OTP bill jump overnight once it crosses the threshold.

## Why does an SMS OTP cost so much more in some countries?

Because the operator that delivers the message to the handset sets most of the price, and regulators often protect only domestic senders. Three cost drivers explain most of the differences between countries.

One curly apostrophe in an OTP template can double the parts you pay for; the free [SMS GSM-7 converter](/tools/sms-gsm-converter) shows the segments before and after replacing such characters.

### Termination charges, and who regulates them

Every SMS ends on the recipient's mobile network, and that network charges for delivering it: the termination charge. Where a regulator sets it, it's usually small. Where it doesn't, operators price it themselves, and business (A2P) traffic from abroad is the obvious place to charge more.

India shows both sides in one regulation. TRAI's SMS Termination Charges Regulations, 2013 (No. 7 of 2013, in force since 1 June 2013) make every originating operator pay "a termination charge of Re. 0.02 (paise two only)" per SMS. Regulation 3 then adds: "Provided that termination charges for international incoming Short Message Service (SMS) shall be under forbearance" ([TRAI, 2013](https://www.trai.gov.in/sites/default/files/2024-09/201305240356215478392English_SMS_Regulation_24.05.pdf)). Forbearance means the regulator doesn't set the price. On top of the 2 paise, the commercial communications rules let the terminating operator charge up to ₹0.05 for each promotional, service or transactional SMS ([TRAI consultation paper 11/2025](https://www.trai.gov.in/sites/default/files/2025-11/CP_10112025_0.pdf), para 2.121).

So a domestic Indian sender's OTP carries a regulated termination cost of a few paise. A sender abroad delivering to the same phone pays whatever the Indian operators charge for international traffic. TRAI's 2025 consultation paper notes that SMS still carries "one-time passwords, banking and transaction alerts", and asks stakeholders whether the 2 paise charge should be revised (para 2.133 and question 14). Check TRAI's site for the outcome before you budget on it. Our [guide to India's 2026 anti-spam rules](/blog/india-trai-anti-spam-rules-2026) covers the sender-side obligations.

Meta's authentication-international rate follows the same logic: one price for domestic senders, a higher one for senders based abroad. India's WhatsApp ratio is about 22 to 1.

### Sender registration fees

More and more countries require businesses to register the sender name that appears on their SMS. Registration is a fixed cost, so it weighs most on low volumes.

Singapore is a clear example with a public fee schedule. Since 31 January 2023, alpha, numeric and alphanumeric sender IDs must be registered with the SMS Sender ID Registry (SSIR) under the Full SSIR regime. Messages under an unregistered sender ID are shown as "Likely-SCAM". SGNIC lists a one-time account set-up fee of S$545 per organisation and an annual fee of S$218 per registered sender ID, both including GST ([SGNIC, read 2026-11-07](https://www.sgnic.sg/smsregistry)). A business sending 10,000 codes a year to Singapore under one sender ID pays about S$0.08 per code in registry fees in its first year (S$763 ÷ 10,000), before any message charge. At a million codes a year, the fee almost disappears.

India's DLT system, the US 10DLC process and other national schemes work differently and have their own fees, often collected by operators or registries rather than regulators. Ask your SMS provider for the fees for each destination you send to, and add them to `S`.

### Routes, retries and fraud

- **Route.** The same message can reach an operator through a direct connection or through several intermediaries. Each hop takes a margin, and some cheap routes deliver business traffic as if it were person-to-person, which operators fight. Our [direct-to-carrier SMS explainer](/blog/direct-to-carrier-sms-explained) covers what to ask.
- **Retries.** Users press "resend". Every resend is another message at full price, so a sign-up that never verifies can cost two or three SMS.
- **Pumping.** In SMS pumping, fraudsters trigger OTPs to numbers they profit from. The cost per verified user rises without any rise in list prices. Our [SMS pumping by country](/blog/sms-pumping-by-country) post shows how to allow, gate or block destinations.

## When is WhatsApp authentication cheaper than SMS?

When three things hold: the user has WhatsApp, Meta's rate for the country (at your tier, domestic or international) is below your SMS price including registration fees, and few codes need an SMS fallback. The table above gives you `W`. Your invoice gives you `S`. The full formula for cost per verified user, including the share of users on WhatsApp and the fallback rate, is in our [WhatsApp OTP vs SMS OTP cost guide](/blog/whatsapp-otp-vs-sms-otp-cost).

Two patterns stand out on the October 2026 card:

- **Very low WhatsApp rates.** Colombia (US$0.0008), Turkey (0.0009), India (0.0014), Sri Lanka (0.0020), Nepal (0.0034), Egypt (0.0036) and Bangladesh (0.0037) are all under half a US cent for a domestic sender. Few SMS prices go that low.
- **High WhatsApp rates.** Germany (US$0.0550), the Netherlands (0.0500), Kuwait (0.0440) and Hungary (0.0350) cost several US cents. Here a negotiated SMS rate can be the cheaper channel, so compare carefully.

For businesses abroad, recompute with the international column. Sri Lanka goes from one of the cheapest markets (US$0.0020) to the most expensive authentication rate on the card (US$0.1440).

## What does a wasted OTP cost, compared with checking the number first?

A wasted OTP is a code sent to a number that can never verify: mistyped, disconnected, switched off for good, a landline, or a fraud number. On WhatsApp, Meta doesn't charge for undelivered messages, so the waste is the user's time and a late fallback. On SMS, the waste is money whenever your contract bills messages that weren't delivered, plus every resend.

A check before sending costs the same in every country. From our public catalog (`GET /v1/services`), read on 2026-11-07:

| Check | What it tells you before you send | Real time, per number | Bulk job, per number |
|---|---|---:|---:|
| Live network status (HLR, `number.hlr`) | Reachable, unreachable or invalid on the home network; ported; current network | US$0.006 | US$0.005 |
| Carrier lookup (`network.carrier`, beta) | Line type (mobile, fixed line, VoIP…) and current carrier | US$0.003 | US$0.0015 |
| Number portability (MNP, `number.mnp`) | Ported or not, current network code | US$0.002 | US$0.002 |
| WhatsApp registration (`whatsapp.registered`) | Whether the number has a WhatsApp account | US$0.004 | US$0.00025 |

Only conclusive answers are billed. Unknown, invalid-format and duplicate results are free. Prices can change, and the [pricing page](/pricing) always has the current ones.

### The break-even rule

A check pays for itself when the money it saves on bad numbers exceeds what it costs on all numbers:

**b × m × S > c**

| Symbol | Meaning |
|---|---|
| `b` | Share of numbers that would never verify (from your logs) |
| `m` | Messages you send to a bad number before the user gives up, including resends |
| `S` | Your SMS price per OTP, including segments and registration fees, from your invoice |
| `c` | Check price per number (table above) |

Rearranged, the check breaks even when **b > c ÷ (m × S)**.

### An illustrative example

*This example uses made-up SMS prices to show the arithmetic. They are not quotes from any provider and not averages for any country.* Assume `m` = 2 (the first code plus one resend) and the real-time HLR price of US$0.006:

| Example SMS price `S` | Wasted per bad number (2 × S) | Bad-number share at which HLR breaks even | Same, with a carrier lookup at US$0.003 |
|---:|---:|---:|---:|
| US$0.02 | US$0.04 | 15% | 7.5% |
| US$0.10 | US$0.20 | 3% | 1.5% |
| US$0.30 | US$0.60 | 1% | 0.5% |

Put in per-1,000 terms with the middle row: checking 1,000 sign-ups costs at most US$6.00. If 50 of them (5%) are bad and each would have drawn two SMS at US$0.10, the waste avoided is 50 × 2 × US$0.10 = US$10.00. The check saves US$4.00 per 1,000 and gives you a reason to ask the 50 users to correct their number instead of waiting for a code. At a 2% bad share, the same check costs US$2.00 more than it saves, and only pays off through fraud prevention.

That leads to three practical rules:

1. **The pricier the destination, the more a check is worth.** The break-even share falls in line with your SMS price. Gate expensive destinations first.
2. **The cheaper check is often enough.** If most of your bad numbers are landlines and VoIP, a carrier lookup at half the HLR price catches them. If they're disconnected mobiles, you need HLR's reachability answer. The [HLR break-even post](/blog/when-does-an-hlr-lookup-pay-for-itself) works through both.
3. **Don't check twice.** Check at sign-up or when the number changes, and cache the answer for your re-check window. Repeats served from your account's cache are free.

### And a WhatsApp check?

Be careful with this one. Because Meta doesn't charge for undelivered messages, a WhatsApp check never saves you a Meta fee, and in Colombia or Turkey the code itself costs less than a real-time check. A WhatsApp check pays off by picking the channel up front: a user without WhatsApp gets an SMS immediately instead of waiting for a code that will never arrive. Run it once per number, when it's added, not before every code.

## How do pumping and fake sign-ups change the math?

They raise `b` sharply, and they cluster in certain destinations. In a pumping wave most OTP requests come from numbers that will never verify, so `b` jumps from a few percent to most of the traffic for that destination. At that point any check that rejects invalid, unreachable or non-mobile numbers pays for itself many times over, and blocking whole number ranges becomes reasonable.

A pre-send check doesn't tell you who is behind a number, and you shouldn't use it to profile people. Use the answer for one decision: send the code, ask the user to correct the number, or offer another factor. Our [OTP fraud checks guide](/blog/otp-fraud-prevention-checks-before-sending-a-code) lists the signals, and the [SMS pumping guide](/blog/sms-pumping-how-it-works-and-how-to-stop-it) explains the attack.

## What does a pre-send check look like in code?

One request before you send the code. This is a real call with our public sandbox key, made on 2026-11-07. The sandbox answers only fixed [test values](/docs/test-mode) and is never billed:

```bash
curl https://api.mobilevalidate.com/v1/lookup \
  -H "Authorization: Bearer mv_test_publicSandboxn9ZgneuhR1B9CRfKG3fulym" \
  -H "Content-Type: application/json" \
  -d '{"numbers": ["+447700900001", "+447700900002"], "checks": ["hlr", "whatsapp"]}'
```

Response, abridged to the fields a send decision needs:

```json
{
  "object": "lookup",
  "status": "completed",
  "livemode": false,
  "results": [
    { "e164": "+447700900001", "number_status": "valid",
      "checks": {
        "number.hlr": { "status": "completed",
          "attributes": { "status": "reachable", "ported": false, "roaming": false,
                          "network": "Test Mobile", "mcc_mnc": "23415", "country": "GB" },
          "billed": false },
        "whatsapp.registered": { "status": "completed", "registered": true, "billed": false } } },
    { "e164": "+447700900002", "number_status": "valid",
      "checks": {
        "number.hlr": { "status": "completed",
          "attributes": { "status": "unreachable", "ported": false, "roaming": false,
                          "network": "Test Mobile", "mcc_mnc": "23415", "country": "GB" },
          "billed": false },
        "whatsapp.registered": { "status": "completed", "registered": false, "billed": false } } }
  ]
}
```

The first number is reachable and on WhatsApp, so send the code on WhatsApp with SMS as the fallback. The second is unreachable and has no WhatsApp account, so ask the user to confirm the number before you pay for an SMS. Treat an `unknown` answer as missing data and send as usual. It's free and it isn't evidence of a bad number.

## How was this page built?

- **WhatsApp rates.** Taken from our [dataset](/datasets/whatsapp-rate-card-history), which transcribes Meta's USD rate cards effective 1 July and 1 October 2026 to four decimals, downloaded from Meta's pricing page on 25 September 2026. We checked the rules for the international rate on Meta's page on 2026-11-07. Ratios are international ÷ domestic, rounded to one decimal.
- **SMS cost drivers.** Taken only from regulators' documents (TRAI) and the registry operator (SGNIC), read on 2026-11-07. We deliberately don't compare SMS providers' price lists.
- **Check prices.** Taken from our live catalog, `GET /v1/services`, on 2026-11-07.
- **Example SMS prices** (US$0.02, 0.10, 0.30) are invented to show the arithmetic and are labelled as such.

We'll update the table when Meta publishes its next quarterly card. Meta can change rate cards only on the first day of a quarter, with at least a month's notice.

## How do you start with MobileValidate?

The checks on this page are [live network status (HLR)](/services/hlr-lookup), [carrier lookup](/services/carrier-lookup) and [WhatsApp number check](/services/whatsapp-number-check). All three work in real time, for a sign-up or OTP flow, and in bulk jobs, for cleaning a list before a campaign. Only the network checks above tell you about reachability and line type; the WhatsApp check tells you only whether an account exists.

- **Try a single number free.** The [carrier lookup page](/services/carrier-lookup) answers 3 numbers a day, no sign-up needed.
- **Build free.** [Get a free test key](/get-test-key) with fixed test answers, and read the [test mode docs](/docs/test-mode).
- **Check real numbers free.** Every live account can check 20 phone numbers and 10 e-mail addresses for real, free, on the dashboard's **Try it** page. [Request access](/request-access) to open one; accounts are approved automatically.
- **Estimate a list free.** Upload a file as a bulk job, or call `POST /v1/jobs/estimate`, and see the maximum cost before anything is checked. Then run the job with `max_cost` set to that estimate. Details are in the [bulk jobs docs](/docs/bulk-jobs).
- **Then prepay.** Top-ups of US$100 or more get a 5% bonus, US$500 or more 8%, and US$2,000 or more 10%.

Check only numbers your users gave you, for the purpose they gave them. MobileValidate doesn't send OTPs or SMS. WhatsApp is named descriptively; MobileValidate is not affiliated with WhatsApp or Meta.

## What are the key takeaways?

- On Meta's 1 October 2026 card, a delivered WhatsApp authentication message costs US$0.0008 (Colombia) to US$0.0550 (Germany) for a domestic sender, at list price.
- Large senders based abroad pay the authentication-international rate in 18 markets: 2.1 times the domestic rate in South Africa, 22 times in India, 72 times in Sri Lanka.
- SMS OTP prices differ mainly because destination operators set termination charges, and regulators often cap only domestic traffic. India fixes 2 paise per domestic SMS but leaves international incoming SMS under forbearance.
- Sender registration adds fixed costs: S$545 to set up and S$218 per sender ID a year in Singapore, including GST.
- A real-time HLR check costs US$0.006 (catalog, 2026-11-07). It pays for itself when bad numbers × wasted messages × your SMS price exceeds that. Use your invoice, not someone else's price list.

## Sources

1. [Pricing on the WhatsApp Business Platform (rate cards effective 1 October 2026)](https://developers.facebook.com/docs/whatsapp/pricing) — Meta for Developers, 2026
2. [Authentication-international rates](https://developers.facebook.com/documentation/business-messaging/whatsapp/pricing/authentication-international-rates) — Meta for Developers, 2026
3. [WhatsApp Business Platform rate cards (USD), 2026-07 and 2026-10](https://mobilevalidate.com/datasets/whatsapp-rate-card-history) — MobileValidate (transcribed from Meta's public rate cards), 2026
4. [The Short Message Services (SMS) Termination Charges Regulations, 2013 (No. 7 of 2013)](https://www.trai.gov.in/sites/default/files/2024-09/201305240356215478392English_SMS_Regulation_24.05.pdf) — Telecom Regulatory Authority of India (TRAI), 2013
5. [Consultation Paper No. 11/2025 on Review of existing TRAI Regulations on Interconnection matters (10 November 2025)](https://www.trai.gov.in/sites/default/files/2025-11/CP_10112025_0.pdf) — Telecom Regulatory Authority of India (TRAI), 2025
6. [Singapore SMS Sender ID Registry (SSIR): fees and Full SSIR regime](https://www.sgnic.sg/smsregistry) — Singapore Network Information Centre (SGNIC), 2026
7. [MobileValidate service catalog (GET /v1/services), read 2026-11-07](https://api.mobilevalidate.com/v1/services) — MobileValidate, 2026

## Frequently asked questions

### How much does a WhatsApp OTP cost by country?

On Meta's rate card effective 1 October 2026, a delivered WhatsApp authentication message costs from US$0.0008 in Colombia and US$0.0009 in Turkey to US$0.0550 in Germany, at the first volume tier. India is US$0.0014, Brazil US$0.0068, the UK US$0.0220 and North America US$0.0034. Meta charges only for delivered messages.

### What is the WhatsApp authentication-international rate?

A higher authentication rate that Meta charges in 18 markets when an eligible business based in another country sends the code. A business becomes eligible after sending more than 750,000 messages outside customer service windows in a moving 30-day period to users in those markets, and gets 30 days' notice. On the October 2026 card it ranges from US$0.0200 (South Africa) to US$0.1440 (Sri Lanka).

### Why does SMS OTP cost more in some countries than others?

Mostly because the destination operator sets the price of delivering the message, and many regulators cap only domestic rates. India, for example, fixes a 2 paise termination charge for domestic SMS but leaves international incoming SMS under forbearance, so operators price it themselves. Sender registration fees, such as Singapore's registry fees, add a fixed cost on top.

### Is WhatsApp always cheaper than SMS for OTP?

No. It is cheaper only for users who have WhatsApp, at the rate you actually pay, and after counting the SMS fallback for codes that don't arrive in time. Compare Meta's rate for the country with the SMS price on your own invoice. A foreign sender that crosses Meta's authentication-international threshold can pay 2 to 72 times the domestic rate.

### When does an HLR check before sending an OTP pay for itself?

When the share of bad numbers times the SMS you would waste on each is larger than the check price. At US$0.006 per real-time HLR check (our catalog, 2026-11-07) and two SMS wasted per bad sign-up, the check breaks even at 3% bad numbers if one SMS costs you US$0.10, and at 15% if it costs US$0.02. These SMS prices are examples, not quotes.

### Does a WhatsApp number check save money on WhatsApp OTP?

Not on Meta's fees. Meta doesn't charge for undelivered messages, and in some markets the authentication message costs less than a real-time check. A WhatsApp check pays off by choosing the channel before you send: users without WhatsApp get SMS straight away instead of waiting for a code that never arrives.

### Are failed SMS OTPs billed?

That depends on your SMS contract, not on the network. Some contracts bill each message submitted, others only delivered messages. Read yours: if you pay per submission, every code sent to a dead, mistyped or landline number is money lost, and that is the case a pre-send check is for.

### Where can I download the WhatsApp rate cards as data?

Our WhatsApp rate card dataset has Meta's USD list rates for the July and October 2026 cards, by market and category, as CSV and JSON under a CC BY 4.0 licence. Each new quarterly card is added when Meta publishes it.
