# Bulk WhatsApp number check for Mexican customer lists (+52)

> Check a Mexican customer list for WhatsApp: drop the old +52 1, set the country, dedupe, plan for the 2026 line registry, and follow the new 2025 LFPDPPP.

Canonical: https://mobilevalidate.com/blog/bulk-whatsapp-number-check-mexico · Last updated: 2026-11-07

![A +52 pill next to a struck-out 1 and struck 044, 045 and 01 prefixes leads to a check with a yes badge, beside a world map with arcs from Mexico to wrong countries, ten last-digit tiles 0-9 and an LFPDPPP sheet.](https://mobilevalidate.com/images/blog/bulk-whatsapp-number-check-mexico.svg)

*Drop the old 1, set the country to Mexico, and re-check as lines go through the 2026 registry.*


By MobileValidate team (https://mobilevalidate.com/about) · Published: 2026-11-07 · Category: Guides · Tags: WhatsApp, Mexico, Bulk jobs, List hygiene, E.164, Compliance

To check a list of Mexican numbers for WhatsApp, convert every row to E.164 (`+52` followed by 10 digits), strip the old mobile `1` and the `044`, `045` and `01` prefixes, 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. In 2026, also expect numbers that were suspended under the new mobile line registry. Check only numbers your customers gave you, under the 2025 Federal Law on the Protection of Personal Data Held by Private Parties (LFPDPPP), and never use the answers to find new people to message.

This guide covers what is specific to Mexico. The general flow is in our [bulk WhatsApp number check guide](/blog/bulk-whatsapp-number-check), and checking a single number is covered in [how to check if a number is on WhatsApp without saving it](/blog/check-if-a-number-is-on-whatsapp-without-saving). Facts are as of 7 November 2026, and every price carries its date. This is general guidance, not legal advice.

## How do you format Mexican numbers for a WhatsApp check?

Use `+52` followed by the 10-digit number. Since 3 August 2019 every Mexican number, mobile or landline, has 10 digits and is dialled the same way everywhere in the country, with no trunk prefix ([IFT, 2019](https://web.archive.org/web/20190804060133/https://www.ift.org.mx/comunicacion-y-medios/comunicados-ift/es/partir-del-3-de-agosto-mexico-tendra-una-nueva-forma-de-marcacion-telefonica-comunicado-342019-16-de)). Old CRM records still hold the forms that reform abolished:

| Cell in your file | What happened | Fix |
|---|---|---|
| `55 XXXX XXXX` | National format, 10 digits | Add `+52` |
| `+52 55 XXXX XXXX` | International, with spaces | Remove the spaces |
| `52 55 XXXX XXXX` | International without the plus | Add `+` |
| `+52 1 55 XXXX XXXX` | The mobile `1` used from abroad until 2019 | Remove the `1` |
| `044 55 XXXX XXXX`, `045 …`, `01 …` | Domestic prefixes used until 2019 | Remove the prefix, add `+52` |
| `0052 55 XXXX XXXX` | Dialled from abroad with `00` | Replace `0052` with `+52` |

Two traps cost real customers.

**The old `1` makes a number invalid.** libphonenumber removed the mobile token in v8.10.17 (15 August 2019); its release notes say the domestic tokens and the international mobile token "are abolished now" ([release notes](https://github.com/google/libphonenumber/blob/master/release_notes.txt)). We checked on 2026-11-07 with libphonenumber-js 1.13.13: of 113,812 valid Mexican numbers generated across the numbering plan, none was valid with a `1` after `+52`. A row in that form is dropped as invalid. It isn't billed, but that customer isn't checked either.

**A 10-digit row without a country can become another country.** Without a default country, the API reads a row of 8 to 15 digits without `+` as an international number. A Mexican number in national form then starts with what looks like a foreign country code. In the same test, **12.5% of the 113,812 numbers (14,264) became a valid number in another country** when read that way, from Germany (`+49`) and Denmark (`+45`) to Thailand (`+66`). They wouldn't fail; they would be checked as somebody else's number. The rule: **set the country to Mexico (`default_country: "MX"`), or convert every row to `+52…` yourself.** With Mexico as the default country, the same numbers in national, `52…` and `0052…` spellings all came back correct in our test.

This converter does both jobs and returns `null` for anything that isn't a Mexican number that can be a mobile:

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

/** One Mexican list cell → E.164 (+52 + 10 digits) that can be a mobile, or null. */
export function toE164Mx(raw) {
  let s = String(raw).trim().replace(/[\s().-]/g, "").replace(/^00/, "+");
  s = s.replace(/^\+?521(\d{10})$/, "+52$1")       // old mobile "1" after 52 (abolished 2019)
       .replace(/^(?:044|045|01)(\d{10})$/, "$1");  // old domestic prefixes (abolished 2019)
  const p = parsePhoneNumberFromString(s, "MX");
  const t = p?.getType();
  return p?.isValid() && p.country === "MX" && (t === "MOBILE" || t === "FIXED_LINE_OR_MOBILE") ? 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. Digits are masked with X:

| Input | Output |
|---|---|
| `22X XXX XXXX` | `+5222XXXXXXXX` |
| `+52 22X XXX XXXX` | `+5222XXXXXXXX` |
| `5222XXXXXXXX` | `+5222XXXXXXXX` |
| `+52 1 22X XXX XXXX` | `+5222XXXXXXXX` |
| `52122XXXXXXXX` | `+5222XXXXXXXX` |
| `044 22X XXX XXXX`, `045 …`, `01 …` | `+5222XXXXXXXX` |
| `0052 22X XXX XXXX` | `+5222XXXXXXXX` |
| `20X XXX XXXX` (a landline-only range) | `null` |
| `50X XXX XXXX` (a personal-number range) | `null` |
| `+1 415 XXX XXXX` (a US number) | `null` (dropped: not Mexican) |

All the `+5222…` rows are the same customer, so they collapse into one number before the check. Since no Mexican area code starts with `1`, a 13-digit `521…` value can only be the old token, which is why the rewrite is safe.

## Why does WhatsApp's help page still mention the 1 after +52?

Because it was written for the old dialling plan and hasn't changed. WhatsApp's article on international number format, which we read on 2026-11-07, still says: "Phone numbers in Mexico (country code "52") need to have "1" after "+52", even if they're Nextel numbers" ([WhatsApp Help Center](https://faq.whatsapp.com/1294841057948784)).

The advice is about saving a contact in your phone's address book so the app can find it. It isn't a numbering rule, and it doesn't make `+52 1` a valid number: Mexico's own plan and every current validation library say the opposite. For a business list, use the official form everywhere:

- **Store** `+52` plus 10 digits in your CRM. Never add the `1` to stored records, or your exports stop matching your SMS and voice systems.
- **Check** the same form. You don't need to add the `1` for our check: send `+52` and 10 digits, and the answer comes back under the number you sent.
- **Clean** old records once. Run the converter above over the whole table, not only over new sign-ups.

## Can you tell a mobile from a landline in Mexico?

Not from the number. Mobiles and landlines in the same city share the same area code, so libphonenumber returns `FIXED_LINE_OR_MOBILE` for most Mexican numbers, including its own mobile example. That is why the converter accepts both types. For a WhatsApp list it means a `registered: false` answer can simply be a landline someone gave you as a contact number. If you need to know, a [carrier lookup](/services/carrier-lookup) returns the line type where network data exists, and its service page gives 3 free lookups a day without sign-up. A live network status ([HLR](/services/hlr-lookup)) check tells you whether a mobile is reachable.

## How do you check a list of Mexican 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`). Leave out bought lists, scraped numbers and number ranges.
2. **Convert and dedupe.** Run every cell through a converter like the one above. Keep the rows that return `null` aside for a manual fix.
3. **Estimate.** Upload the file in the [dashboard](https://app.mobilevalidate.com/jobs) (**Bulk jobs › Upload a list**) and pick Mexico when it asks for the country of numbers written without `+`, or send the numbers to `POST /v1/jobs/estimate` with `"default_country": "MX"`. 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. 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`); join it back to your own IDs by row number. 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. The bulk price needs **at least 132 numbers from the same country in one job**; smaller country groups in a mixed file are checked the real-time way at the real-time price, and the estimate shows them on a `small_batch` line before you pay. Details are in the [bulk jobs docs](/docs/bulk-jobs).

### What does it cost?

From our public catalog ([`GET /v1/services`](https://api.mobilevalidate.com/v1/services)), fetched on 2026-11-07:

| Check | Bulk job, per 1,000 | Real time, per 1,000 |
|---|---:|---:|
| WhatsApp registration (`whatsapp`) | US$0.25 | US$4.00 |
| WhatsApp Business account (`whatsapp.business`) | US$0.30 | US$4.00 |
| Live network status, HLR (`number.hlr`) | US$5.00 | US$6.00 |
| Carrier lookup, beta (`carrier`) | US$1.50 | US$3.00 |

Only conclusive answers are billed. Unknown, invalid, duplicate and unsupported rows are free, and so are repeats served from your account's cache. The [pricing page](/pricing) always has the current prices.

A worked example with made-up figures: a 40,000-row CRM export converts to 36,000 unique valid Mexican numbers, 2,500 of which had the old `+52 1`. The WhatsApp job costs at most 36,000 × US$0.00025 = **US$9.00**. Without the conversion, those 2,500 rows would have been dropped as invalid, and any national-format rows uploaded without a country could have been checked as foreign numbers.

## How does Mexico's 2026 line registry affect a WhatsApp check?

It makes old answers age faster. Article 103 of the telecom law of 16 July 2025 lets mobile operators activate and keep active only lines linked to an identified user, with an official ID and CURP for people or the RFC for companies ([LMTR](https://web.archive.org/web/20260817201706/https://www.diputados.gob.mx/LeyesBiblio/pdf/LMTR.pdf)). The regulator, the Comisión Reguladora de Telecomunicaciones (CRT), set deadlines by the number's last digit, from 15 August to 31 December 2026, with lines not linked suspended after their deadline ([CRT, Bol. 021/2026](https://www.gob.mx/crt/prensa/crt-anuncia-calendario-y-fechas-limite-para-registro-de-lineas)).

Its latest bulletin, of 5 November 2026, gives the state of play as of 4 November ([CRT, Bol. 052/2026](https://www.gob.mx/crt/prensa/mas-de-9-4-millones-de-lineas-con-terminacion-5-ya-estan-vinculadas)):

| Item | Value |
|---|---|
| Lines linked nationwide | 100,295,922 (83.6% of those expected) |
| Lines ending in 5 (deadline 31 October) | 9,421,077 linked, 83.2% of about 11.3 million |
| Remaining deadlines | 6 on 15 November, 7 on 30 November, 8 on 15 December, 9 on 31 December 2026 |
| Unused lines to be purged | about 25 million nationwide, 2.5 million of them ending in 5 |
| Suspended lines | keep their number and can still call emergency and citizen-service numbers; service returns once linked |

Mexico has more lines than people: DataReportal's Digital 2026 report counts 145 million cellular mobile connections, 110% of the population, on data available in October 2025 ([DataReportal](https://datareportal.com/reports/digital-2026-mexico)). The purge of unused lines will return many of them to the pool, which is where [number recycling](/blog/number-recycling-and-list-decay) starts.

What that means for your list:

- **Registered isn't reachable.** A WhatsApp check tells you whether an account exists for the number. It doesn't tell you the line is active today. For numbers whose deadline has passed, add an HLR check before an important message.
- **Re-check after the deadlines.** An answer from before 31 December 2026 can be wrong in January 2027. Re-check opted-in customers in early 2027, oldest answers first.
- **A failed code isn't fraud.** An OTP that fails to a Mexican number this year may be a suspended line, not a fake one. Give users a way to retry.

## Is WhatsApp cheaper than SMS for OTP in Mexico?

Mexico has some of the lowest WhatsApp list rates. From Meta's rate card effective 1 October 2026, in [our dataset](/datasets/whatsapp-rate-card-history):

| WhatsApp category, Mexico | USD per delivered message | Change since the 1 July 2026 card |
|---|---:|---|
| Authentication | 0.0085 | none |
| Utility | 0.0085 | none |
| Marketing | 0.0397 | up from 0.0305 |

Three Mexican specifics:

- **No cross-border surcharge.** Mexico isn't on Meta's list of markets with an authentication-international rate, as read on 2026-11-07 ([Meta](https://developers.facebook.com/documentation/business-messaging/whatsapp/pricing/authentication-international-rates)). A business in the US or Spain sending codes to `+52` users pays the same US$0.0085 as a Mexican one.
- **Marketing went up 30%.** Meta lowered Mexico's marketing rate on 1 October 2025 and raised it on 1 October 2026 ([Meta pricing](https://developers.facebook.com/docs/whatsapp/pricing)). Recalculate campaign budgets made before October.
- **Peso billing.** Meta bills in Mexican pesos (MXN) since 1 January 2026, if you choose it.

Meta charges only for delivered messages, so a code sent to a number without WhatsApp costs nothing but time. We don't quote SMS prices here: they vary by route and contract, so compare with your own invoice. Our [WhatsApp OTP vs SMS OTP cost guide](/blog/whatsapp-otp-vs-sms-otp-cost) has the formula for cost per verified user.

## What does Mexico's 2025 data protection law require?

Mexico replaced its 2010 private-sector data protection law in 2025. The new LFPDPPP was published in the federal gazette (DOF) on 20 March 2025 and took effect the next day, under the first transitional article of the decree ([DOF, 2025](https://dof.gob.mx/nota_detalle.php?codigo=5752569&fecha=20/03/2025)). The former regulator INAI was dissolved, and its powers over private-sector data passed to the Secretaría Anticorrupción y Buen Gobierno, which the law calls "the Secretaría" ([EY, 2025](https://www.ey.com/content/dam/ey-unified-site/ey-com/es-mx/technical/tax/documents/ey-law-flash-nueva-lfpdppp.pdf)). We read the law as published in the DOF on 2026-11-07. The points that touch a number check:

- **Consent is the rule, and tacit consent usually counts.** Article 7 subjects all processing to the person's consent. Consent is tacit when you made your privacy notice available and the person didn't object, and tacit consent is valid unless a law requires express consent. Financial data needs express consent, and sensitive data express written consent (article 8). Consent can be withdrawn at any time.
- **There are exceptions.** Article 9 lists cases where no consent is needed, including data needed to exercise a right or meet an obligation arising from a legal relationship between you and the customer.
- **The privacy notice sets the limit.** It must name you, the data, the purposes, how people can limit use and how to exercise their rights (article 15). Processing is limited to the purposes in the notice, and a different purpose needs new consent (article 11). The 2025 text dropped the old allowance for "compatible or analogous" purposes. If a channel check isn't in your notice, add it before you run one.
- **A processor isn't a transfer.** The law defines a transfer as a communication of data to someone other than the person, the controller or the processor (*persona encargada*) acting on the controller's behalf (article 2). A checking service you instruct is a processor; selling or sharing lists with third parties is a transfer, with its own notice and consent rules (articles 35 and 36).
- **People can object.** Article 26 gives a right to object where continued processing would harm the person, or to automated decisions with significant effects.
- **The fines are large.** Most breaches of the principles carry fines of 100 to 160,000 times the UMA (Mexico's reference unit), and collecting data by deceit or without required express consent 200 to 320,000 times, with more for repeat breaches and up to double for sensitive data (articles 58 and 59). Processing data by deceit for undue gain is a crime punishable by six months to five years in prison (article 63). Bought or scraped lists sit close to those lines.

Marketing has its own register. The REPEP, run by the consumer agency PROFECO, lets people block marketing calls and texts to their numbers. A business that sends marketing to a registered number without the person's consent can be reported and fined ([PROFECO](https://web.archive.org/web/20260111130748/https://repep.profeco.gob.mx/infogeneral.jsp)). A one-time code the user asked for isn't marketing.

WhatsApp's own rules sit on top. Its Business Messaging Policy says you may contact people only if they gave you their number and opted in to receive messages from you ([WhatsApp](https://whatsappbusiness.com/policy/)), and Meta's opt-in guide requires the opt-in to name your business ([Meta for Developers](https://developers.facebook.com/documentation/business-messaging/whatsapp/getting-opt-in)). A `registered: true` answer is a fact about the number, not permission to message it. Our [consent and law guide](/blog/whatsapp-number-checks-consent-and-law) covers other regions.

On our side, requests with long runs of consecutive numbers are refused as suspected enumeration, each account has a daily cap, and our [acceptable use policy](/legal/acceptable-use) forbids unsolicited bulk messaging and range checks. Anyone can object through the [opt-out form](/opt-out).

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

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

| Answer | What it means | What to do |
|---|---|---|
| `registered: true`, customer opted in | Account exists | Send what they asked for on WhatsApp; check REPEP before any SMS marketing fallback |
| `registered: true`, no opt-in | Account exists | Nothing changes; ask for opt-in at the next contact they expect |
| `registered: false` | No account on this number, or a landline | Use SMS, voice or e-mail; a carrier lookup tells you if it's a landline |
| Unknown | No conclusive answer | Keep the current channel, re-check later; free |
| `null` from your converter | Not a valid Mexican number | Fix the record by hand, or ask the customer |

Here is the follow-up check from code: WhatsApp registration plus live network status in one real-time call. It uses the public sandbox key `mv_test_publicSandboxn9ZgneuhR1B9CRfKG3fulym` and our [test values](/docs/test-mode), which are UK drama-range numbers because the sandbox accepts only those; with a live key, pass the output of `toE164Mx()`. We ran it on 2026-11-07 with Node 24.

```js title="mx-registry-check.mjs"
const API = "https://api.mobilevalidate.com/v1/lookup";
const KEY = process.env.MOBILEVALIDATE_API_KEY;

/** WhatsApp registration plus live network status, for numbers your customers gave you. */
async function whatsappAndLine(numbers) {
  const res = await fetch(API, {
    method: "POST",
    headers: { Authorization: `Bearer ${KEY}`, "Content-Type": "application/json" },
    body: JSON.stringify({ numbers, checks: ["whatsapp", "hlr"], wait: 5 }),
  });
  if (!res.ok) throw new Error(`lookup failed: ${res.status}`);
  return (await res.json()).results.map(({ e164, checks }) => {
    const wa = checks["whatsapp.registered"], hlr = checks["number.hlr"];
    return {
      e164,
      whatsapp: wa.status === "completed" ? wa.registered : null, // null = unknown, free
      line: hlr.status === "completed" ? hlr.attributes.status : null, // reachable, unreachable, invalid
      billed: wa.billed || hlr.billed,
    };
  });
}

console.table(await whatsappAndLine(["+447700900001", "+447700900002", "+447700900003", "+447700900006"]));
```

| `e164` | `whatsapp` | `line` | `billed` |
|---|---|---|---|
| `+447700900001` | `true` | `reachable` | `false` |
| `+447700900002` | `false` | `unreachable` | `false` |
| `+447700900003` | `null` | `null` | `false` |
| `+447700900006` | `true` | `reachable` | `false` |

The third test value stands for a timeout: both checks answer unknown, which the script keeps as `null`, never `false`. Test mode never bills; in live mode, unknown answers aren't billed either. Treat unknown as missing data, and don't overwrite a stored conclusive answer with an unknown one. Our [list cleaning guide](/blog/how-to-clean-a-phone-number-list-in-bulk) shows how to combine the checks.

## How do you start with MobileValidate?

The checks for this guide are [WhatsApp number check](/services/whatsapp-number-check), [WhatsApp Business check](/services/whatsapp-business-check), [live network status (HLR)](/services/hlr-lookup) and [carrier lookup](/services/carrier-lookup). All take Mexican numbers in real time and in bulk jobs. You don't need a WhatsApp account, a phone or a QR pairing.

- **Free, today.** [Get a free test key](/get-test-key) to build against fixed test answers, and run 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](/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. WhatsApp is named descriptively; MobileValidate is not affiliated with WhatsApp, Meta or any Mexican authority or operator.

## What are the key takeaways?

- Send `+52` plus 10 digits. Strip the old `1`, `044`, `045` and `01`: in our test, no number was valid with the `1`.
- Set the country to Mexico or convert first. Read as international, 12.5% of valid Mexican numbers in our test became another country's number.
- WhatsApp's help page still mentions the `1`; that is address-book advice from the old plan, not a format for your data.
- Bulk WhatsApp checks cost US$0.25 per 1,000 (catalog, 2026-11-07), with at least 132 numbers per country group in one job. A WhatsApp authentication message to Mexico lists at US$0.0085, with no cross-border rate.
- Under the 2026 line registry, lines are suspended by last digit until 31 December 2026 and about 25 million unused lines will be purged. Re-check in 2027, and pair WhatsApp with HLR.
- The 2025 LFPDPPP keeps consent (often tacit) as the rule and ties every check to your privacy notice. Check your own customers' numbers, never bought or scraped lists.

## Sources

1. [Decreto por el que se expiden la Ley General de Transparencia y Acceso a la Información Pública; la Ley General de Protección de Datos Personales en Posesión de Sujetos Obligados; la Ley Federal de Protección de Datos Personales en Posesión de los Particulares (DOF, 20 March 2025)](https://dof.gob.mx/nota_detalle.php?codigo=5752569&fecha=20/03/2025) — Diario Oficial de la Federación (DOF), 2025
2. [Entrada en vigor de la nueva Ley Federal de Protección de Datos Personales en Posesión de los Particulares (Law Flash, 26 March 2025)](https://www.ey.com/content/dam/ey-unified-site/ey-com/es-mx/technical/tax/documents/ey-law-flash-nueva-lfpdppp.pdf) — EY México, 2025
3. [About international phone number format](https://faq.whatsapp.com/1294841057948784) — WhatsApp Help Center, 2026
4. [A partir del 3 de agosto, México tendrá una nueva forma de marcación telefónica (Comunicado 34/2019)](https://web.archive.org/web/20190804060133/https://www.ift.org.mx/comunicacion-y-medios/comunicados-ift/es/partir-del-3-de-agosto-mexico-tendra-una-nueva-forma-de-marcacion-telefonica-comunicado-342019-16-de) — Instituto Federal de Telecomunicaciones (IFT), read through the Internet Archive, 2019
5. [libphonenumber release notes (v8.10.17, 15 August 2019)](https://github.com/google/libphonenumber/blob/master/release_notes.txt) — libphonenumber project, 2026
6. [Ley en Materia de Telecomunicaciones y Radiodifusión (DOF 16 July 2025), article 103 and transitional articles](https://web.archive.org/web/20260817201706/https://www.diputados.gob.mx/LeyesBiblio/pdf/LMTR.pdf) — Cámara de Diputados (official consolidated text), read through the Internet Archive, 2025
7. [CRT anuncia calendario y fechas límite para registro de líneas (Bol. 021/2026, 25 June 2026)](https://www.gob.mx/crt/prensa/crt-anuncia-calendario-y-fechas-limite-para-registro-de-lineas) — Comisión Reguladora de Telecomunicaciones (CRT), 2026
8. [Más de 9.4 millones de líneas con terminación 5 ya están vinculadas (Bol. 052/2026, 5 November 2026)](https://www.gob.mx/crt/prensa/mas-de-9-4-millones-de-lineas-con-terminacion-5-ya-estan-vinculadas) — Comisión Reguladora de Telecomunicaciones (CRT), 2026
9. [Registro Público para Evitar Publicidad (REPEP): información general](https://web.archive.org/web/20260111130748/https://repep.profeco.gob.mx/infogeneral.jsp) — Procuraduría Federal del Consumidor (PROFECO), read through the Internet Archive, 2026
10. [WhatsApp Business Messaging Policy](https://whatsappbusiness.com/policy/) — WhatsApp, 2026
11. [Get opt-in for WhatsApp](https://developers.facebook.com/documentation/business-messaging/whatsapp/getting-opt-in) — Meta for Developers, 2026
12. [Pricing on the WhatsApp Business Platform](https://developers.facebook.com/docs/whatsapp/pricing) — Meta for Developers, 2026
13. [Authentication-international rates](https://developers.facebook.com/documentation/business-messaging/whatsapp/pricing/authentication-international-rates) — Meta for Developers, 2026
14. [Digital 2026: Mexico](https://datareportal.com/reports/digital-2026-mexico) — DataReportal (Kepios), 2025

## Frequently asked questions

### Do I need to add a 1 after +52 for a WhatsApp check?

No. Send +52 followed by the 10-digit number. Mexico abolished the mobile 1 on 3 August 2019, and current numbering libraries reject +52 1 plus 10 digits as invalid, so a row in that form would be dropped as invalid. Strip the 1 before you upload.

### Why does WhatsApp's help page still say Mexican numbers need a 1?

Its article on international number format, read on 2026-11-07, still says Mexican numbers need a 1 after +52. That advice is about saving contacts in your phone and dates from the old dialling plan. For a check, an export or a CRM, use the official 10-digit form, +52 plus 10 digits.

### What happens if I upload Mexican numbers without +52 and without a country?

They can turn into numbers of other countries. A row of 8 to 15 digits without a plus is read as international. In our test, 12.5% of 113,812 valid Mexican numbers became a valid number in another country that way. Set the country to Mexico or convert every row to +52 first.

### How much does a bulk WhatsApp check of Mexican 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.

### How does Mexico's 2026 line registry affect a WhatsApp check?

Mobile lines not linked to their holder's ID by the deadline for their last digit are suspended, and the regulator plans to purge about 25 million unused lines. A registration check says whether a WhatsApp account exists for a number, not whether the line is active, so pair it with a live network status (HLR) check for old numbers.

### Does Mexico's data protection law allow checking customers' numbers?

The 2025 LFPDPPP makes consent the rule, with tacit consent valid in most cases once you have given a privacy notice, and exceptions such as data needed for a legal relationship with the customer. A new purpose needs new consent. Check only customers who gave you their number, and ask Mexican counsel.

### Is WhatsApp cheaper than SMS for OTP in Mexico?

Compare your own SMS invoice with Meta's list rate. On the rate card effective 1 October 2026, a WhatsApp authentication message to Mexico costs US$0.0085 per delivered message. Mexico has no authentication-international rate, so senders based abroad pay the same list rate.
