Guides

Bulk WhatsApp number check for Indian customer lists (+91)

Check an Indian list for WhatsApp: turn 0, 91, 091 and Hindi-digit cells into +91, keep 6–9 mobiles, get a free estimate, and follow DPDP Act and TRAI rules.

By Published 16 min readHow we research and fact-check

On this page

To check a list of Indian numbers for WhatsApp, convert every row to E.164 (+91 and 10 digits), keep only mobiles that start with 6, 7, 8 or 9, remove duplicates, upload the file as a bulk job with the whatsapp check, read the free estimate, and download one answer per number: registered, not registered or unknown. The length is the easy part, because every Indian mobile has 10 digits. The traps are the spellings: 091 prefixes, a leading 91 that is part of the number, and digits typed in Devanagari or another Indian script. Check only numbers your customers gave you, for a purpose you told them about: that is the rule India's Digital Personal Data Protection Act builds on.

This guide covers what is specific to India. The general flow is in our bulk WhatsApp number check guide, and the numbering plan, prefix tables and porting rules are in our India phone number format guide. Facts are as of 8 November 2026, and every price below carries its date. This is general guidance, not legal advice.

How do you format Indian numbers for a WhatsApp check?

Use the international form: +91, then the 10-digit number with no leading 0. An Indian CRM or lead export usually holds the same mobile written several ways:

Cell in your fileWhat happenedFix
98XXX XXXXXThe 10-digit number as people say itAdd +91
098XXX XXXXXWritten with the trunk 0Drop the 0, add +91
+91 98XXX XXXXXInternational, with spaces or dashesRemove the spaces
9198XXXXXXXXInternational without the plus (the wa.me link style), 12 digitsAdd +
0091 98XXX XXXXXDialled from abroad with 00Replace 0091 with +91
091 98XXX XXXXX0 + country code, an old habit from STD dialling, 13 digitsReplace 091 with +91 (the library won't)
+91 (0)98XXX XXXXXInternational with the trunk 0 kept in bracketsDrop the (0)
९८XXX XXXXXTyped in Devanagari (or Bengali, Tamil, Gujarati…) digitsConvert the digits to 0–9 first
9.19E+11A spreadsheet stored a 12-digit number as a valueCan't be fixed: re-export the column as text

Two of these rows are specific to India.

The 091 row. A number written 091 and then 10 digits mixes the trunk 0 with the country code. With the default region IN, libphonenumber-js reads the 0 as the trunk prefix and the rest as a 12-digit national number, so it returns an invalid number. Rewrite 091 to +91 before parsing.

The leading 91 that isn't a country code. The 91 block is a fully mobile block, so 91XXX XXXXX is a complete 10-digit Indian mobile. A cleanup script that strips any leading 91 turns it into eight digits. Strip 91 only from 12-digit cells, or let the library decide: in our test it read 91… with 10 digits as a national number and 91… with 12 digits as country code plus number, both correctly.

Our free phone list cleaner converts and dedupes a file of up to 50,000 rows in your browser; pick India as the default country. It handles the 0, 91, 0091 and +91 spellings, but it marks 091 cells and Indian-script digits invalid, so fix those first. For your own pipeline, this converter handles all of them and returns null for anything that isn't a valid Indian mobile:

JavaScript
import { parsePhoneNumberFromString } from "libphonenumber-js/max";

// Zero of each Indian digit script: Devanagari, Bengali, Gurmukhi, Gujarati, Odia, Tamil, Telugu, Kannada, Malayalam.
const ZEROS = [0x0966, 0x09e6, 0x0a66, 0x0ae6, 0x0b66, 0x0be6, 0x0c66, 0x0ce6, 0x0d66];
const toAscii = (s) => s.replace(/\p{Nd}/gu, (d) => {
  const c = d.codePointAt(0), z = ZEROS.find((z) => c >= z && c <= z + 9);
  return z === undefined ? d : String(c - z);
});

/** One Indian list cell → E.164 mobile (+91 and 10 digits starting 6–9), or null. */
export function toE164In(raw) {
  let s = toAscii(String(raw).trim());
  if (/^\d(\.\d+)?E\+\d+$/i.test(s)) return null;                 // 9.19E+11: the spreadsheet already lost digits
  const digits = s.replace(/\D/g, "");
  if (/^091\d{10}$/.test(digits) && !s.startsWith("+")) s = "+" + digits.slice(1); // "091 98…": 0 + country code
  const p = parsePhoneNumberFromString(s, "IN");
  return p?.isValid() && p.country === "IN" && ["MOBILE", "FIXED_LINE_OR_MOBILE"].includes(p.getType())
    && /^\+91[6-9]/.test(p.number) ? p.number : null;
}

We ran it on 2026-11-07 with Node 24 and libphonenumber-js 1.13.13, on libphonenumber's own example number for India. Digits are masked with X here:

InputOutput
081XXX XXXXX+9181XXXXXXXX
+91 81XXX XXXXX+9181XXXXXXXX
9181XXXXXXXX (12 digits)+9181XXXXXXXX
0091 81XXX XXXXX+9181XXXXXXXX
091 81XXX XXXXX+9181XXXXXXXX (null without the 091 rewrite)
+91 (0)81XXX XXXXX+9181XXXXXXXX
८१XXX XXXXX (Devanagari digits)+9181XXXXXXXX (null without toAscii)
৮১XXX XXXXX (Bengali digits)+9181XXXXXXXX
௮௧XXX XXXXX (Tamil digits)+9181XXXXXXXX
91XXX XXXXX (10 digits, the 91 block)+9191XXXXXXXX
9.18123E+11null
1600 XXX XXX (a service call number)null
080 2XXX XXXX (a Bengaluru landline)null
+91 81XXX XXXX (one digit short)null
+880 18XXXXXXXX (a Bangladeshi mobile)null

The first nine rows are the same customer, so after conversion they collapse into one number, which keeps the duplicate count honest. The type check keeps FIXED_LINE_OR_MOBILE on purpose: in blocks that India shares between landline area codes and mobiles, the metadata can't tell the two apart, and dropping those rows would lose real mobiles. Rows from other countries return null here; put them in their own file or keep their + form.

A +91 pill followed by ten digit slots, the first two marked 9 and 1, fed by a 0 chip, a struck-out 091 chip and a chip of other-script digits, with a donut, a three-step cost staircase and a DPDP timeline below.A +91 pill followed by ten digit slots, the first two marked 9 and 1, fed by a 0 chip, a struck-out 091 chip and a chip of other-script digits, with a donut, a three-step cost staircase and a DPDP timeline below.
Indian numbers: +91 and ten digits, a leading 91 may belong to the number, and DPDP duties land in 2027.

Which Indian numbers should you drop before the check?

Every Indian number has 10 digits after +91, landlines included, so a length check alone lets landlines through. Drop these before you upload:

RowWhy it can't be a WhatsApp customer numberHow to spot it
LandlinesFixed lines share the 10-digit length and some 6, 7 and 8 blocksLibrary type FIXED_LINE
140 numbersPromotional call series used by businesses, not by peopleStarts with 140
1600 and 1601 numbersService and transactional call series for banks, government and other sectorsStarts with 1600 or 1601
Machine-to-machine SIMsThe dedicated M2M series has 13 digitsToo long for a person's mobile
Unused blocksRight length, no allocation (for example 010)Library says invalid

The ^[6-9]\d{9}$ regex most tutorials give lets some landlines through and doesn't know which blocks are unused. Our India format guide has the block-by-block table, and our free phone number validator shows the type of up to 500 numbers at once.

Don't read anything else into the prefix. Indian numbers have been portable between operators since 20 January 2011, and 16.77 million subscribers asked to port in September 2026 alone (TRAI PR 140/2026). The first digits don't name today's operator or circle. For a WhatsApp check that doesn't matter; for routing SMS it does, which is what an MNP lookup is for.

How do you check a list of Indian numbers on WhatsApp?

Five steps, from export to answers:

  1. Export only customers who gave you their number, with your own ID column (for example crm_id,phone). Format the phone column as text. Leave out bought lists, scraped numbers and number ranges.
  2. Convert and dedupe. Run every cell through a converter like the one above, or the free list cleaner. Keep the rows that return null aside for a manual fix; don't guess missing digits.
  3. Estimate. Upload the file in the dashboard (Bulk jobs › Upload a list), or send the numbers to POST /v1/jobs/estimate. The estimate is free, checks nothing and stores nothing.
  4. Run with a cost cap. Start the job with max_cost set to the estimate, so it can never cost more. Choose whatsapp, or whatsapp.business if you also need to know whether the account is a WhatsApp Business account.
  5. Download and join back. The result file keeps your row order (row_no). Store each answer with its checked_at date.

A job holds up to 50,000 numbers, and a dashboard file can be up to 10 MB. Indian exports are often bigger, so split them into several jobs; each job is estimated and capped on its own.

What does the estimate do with 0, 00 and + spellings?

Here is a real estimate made with the public sandbox key on 2026-11-07. The sandbox accepts only our test values, which are UK drama-range numbers, so this shows the behaviour, not Indian data. The first number is sent three ways: in E.164, in national format with the trunk 0, and with the 00 international prefix:

Shell
curl https://api.mobilevalidate.com/v1/jobs/estimate \
  -H "Authorization: Bearer mv_test_publicSandboxn9ZgneuhR1B9CRfKG3fulym" \
  -H "Content-Type: application/json" \
  -d '{"numbers": ["+447700900001", "07700 900001", "0044 7700 900001", "+447700900002", "+447700900006"],
       "checks": ["whatsapp.business"], "default_country": "GB"}'

Response (abridged):

JSON
{
  "object": "estimate",
  "total": 5,
  "valid": 3,
  "invalid": 0,
  "duplicate": 2,
  "cached": 0,
  "checks": ["whatsapp.business"],
  "max_cost": { "amount": "0", "currency": "USD" },
  "breakdown": [
    { "check": "whatsapp.business", "price_mode": "batch", "reason": null, "checks": 0,
      "unit_price": { "amount": "0.0003", "currency": "USD" } },
    { "check": "whatsapp.business", "price_mode": "realtime", "reason": "small_batch", "checks": 3,
      "unit_price": { "amount": "0.004", "currency": "USD" },
      "countries": ["GB"], "batch_minimum": 132 }
  ]
}

duplicate: 2 is the two extra spellings of the first number. For your file, default_country is "IN", and a 098…, a 0091 98… and a +9198… cell become one check. Duplicates are never checked or billed. max_cost is 0 because test keys are never billed.

The small_batch line is the other thing to read. The bulk price needs at least 132 numbers from the same country in one job. These three numbers are below that minimum, so they would be checked the real-time way, at the real-time price. An Indian customer list clears it easily; the few +971 or +1 customers in the same export may not, and the estimate shows them on their own line before you spend anything. Details are in the bulk jobs docs.

What does it cost?

From our public catalog (GET /v1/services), fetched on 2026-11-07:

CheckBulk job, per 1,000Real time, per 1,000
WhatsApp registration (whatsapp)US$0.25US$4.00
WhatsApp Business account (whatsapp.business)US$0.30US$4.00
Number portability, MNP (number.mnp)US$2.00US$2.00
Live network status, HLR (number.hlr)US$5.00US$6.00

Only conclusive answers are billed. Unknown, invalid, duplicate and unsupported rows are free, and so are repeats served from your account's cache. Prices can change; the pricing page always has the current ones.

A worked example with made-up figures, to show the arithmetic: a 200,000-row lead export, split into four jobs, converts to 161,800 unique valid Indian mobiles; the rest are duplicates, landlines, 1600 numbers and cells lost to scientific notation. The WhatsApp jobs can cost at most 161,800 × US$0.00025 = US$40.45. If you then want the current network of the 48,000 numbers that came back not registered, to route SMS to them, an MNP job costs at most 48,000 × US$0.002 = US$96.00.

What share of Indian numbers are on WhatsApp?

We don't quote one, and you shouldn't plan with one: a national figure describes the country, not your list. What TRAI's own data does show is how many Indian mobile connections have no broadband at all. At the end of September 2026 India had 1,319.19 million wireless subscriptions and 1,058.79 million wireless broadband subscriptions, both counting machine-to-machine SIMs. On the day of peak network activity that month, 1,212.80 million wireless subscribers were active (TRAI PR 140/2026).

Two things follow for a WhatsApp check:

  • About 260 million subscriptions had no broadband. Some of them belong to people who aren't online at all, for example on a basic phone. A number like that can answer registered: false and still be alive and reachable by SMS. Don't read "not on WhatsApp" as "dead number"; that is a question for an HLR check.
  • About 106 million subscriptions weren't active on the peak day. The number in your CRM may be one its owner rarely uses. Inactive numbers are later disconnected and, after a quarantine, given to someone else, as our India format guide explains. Old lists drift, so re-check them before each campaign.

Is WhatsApp cheaper than SMS for OTP in India?

At list price, India is one of the cheapest WhatsApp markets for codes, unless you send from abroad. From our rate-card dataset, transcribed from Meta's USD rate cards:

WhatsApp category, India1 July 20261 October 2026
AuthenticationUS$0.0014US$0.0014
Authentication-internationalUS$0.0304US$0.0304
UtilityUS$0.0014US$0.0014
MarketingUS$0.0118US$0.0118
Service (after 1,000 free per number per month)freeUS$0.0014

Prices are per delivered message. Meta charges only for delivered messages, so a code sent to a number without WhatsApp costs nothing but time. Our free WhatsApp cost calculator applies the October 2026 card to your own monthly volumes.

Three India-specific points:

  • Sending from abroad. India has had an authentication-international rate since 1 July 2024. Meta charges it to eligible businesses based in another country than the recipient. A business becomes eligible once it sends more than 750,000 messages outside customer service windows in a moving 30-day period to users in markets with such a rate, and it gets 30 days' notice. Meta determines the business's country from public information, such as where it is listed and where its parent company is (Meta, 2026). For a large sender based in, say, Singapore, a code to a +91 user costs about 22 times the local rate.
  • Rupee billing. Solution providers and directly integrated businesses whose sold-to country is India must move every WhatsApp messaging account to INR billing by 31 December 2026. From 1 January 2027, Meta stops delivering messages from their non-INR accounts (Meta pricing, read on 2026-11-07). If your Indian entity still pays in USD, plan the switch before you plan a campaign.
  • 2026 changes. Meta raised India's marketing rate on 1 January 2026 and its authentication-international rate on 1 April 2026, both before the first card in our dataset. Between July and October 2026 the only change was the new service-message charge.

We don't quote SMS prices here. Indian SMS prices depend on route, DLT category and contract, and list prices say little about what you pay. Put the rate from your own invoice next to the table above; our WhatsApp OTP vs SMS OTP cost guide has the formula for cost per verified user. A pre-check fits in front of it: knowing which customers are on WhatsApp means you send the code to the channel that reaches them first.

What do the DPDP Act and Rules require before you check or message?

India's Digital Personal Data Protection Act, 2023 (DPDP Act) was enacted on 11 August 2023. The Digital Personal Data Protection Rules, 2025 were published in the Gazette on 13 November 2025 (G.S.R. 846(E)) and announced the next day (PIB, 2025). We read the Act and the Rules in MeitY's published texts on 2026-11-07.

When does each part apply?

The Rules commence in three steps (rule 1, DPDP Rules, 2025):

PartIn forceWhat it covers
Rules 1, 2 and 17 to 21On publication, 13 November 2025Definitions and the Data Protection Board
Rule 4One year after publication, November 2026Registration and duties of consent managers
Rules 3, 5 to 16, 22 and 23Eighteen months after publication, May 2027Notice, security, breach reporting, retention, children's data, rights and the rest of the duties

A separate notification of the same date (G.S.R. 843(E)) phases in the Act's own sections the same way: sections 3 to 17, which hold the grounds for processing, notice, consent and the duties of data fiduciaries, apply eighteen months after publication (Taxmann, 2025). So the core duties aren't enforceable yet as of November 2026. They will be before most lists you build today are out of date, so build the process now.

What the Act asks of a list check

A customer's mobile number is personal data, and checking it on a platform is processing. The Act allows processing only for a lawful purpose, either with consent or for one of the "certain legitimate uses" in section 7 (DPDP Act, 2023, section 4):

  • Consent must be "free, specific, informed, unconditional and unambiguous with a clear affirmative action", and limited to the data needed for the stated purpose (section 6(1)). Under the Rules, the notice that comes with a consent request must stand on its own and state the specific purpose in plain language (PIB backgrounder, 2025).
  • Voluntarily provided data. Section 7(a) allows processing "for the specified purpose for which the Data Principal has voluntarily provided her personal data", as long as she hasn't said she doesn't consent. A customer who gave you a number for order updates has given it for that purpose, not for marketing on a new channel.
  • Language. People must be able to read the notice in English or in any of the 22 languages of the Eighth Schedule to the Constitution (section 5(3)). Plan notices in the languages your customers use.
  • Withdrawal and requests. Consent can be withdrawn as easily as it was given, and data fiduciaries must answer requests to access, correct or erase data within 90 days at most (PIB, 2025).
  • Penalties. Up to ₹250 crore for failing to keep reasonable security safeguards, up to ₹200 crore each for breach-notification and children's-data failures, and up to ₹50 crore for other violations (PIB backgrounder, 2025).

TRAI's rules cover SMS, not WhatsApp

TRAI's Telecom Commercial Communications Customer Preference Regulations, 2018 (TCCCPR) govern commercial SMS and calls carried by Indian operators (TCCCPR, 2018): senders, headers and content templates are registered on the operators' DLT platforms, people set their do-not-disturb preferences by SMS or call to 1909, and consent is recorded as "explicit consent" verified with the recipient. The Third Amendment of 18 September 2026 adds that messages based on a customer's inquiry may be sent for only seven days, and only when the inquiry is made in writing or digitally and kept in verifiable form (TRAI PR 119/2026). Our guide to TRAI's 2026 anti-spam rules has the full amendment and a sender checklist.

WhatsApp messages don't pass through DLT or the 1909 register. That doesn't make WhatsApp a way around them: a customer who registered "fully blocked" on DND has told you what they want, and the DPDP Act applies to every channel.

WhatsApp's own opt-in rule

WhatsApp's Business Messaging Policy (last updated 23 September 2026) says you may only contact people on WhatsApp if they have given you their mobile number or username and you have received their opt-in permission to receive messages or calls from you (WhatsApp, 2026). A registered: true answer is a fact about the number, not permission to message it. Our consent and law guide covers other regions.

On our side, a request with long runs of consecutive numbers is refused as suspected enumeration, each account has a daily cap, and our acceptable use policy forbids unsolicited bulk messaging and checking ranges to find out who uses an app. Anyone can object through the opt-out form.

What do you do with numbers that are not on WhatsApp?

Route them to a channel that reaches them, and keep the answer:

AnswerWhat it meansWhat to do
registered: true, customer opted inAccount existsSend what they asked for on WhatsApp; keep SMS as the fallback
registered: true, no opt-inAccount existsNothing changes; ask for opt-in at the next contact they expect
registered: falseNo account on this numberSMS through a DLT-registered header and template, or a call
UnknownNo conclusive answerKeep the current channel, re-check later; free
null from your converterNot a valid Indian mobileFix the record by hand, or ask the customer

For the not-registered group, two network checks answer the next questions. An MNP lookup returns the current network code, which your SMS provider can use for routing, because the prefix doesn't show it. A live network status (HLR) check tells you whether the number is reachable at all. Treat unknown as missing data, never as a dead number, and don't overwrite a stored conclusive answer with an unknown one. Our list cleaning guide shows how to combine the checks.

How do you start with MobileValidate?

The checks for this guide are WhatsApp number check, WhatsApp Business check and number portability (MNP). All three take Indian numbers in real time and in bulk jobs. You don't need a WhatsApp account, a phone or a QR pairing.

  • Free tools, no sign-up. Clean and dedupe the export with the phone list cleaner, check a few numbers' type with the phone number validator, and price your messages with the WhatsApp cost calculator. All three run in your browser; the tools page lists the rest. To look up one number's network without an account, the free carrier lookup answers three numbers a day.
  • Free to build. Get a free test key to build against fixed test answers, and use the free estimate on any file before you pay.
  • Real checks 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 to open one.
  • 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%.

Results are kept for your account's retention setting, 30 days by default, and you can delete a job's results at any time. A check returns registration facts only, never a name, Aadhaar number or address. WhatsApp is named descriptively; MobileValidate is not affiliated with WhatsApp, Meta, TRAI or MeitY.

What are the key takeaways?

  • Convert every row to +91 and 10 digits before upload. 0…, 91… (12 digits), 0091…, +91 (0)… and 091… are the same customer; only 091 needs a rewrite before libphonenumber-js reads it.
  • Never strip a leading 91 from a 10-digit cell: the 91 block is mobile. Convert Devanagari, Bengali, Tamil and other Indian digits before parsing.
  • Keep 6–9 mobiles; drop landlines, 140, 1600 and 1601 numbers and 13-digit M2M SIMs.
  • Bulk WhatsApp checks cost US$0.25 per 1,000 (catalog, 2026-11-07), with a minimum of 132 numbers per country group in one job for the bulk price. Unknowns and duplicates are free.
  • WhatsApp authentication to India lists at US$0.0014; foreign senders above Meta's threshold pay US$0.0304. Indian-billed accounts must move to INR by 31 December 2026.
  • The DPDP Act's core duties apply from May 2027, and TRAI's DLT and 1909 rules govern SMS today. Check your own customers' numbers for the purpose they gave them, never bought or scraped lists.

Sources

  1. The Digital Personal Data Protection Act, 2023 (No. 22 of 2023, 11 August 2023) — Ministry of Electronics and Information Technology, Government of India, 2023
  2. Digital Personal Data Protection Rules, 2025 (G.S.R. 846(E), Gazette of India Extraordinary No. 760, 13 November 2025) — Ministry of Electronics and Information Technology, Government of India, 2025
  3. Government notifies DPDP Rules to empower citizens and protect privacy (14 November 2025) — Press Information Bureau, Government of India, 2025
  4. DPDP Rules, 2025 notified: a citizen-centric framework for privacy protection (backgrounder, 17 November 2025) — Press Information Bureau, Government of India, 2025
  5. Govt notifies commencement dates for DPDP Act, 2023 (G.S.R. 843(E), 13 November 2025) — Taxmann, 2025
  6. Telecom Commercial Communications Customer Preference Regulations, 2018 (19 July 2018) — Telecom Regulatory Authority of India, 2018
  7. Press release No. 119/2026: TRAI strengthens framework for curbing unsolicited commercial communications (18 September 2026) — Telecom Regulatory Authority of India, 2026
  8. Press release No. 140/2026: telecom subscription data as on 30 September 2026 (27 October 2026) — Telecom Regulatory Authority of India, 2026
  9. Pricing on the WhatsApp Business Platform — Meta for Developers, 2026
  10. Authentication-international rates — Meta for Developers, 2026
  11. WhatsApp Business Messaging Policy (last updated 23 September 2026) — WhatsApp, 2026

Frequently asked questions

How do I convert Indian numbers to +91 for a WhatsApp check?

Keep the 10-digit number and put +91 in front: 98XXX XXXXX and 098XXX XXXXX both become +9198XXXXXXXX. A cell that starts with 91 and has 12 digits only needs the plus, and 0091 becomes +91. A cell written 091 plus 10 digits needs one extra rewrite, because libphonenumber-js reads the 0 as a trunk prefix and rejects the number.

Can I just strip a leading 91 from Indian numbers?

No. The 91 block is a mobile block, so a 10-digit cell such as 91XXX XXXXX is already a complete Indian mobile. Stripping 91 from it leaves eight digits and a broken number. Remove 91 only from 12-digit cells, or let a numbering-plan library with the default region IN decide, which handled both cases correctly in our test on 2026-11-07.

Do numbers typed in Hindi or other Indian digits work?

Only after you convert them. In our test, libphonenumber-js 1.13.13 returned nothing for numbers typed in Devanagari, Bengali or Tamil digits. Mapping each script's digits 0 to 9 to ASCII first fixed all three. Indian forms and WhatsApp-collected leads often contain such cells.

How much does a bulk WhatsApp check of Indian numbers cost?

On 2026-11-07 our public catalog listed the WhatsApp registration check at US$0.25 per 1,000 numbers in bulk jobs and US$4.00 per 1,000 in real time. The bulk price needs at least 132 numbers from the same country in one job. Unknown, invalid and duplicate rows are never billed. Current prices are on the pricing page.

Does India's DPDP Act apply to checking customer numbers on WhatsApp?

A phone number linked to a person is personal data, so checking it is processing under the Digital Personal Data Protection Act, 2023. The DPDP Rules, 2025 were published on 13 November 2025, and the main duties on notice and consent come into force 18 months later, in May 2027. Check only numbers people gave you, for the purpose you told them.

Do TRAI's DND and DLT rules apply to WhatsApp messages?

TRAI's commercial communication regulations cover SMS and calls carried by Indian telecom operators: DLT registration of senders, headers and templates, the 1909 do-not-disturb preferences and the 7-day window for messages after an inquiry. WhatsApp messages don't pass through DLT, but WhatsApp's own policy requires opt-in, and the DPDP Act covers every channel.

Is WhatsApp cheaper than SMS for OTP in India?

Meta's authentication rate for India is US$0.0014 per delivered message on the rate cards of 1 July and 1 October 2026. A business based outside India that crosses Meta's volume threshold pays the authentication-international rate of US$0.0304 instead, about 22 times more. Compare both with the DLT-registered SMS rate on your own invoice.

What is the INR billing change for WhatsApp in India?

Meta requires solution providers and directly integrated businesses whose sold-to country is India to move all WhatsApp messaging accounts to rupee billing by 31 December 2026. From 1 January 2027, Meta stops delivering messages from their accounts that are not billed in INR.

All articles

Know before you send.

Create a free account: approved automatically, usually within 10–15 minutes.

Free to start: check 20 phone numbers and 10 e-mail addresses for real on your account, plus an unlimited test mode. You pay only for conclusive answers, from $20.