Guides

Bulk WhatsApp and Zalo number check for Vietnamese customer lists (+84)

Check a Vietnamese list for WhatsApp and Zalo: convert old 11-digit 01X numbers, turn 09X into +84 9X, get a free estimate and follow the 2026 data law.

By Published 17 min readHow we research and fact-check

On this page

To check a list of Vietnamese numbers for WhatsApp, convert old 11-digit numbers first, turn every row into E.164 (+84…), 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 Vietnam, add the zalo check to the same job: Zalo is the country's main messenger, and many customers who aren't on WhatsApp are on Zalo. Every Vietnamese mobile has 9 digits after +84. The traps are numbers still stored in their pre-2018 11-digit form, cells where a leading 84 is part of the number rather than the country code, and the millions of lines blocked in 2026 for failing identity verification. Check only numbers your customers gave you: since 1 January 2026, Vietnam's data protection law treats a phone number as personal data, requires consent per purpose and bans trading in personal data.

This guide covers what is specific to Vietnam. The general flow is in our bulk WhatsApp number check guide, and the numbering plan is in our Vietnam 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 Vietnamese numbers for a WhatsApp check?

Use the international form: +84, then the number without its leading 0. A Vietnamese CRM export usually mixes these spellings:

Cell in your fileWhat happenedFix
0912 XXX XXXNational format, as dialled at homeDrop the 0, add +84
+84 912 XXX XXXInternational, with spacesRemove the spaces
84912XXXXXXInternational without the plus (the wa.me link style)Add +
0084 912 XXX XXXDialled from abroad with 00Replace 0084 with +84
+84 0912 XXX XXXInternational with the trunk 0 kept, very common on Vietnamese formsDrop the 0
912XXXXXXThe leading 0 was dropped by a spreadsheetAdd +84
84X XXX XXX (nine digits)A national 084 number that lost its 0Add +84; the 84 is part of the number
0168 XXX XXXX, +84 168 XXX XXXXAn old 11-digit number from before 2018Convert with the table in the next section first

The second-to-last row is a Vietnamese quirk. 084, 085, 086 and 088 are mobile codes, so a cell that starts with 84 isn't always the country code. A hand-written rule that strips a leading 84 turns 84X XXX XXX into a seven-digit fragment. A numbering library decides by length instead: nine digits starting 84 is a national number, eleven digits starting 84 is +84 plus a national number.

We tested that on 2026-11-08 with libphonenumber-js 1.13.13: we generated 377,000 valid Vietnamese mobile numbers across every 03, 05, 07, 08 and 09 sub-block and parsed each in five spellings (0…, 84…, the bare nine digits, +84 0… and 0084…) with the default region VN. All five gave the same +84 number every time, with no mismatches. So default_country: "VN" is safe for a Vietnamese list, as long as numbers from other countries carry their own +. What the library can't do is read old 11-digit numbers; those need the converter below.

A +84 hub with four spokes: an old 01X number crossed out and turned into 03X, two chat app columns with yes and no badges (one marked BULK), an SMS bubble with a QC label beside a clock, and a 2026 calendar by a locked law sheet.A +84 hub with four spokes: an old 01X number crossed out and turned into 03X, two chat app columns with yes and no badges (one marked BULK), an SMS bubble with a QC label beside a clock, and a 2026 calendar by a locked law sheet.
Convert old 11-digit numbers, check both chat apps in one bulk job, and follow the 2026 data law.

What do you do with old 11-digit numbers?

Convert them, then treat them as unverified. Under Decision 798/QD-BTTTT of 25 May 2018, the Ministry of Information and Communications replaced 21 three-digit mobile network codes with two-digit ones and kept the last seven digits (Decision 798, full text). The switch ran from 15 September 2018 to 30 June 2019 (VietnamPlus, 2018), and the old numbers no longer connect:

Old codeNew codeRange holder in 2018
0162–0169032–039Viettel
0120, 0121, 0122, 0126, 0128070, 079, 077, 076, 078MobiFone
0123, 0124, 0125, 0127, 0129083, 084, 085, 081, 082VinaPhone
0186, 0188056, 058Vietnamobile
0199059Gmobile

Lists from loyalty programmes, old CRMs and phone contact exports still hold these numbers. Our API, like every numbering library, rejects them as invalid_number (not billed), so convert them before upload. This converter does both steps and returns null for anything that isn't a valid Vietnamese mobile:

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

// Decision 798/QD-BTTTT (2018): old 3-digit mobile code → new 2-digit code; the last 7 digits stay the same.
const LEGACY = {
  120: "70", 121: "79", 122: "77", 126: "76", 128: "78",                                   // MobiFone
  123: "83", 124: "84", 125: "85", 127: "81", 129: "82",                                   // VinaPhone
  162: "32", 163: "33", 164: "34", 165: "35", 166: "36", 167: "37", 168: "38", 169: "39",  // Viettel
  186: "56", 188: "58",                                                                    // Vietnamobile
  199: "59",                                                                               // Gmobile
};

/** One Vietnamese list cell → E.164 mobile (+84…), or null. Converts old 11-digit numbers first. */
export function toE164Vn(raw) {
  const s = String(raw).trim();
  if (/^\d(\.\d+)?E\+\d+$/i.test(s)) return null;                       // 8.49E+10: digits already lost
  const d = s.replace(/\D/g, "").replace(/^00/, "");
  const nat = d.startsWith("84") && d.length === 12 ? d.slice(2) : d.startsWith("0") ? d.slice(1) : d;
  const old = nat.length === 10 && LEGACY[nat.slice(0, 3)];
  const p = parsePhoneNumberFromString(old ? `0${old}${nat.slice(3)}` : s, "VN");
  return p?.isValid() && p.country === "VN" && p.getType() === "MOBILE" && /^\+84[35789]/.test(p.number) ? p.number : null;
}

We ran it on 2026-11-08 with Node 24 and libphonenumber-js 1.13.13, on libphonenumber's example number for Vietnam and made-up subscriber digits. Digits are masked with X here:

InputOutput
0912 XXX XXX+84912XXXXXX
+84 912 XXX XXX+84912XXXXXX
84912XXXXXX+84912XXXXXX
0084 912 XXX XXX+84912XXXXXX
+84 0912 XXX XXX+84912XXXXXX
912XXXXXX+84912XXXXXX
845XXXXXX (an 084 number without its 0)+84845XXXXXX
0168 XXX XXXX (old Viettel)+8438XXXXXXX
+84 168 XXX XXXX (old Viettel, international)+8438XXXXXXX
0186 XXX XXXX (old Vietnamobile)+8456XXXXXXX
0199 XXX XXXX (old Gmobile)+8459XXXXXXX
8.49123E+10null
010 XXXX XXX (no mobile range)null
024 3XXX XXXX (Hanoi landline)null
+63 905 XXX XXXX (a Philippine mobile)null

The first six rows are the same customer, so after conversion they collapse into one number, which keeps the duplicate count honest. An old number and its new form also collapse, if both are in the file. The free phone list cleaner normalises and dedupes up to 50,000 rows in your browser, but like the libraries it doesn't convert 11-digit numbers, so run the legacy step first.

Eight years on, a converted number is a guess about a customer, not a fact. Many people changed numbers, and some converted numbers have since been given to someone else. Our number recycling post explains why old lists need a live check.

Why do Vietnamese lists hold numbers that stopped working in 2026?

Because of identity verification. Under Circular 08/2026/TT-BKHCN, in force from 15 April 2026, mobile subscribers must verify their details, including a face image, against their chip ID card. A subscriber who doesn't has outgoing service blocked after 60 days, both directions blocked after another 60, and the number revoked five days later. From 15 June 2026, moving a SIM to a new phone triggers face re-verification too (LuatVietnam, 2026).

The numbers are large. On 10 July 2026, Việt Nam News, citing the Telecommunications Department, reported more than 96 million verified numbers and about 13 million lines blocked for outgoing service, with two-way blocking scheduled for 15 August and revocation for 20 August (Việt Nam News, 2026).

For a WhatsApp list this means two things:

  • A WhatsApp or Zalo answer isn't a network answer. It tells you whether an account is tied to the number, not whether the SIM still works. A revoked number can be reissued later, and then the account may belong to a different person.
  • Run HLR on numbers you plan to text or call. An HLR check shows whether the line is reachable on its network now. That matters most for numbers collected before mid-2026 and for converted 11-digit numbers.

How do you check a list of Vietnamese numbers on WhatsApp and Zalo?

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; in Vietnam, buying and selling personal data is now banned outright.
  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; don't guess the 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 and zalo. Use whatsapp.business instead of whatsapp if you also want to know which numbers run a WhatsApp Business account.
  5. Download and join back. The result file keeps your row order (row_no, one row per number and app); 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. Bigger exports go into several jobs.

What does the estimate show for WhatsApp and Zalo together?

Here is a real estimate made with the public sandbox key on 2026-11-08. The sandbox accepts only our test values, which are UK drama-range numbers, so this shows the behaviour, not Vietnamese data. The third number is sent twice, once in E.164 and once in national format with default_country set:

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

Response (abridged):

JSON
{
  "object": "estimate",
  "total": 4,
  "valid": 3,
  "invalid": 0,
  "duplicate": 1,
  "checks": ["whatsapp.registered", "zalo.registered"],
  "max_cost": { "amount": "0", "currency": "USD" },
  "breakdown": [
    { "check": "whatsapp.registered", "price_mode": "realtime", "reason": "small_batch", "checks": 3,
      "unit_price": { "amount": "0.004", "currency": "USD" }, "countries": ["GB"], "batch_minimum": 132 },
    { "check": "zalo.registered", "price_mode": "batch", "reason": "country_minimum", "checks": 3,
      "unit_price": { "amount": "0.0005", "currency": "USD" }, "countries": ["GB"],
      "minimum_checks": 500, "minimum_charge": { "amount": "0.25", "currency": "USD" },
      "note": "Bulk-only check: each country with fewer than 500 numbers is billed at least $0.25 (the price of 500 checks) when it returns at least one answer. Countries with no answers are free." }
  ]
}

How to read it:

  • duplicate: 1 is the national spelling of the third number. For your file, default_country is "VN", and 0912…, 84912… and +84 0912… become one check. Duplicates are never checked or billed.
  • small_batch: the WhatsApp bulk price needs at least 132 numbers from the same country in one job. These three test numbers are below it, so they would be priced the real-time way. A Vietnamese customer list clears it; the few +82 or +81 customers in the same file may not, and the estimate shows them on their own line.
  • country_minimum: Zalo runs in bulk jobs only for now, and bulk-only checks bill each country at least the price of 500 checks when it returns any answer. For three test numbers that is US$0.25; for a real list of thousands it doesn't apply.

max_cost is 0 because test keys are never billed. Details are in the bulk jobs docs.

What does it cost?

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

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
Zalo registration (zalo)US$0.50bulk only for now
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 30,000-row export, 2,000 of them old 11-digit numbers, converts to 26,400 unique valid Vietnamese mobiles. A job with both apps can cost at most 26,400 × (US$0.00025 + US$0.0005) = US$19.80. If 3,000 numbers come back registered on neither app and you want to know which still work before you send SMS, an HLR job on those 3,000 costs at most 3,000 × US$0.005 = US$15.00.

How many Vietnamese customers use WhatsApp, and how many use Zalo?

There is no public WhatsApp figure for Vietnam that you could apply to a list, and we don't publish one. DataReportal's Digital 2026 report for Vietnam, with data to October 2025, counts 137 million cellular mobile connections (134% of the population), 85.6 million internet users (84.2%) and 79.0 million social media user identities (77.6%). It reports Zalo at 78.3 million monthly active users, citing the company, and doesn't mention WhatsApp at all (DataReportal, 2025).

Zalo's lead is visible in other sources too:

  • The company's own figure. VNG reported 79.2 million monthly active Zalo users in the third quarter of 2025 and about 2.1 billion messages a day (Tuoi Tre News, 2025).
  • An independent survey. VnExpress, citing Decision Lab's Connected Consumer survey for the third quarter of 2024, put Zalo's penetration at 85%, ahead of Facebook at 59% and Messenger at 52% (VnExpress, 2025).

Two conclusions for a list:

  • Expect a large WhatsApp not-registered group, and don't read it as "dead number". Many working Vietnamese numbers simply have no WhatsApp account. The Zalo answer in the same row is usually the more useful one.
  • 134% means second SIMs. Many customers hold more than one line, and the one on your list may not be the one their apps use. Ask at the next contact they expect.

Zalo users can also limit who finds them by phone number, so a Zalo false for a customer who told you they use Zalo is a reason to ask, not to drop them. Our Zalo number check page explains the answers.

Is WhatsApp cheaper than SMS for OTP in Vietnam?

Vietnam isn't its own market on Meta's rate card. Meta's pricing page lists it, with the Philippines, among the 16 markets of the Rest of Asia Pacific region (Meta pricing). From our rate-card dataset, transcribed from Meta's USD rate cards:

WhatsApp category, Rest of Asia Pacific (includes VN)1 July 20261 October 2026
AuthenticationUS$0.0113US$0.0113
UtilityUS$0.0113US$0.0113
MarketingUS$0.0732US$0.0842
Service (after 1,000 free per month per number)freeUS$0.0113

Prices are per delivered message, and Meta charges only for delivered messages. Vietnam isn't on Meta's list of markets with an authentication-international rate (Meta, 2026), so a business based abroad pays the same list rate for a code to a +84 user as a local one.

The bigger question in Vietnam is reach, not price. A cheap WhatsApp code only helps customers who have WhatsApp; for the rest, the code goes by SMS anyway, under a registered brand name. Use the check to decide the channel per customer, then compare costs with the free WhatsApp cost calculator (Vietnam selected) and the SMS rate on your own invoice. We don't quote SMS prices: they vary by route and contract. Our WhatsApp OTP vs SMS OTP cost guide has the formula for cost per verified user.

What do Vietnam's data protection and anti-spam rules require?

We read the English translations published by LuatVietnam and the law-firm commentary cited below on 2026-11-08. Translations aren't official, so ask local counsel how the texts apply to you.

Personal Data Protection Law (Law 91/2025/QH15)

Vietnam's first data protection law was passed on 26 June 2025 and took effect on 1 January 2026 (Article 38(1)) (Law 91/2025). Its guiding Decree 356/2025/ND-CP, issued on 31 December 2025, took effect on the same day and ended Decree 13/2023/ND-CP, the data protection decree in force since 1 July 2023 (Decree 356/2025; Decree 13/2023). The points that touch a number check:

  • A phone number is personal data. Decree 356 lists "phone number" among basic personal data (Article 3(7)), as Decree 13 did before it.
  • Consent per purpose, never by silence. Consent must be voluntary and based on clear knowledge of the data, the purpose, the controller and the person's rights (Article 9(2)). It is given for each purpose (Article 9(4)(a)), and "silence or non-response is not considered consent" (Article 9(4)(d)). If you check which apps reach a customer, that is a purpose to name.
  • No trading in data. Article 7(6) prohibits "buying and selling personal data, unless otherwise prescribed by law". A bought list of Vietnamese numbers is a problem before you check it.
  • Fines. Up to ten times the proceeds for illegal data trading, up to 5% of the previous year's revenue for cross-border transfer violations, and up to VND 3 billion for other violations (Article 8). Individuals pay half.
  • Foreign businesses are covered. The law applies to foreign organisations directly involved in or related to processing the data of Vietnamese citizens in Vietnam (Article 1(2)). Sending a Vietnamese list to a checking service abroad is processing and can be a cross-border transfer, so pick a processor with a data processing agreement.
  • Relief for small firms is narrow. Small enterprises and startups may choose for five years whether to comply with the impact-assessment and data-protection-staff duties, but not if they provide processing services, process sensitive data or process data of a large number of people (Article 38(2)) (Tilleke & Gibbins).

Consents collected under Decree 13 remain valid (Article 39(1)), so a customer who agreed to service messages then doesn't need to agree again.

Advertising messages and calls (Decree 91/2020)

Decree 91/2020/ND-CP took effect on 1 October 2020 and governs advertising by SMS, MMS, USSD, e-mail and calls (Decree 91/2020):

RuleRequirementArticle
ConsentNo advertising without the recipient's prior consent13(1)
Do Not Call listNo advertising messages or calls to numbers on the national list7, 13(1)
FrequencyAt most 3 advertising messages and 1 advertising call per number in 24 hours, unless agreed otherwise13(5)
HoursMessages 7:00 to 22:00, calls 8:00 to 17:00, unless agreed otherwise13(6)
LabelAn advertising message starts with [QC] or [AD]15

As written, the decree doesn't name app messages. That may change: the Ministry of Public Security has published a draft decree to replace it, which would extend the rules to messages and calls over internet-based (OTT) apps and take effect on 1 January 2027 (draft decree, 2026). It is a draft, but it is a good reason to apply the same consent, frequency and labelling habits to WhatsApp and Zalo marketing now.

WhatsApp's own opt-in rule

WhatsApp's Business Messaging Policy says you may only contact people on WhatsApp if they have given you their mobile number and you have received opt-in permission confirming they want messages from you (WhatsApp, 2026). Zalo's business accounts have their own rules. A registered: true answer on either app is a fact about the number, not permission to message it. Our consent and law guide covers other regions.

DoDon't
Check numbers from your own sign-ups, orders and support contactsCheck bought lists (banned trade in Vietnam), scraped numbers or generated ranges
Name the channel check as a purpose in your privacy notice and consentTreat "registered" or silence as consent to marketing
Store the answer and its date, and delete old jobsKeep profiles of people who aren't customers
Honour withdrawals and objections at onceRe-check opted-out numbers to reach them on another app

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:

WhatsAppZaloWhat to do
registered: true, opted inanySend what they asked for on WhatsApp; keep SMS as the fallback
registered: falseregistered: true, opted in to ZaloUse Zalo for that customer
registered: falseregistered: falseUse SMS under your brand name, or a call; run HLR first on old numbers
UnknownUnknownKeep the current channel, re-check later; both are free
null from your converter—Fix the record by hand, or ask the customer

For the group on neither app, an HLR check answers the next question: is the number reachable on its network at all, after the 2026 blocks? It also shows whether the number was ported; Vietnam has had porting since November 2018, so the 09X or 03X code shows only the range holder. 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.

Re-check before each campaign to opted-in customers, starting with the oldest answers and the converted 11-digit numbers.

How do you start with MobileValidate?

The checks for this guide are WhatsApp number check, Zalo number check, WhatsApp Business check and live network status (HLR). WhatsApp and HLR take Vietnamese numbers in real time and in bulk jobs; Zalo runs in bulk jobs only for now. You don't need a WhatsApp or Zalo account, a phone or a QR pairing.

  • Free, today. Get a free test key to build against fixed test answers, and use the free estimate on any file before you pay. The free tools run in your browser: the phone number validator for a few numbers, the list cleaner for a whole export, and the MCC MNC lookup for network codes. To look at one number's network without an account, the carrier lookup answers three numbers a day.
  • 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, ID number or address. WhatsApp and Zalo are named descriptively; MobileValidate is not affiliated with WhatsApp, Meta, Zalo, VNG or any Vietnamese authority.

What are the key takeaways?

  • Convert old 11-digit 01X numbers first (0168… → 038…, 0123… → 083…); libraries and our API reject the old form.
  • Then convert every row to +84…. 0…, 84…, +84 0…, 0084… and the bare nine digits are the same customer, and default_country: "VN" read all five correctly in our test of 377,000 numbers. Don't strip a leading 84 by hand: 084 is a mobile code.
  • About 13 million lines were blocked in 2026 for failing identity checks: run HLR on old numbers before you text them.
  • Check WhatsApp and Zalo in the same bulk job: US$0.25 and US$0.50 per 1,000 (catalog, 2026-11-08). Unknowns and duplicates are free.
  • A WhatsApp authentication message to Vietnam lists at US$0.0113 (Rest of Asia Pacific, 1 October 2026), with no cross-border surcharge.
  • Since 1 January 2026 a phone number is personal data under Law 91/2025: consent per purpose, no consent by silence, and no buying or selling of lists. Check your own customers' numbers only.

Sources

  1. Decision 798/QD-BTTTT of 25 May 2018 promulgating the mobile network code conversion plan (full text) — Ministry of Information and Communications of Vietnam (text published by LuatVietnam), 2018
  2. 11-digit phone numbers to be switched to 10 digits (29 May 2018) — VietnamPlus, 2018
  3. Hạn chót xác thực thuê bao để tránh bị khóa SIM 2 chiều, thu hồi số (Circular 08/2026/TT-BKHCN) — LuatVietnam, 2026
  4. 13m SIMs face blocks as authorities verify subscribers (10 July 2026) — Việt Nam News, 2026
  5. Digital 2026: Vietnam — DataReportal (Kepios), 2025
  6. Vietnam's 80-million-user messaging giant Zalo puts spotlight on parent VNG's business (29 December 2025) — Tuoi Tre News, 2025
  7. Vietnam's internet messaging rate higher than global average (13 February 2025) — VnExpress International, 2025
  8. Law on Personal Data Protection No. 91/2025/QH15 (English translation) — National Assembly of Vietnam (text published by LuatVietnam), 2025
  9. Vietnam's New Personal Data Protection Law: A Closer Look — Tilleke & Gibbins, 2025
  10. Decree No. 356/2025/ND-CP of 31 December 2025 detailing the Law on Personal Data Protection (English translation) — Government of Vietnam (text published by LuatVietnam), 2025
  11. Decree No. 13/2023/ND-CP of 17 April 2023 on personal data protection (English translation) — Government of Vietnam (text published by LuatVietnam), 2023
  12. Decree No. 91/2020/ND-CP on fighting spam text messages, spam emails and spam calls (English translation) — Government of Vietnam (text published by LuatVietnam), 2020
  13. Draft decree replacing Decree 91/2020/ND-CP on preventing spam messages and calls (draft, 2026) — Ministry of Public Security of Vietnam, 2026
  14. WhatsApp Business Messaging Policy — WhatsApp, 2026
  15. Pricing on the WhatsApp Business Platform — Meta for Developers, 2026
  16. Authentication-international rates — Meta for Developers, 2026

Frequently asked questions

How do I convert Vietnamese numbers to +84 for a WhatsApp check?

Drop the leading 0 and add +84: 0912 XXX XXX becomes +84 912 XXX XXX, written +84912XXXXXX in E.164. Every Vietnamese mobile has 9 digits after +84. Remove a stray 0 after the code (+84 09…), and convert old 11-digit numbers that start 01 before anything else.

What do I do with old 11-digit 01X numbers in a Vietnamese list?

Convert them with the 2018 conversion table: the old three-digit network code becomes a two-digit one and the last seven digits stay, so 0168 XXX XXXX becomes 038 XXX XXXX and 0123 XXX XXXX becomes 083 XXX XXXX. Numbering libraries and our API reject the old form as invalid. Treat converted numbers as unverified: many are years old.

Is a cell that starts with 84 always the country code?

No. A nine-digit cell such as 84X XXX XXX is a national 084 number that lost its leading 0, not +84 followed by seven digits. A rule that strips a leading 84 breaks it. In our test of 377,000 valid Vietnamese mobiles, libphonenumber-js with the default region VN read every common spelling, including this one, correctly.

Should I check Zalo as well as WhatsApp for Vietnamese customers?

Usually, yes. Zalo is the most-used messenger in Vietnam: VNG reported 79.2 million monthly active users in the third quarter of 2025, and DataReportal's 2026 report doesn't mention WhatsApp at all. One bulk job can return both answers per number. Our Zalo check runs in bulk jobs only for now.

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

On 2026-11-08 our public catalog listed the WhatsApp registration check at US$0.25 per 1,000 numbers in bulk jobs and the Zalo check at US$0.50 per 1,000. The WhatsApp bulk price needs at least 132 numbers from the same country in one job, and Zalo has a minimum charge of 500 checks per country. Unknown, invalid and duplicate rows are never billed.

Does Vietnam's Personal Data Protection Law apply to checking customer numbers?

Yes. Law 91/2025/QH15 took effect on 1 January 2026, and its guiding Decree 356/2025 lists a phone number as basic personal data. Consent must be given per purpose, and silence or no response is not consent. The law also bans buying and selling personal data and covers foreign organisations that process Vietnamese citizens' data.

Does Decree 91/2020 cover WhatsApp and Zalo messages?

Not as written. Decree 91/2020 covers advertising by SMS, MMS, USSD, e-mail and calls. A draft replacement decree published by the Ministry of Public Security in 2026 would extend the rules to app (OTT) messages from 1 January 2027, but it is still a proposal. WhatsApp's own policy already requires opt-in.

Is WhatsApp cheaper than SMS for OTP in Vietnam?

Meta prices Vietnam inside its Rest of Asia Pacific region: US$0.0113 per delivered authentication message on the rate card effective 1 October 2026, unchanged since July, with no authentication-international surcharge for senders abroad. Compare it with the SMS rate on your own invoice, and remember many Vietnamese customers aren't on WhatsApp.

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.