On this page
To check a list of Bangladeshi numbers for WhatsApp, convert every row to E.164 (+8801…), 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. Bangladeshi mobiles have a simple shape, 01X plus eight digits at home and 10 digits after +880, but lists from Bangladesh carry three spellings that break naive scripts: +88 01X…, numbers typed in Bengali digits, and long numbers a spreadsheet has turned into 8.80E+12. Check only numbers your customers gave you, with a lawful basis under the Personal Data Protection Act 2026, and never use the answers to find new people to message.
This guide covers what is specific to Bangladesh. The general flow is in our bulk WhatsApp number check guide, and the numbering plan, operator codes and porting rules are in our Bangladesh phone number format guide. Facts are as of 7 November 2026, and every price below carries its date. This is general guidance, not legal advice.
How do you format Bangladeshi numbers for a WhatsApp check?
Use the international form: +880, then the 10-digit number without its leading 0. A Bangladeshi CRM export rarely looks like that. These cells can all be the same customer:
| Cell in your file | What happened | Fix |
|---|---|---|
017XX-XXXXXX | National format, as dialled at home | Drop the 0, add +880 |
+880 17XX XXXXXX | International, with spaces | Remove the spaces |
+88 017XX-XXXXXX | +88 in front of the full national number | Nothing to fix: +88 + 01… is +8801… |
88017XXXXXXXX | International without the plus | Add + |
00880 17XX XXXXXX | Dialled from abroad with 00 | Replace 00880 with +880 |
17XXXXXXXX | The leading 0 was dropped by a spreadsheet | Add +880 |
০১৭XX… | Typed in Bengali digits | Convert to 0–9 first |
8.80171E+12 | A spreadsheet stored the number as a value and shows it in scientific notation | Can't be fixed: re-export the column as text |
The +88 row is the Bangladeshi habit to know. Many people learned the number as 01X… and the country code as +88, so they write +88 01X…. Joined up, that is exactly +8801X…, the correct form. A script that treats that 0 like the (0) in +92 (0)3… and deletes it produces +8817…, a number with a digit missing.
Bengali digits are the second trap, and they fail silently. In our test on 2026-11-07, libphonenumber-js 1.13.13 returned no number at all for a mobile typed in Bengali digits. It read the same number in Urdu digits without help, so don't assume one script's behaviour from another's. Python's phonenumbers handled Bengali digits when we tested it for our format guide, but the converter below doesn't rely on that.
This converter handles the spellings above and returns null for anything that isn't a valid Bangladeshi 01X mobile:
import { parsePhoneNumberFromString } from "libphonenumber-js/max";
/** One Bangladeshi list cell → E.164 mobile (+8801…), or null. */
export function toE164Bd(raw) {
let s = String(raw).trim();
if (/^\d(\.\d+)?E\+\d+$/i.test(s)) return null; // 8.80181E+12: digits already lost
s = s.replace(/[০-৯]/g, (d) => String(d.charCodeAt(0) - 0x09e6)); // Bengali digits ০–৯
const p = parsePhoneNumberFromString(s, "BD"); // handles 01…, 8801…, +880 1…, +88 01…, 00880…, 1…
return p?.isValid() && p.country === "BD" && p.getType() === "MOBILE" && p.number.startsWith("+8801")
? 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 Bangladesh. Digits are masked with X here:
| Input | Output |
|---|---|
01812-XXXXXX | +88018XXXXXXXX |
+880 1812 XXXXXX | +88018XXXXXXXX |
+88 01812XXXXXX | +88018XXXXXXXX |
88018XXXXXXXX | +88018XXXXXXXX |
00880 18XXXXXXXX | +88018XXXXXXXX |
18XXXXXXXX | +88018XXXXXXXX |
০১৮১… (Bengali digits) | +88018XXXXXXXX |
8.80181E+12 | null |
010XXXXXXXX (reserved block) | null |
018XXXXXXX (one digit short) | null |
02-XXXXXXXX (Dhaka landline) | null |
+92 30XXXXXXXX (a Pakistani mobile) | null |
The first seven rows are one customer, so after conversion they collapse into one number, and the duplicate count is honest. Numbers from other countries return null here on purpose: give them their own file, or keep their + form. Because no spelling is ambiguous once it is converted, you can also upload national numbers with default_country: "BD", as long as you converted the Bengali digits first.
Which Bangladeshi numbers should you drop before the check?
Every Bangladeshi mobile has 10 digits after +880 and starts with 1, so a length check is safe. The prefix matters too. From BTRC's numbering plan and libphonenumber's metadata, as set out in our format guide:
| Code | Status |
|---|---|
013–019 | Open mobile ranges |
011 | Mobile range in libphonenumber; we found no current BTRC list confirming who uses it |
010, 012 | Reserved, not mobile |
037…, 038…, 044…, 064…, 066… | Some numbers match libphonenumber's mobile pattern, but they sit among area codes; the converter above drops them |
Don't use the 01X code for anything else. It names the operator that holds the range, but mobile number portability has run in Bangladesh since 1 October 2018, so it doesn't show the current network. For a WhatsApp check the operator doesn't matter.
How do you check a list of Bangladeshi numbers on WhatsApp?
Five steps, from export to answers:
- 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. - Convert and dedupe. Run every cell through a converter like the one above. Keep the rows that return
nullaside for a manual fix. - 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 and shows the maximum cost, the duplicates and any country group below the bulk minimum before anything runs. - Run with a cost cap. Start the job with
max_costset to the estimate. Choosewhatsapp, orwhatsapp.businessif you also want to know which customers use a WhatsApp Business account. - 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 itschecked_atdate.
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 an answer look like?
Here is a real lookup made with the public sandbox key on 2026-11-07, with the whatsapp.business check. The sandbox accepts only our test values, which are UK drama-range numbers, so this shows the answer format, not Bangladeshi data. A bulk job's result file carries the same fields per row:
curl https://api.mobilevalidate.com/v1/lookup \
-H "Authorization: Bearer mv_test_publicSandboxn9ZgneuhR1B9CRfKG3fulym" \
-H "Content-Type: application/json" \
-d '{"numbers": ["+447700900001", "+447700900002", "+447700900003", "+447700900006"],
"checks": ["whatsapp.business"], "wait": 5}'The four results, reduced to the fields you store:
| Test value | status | registered | business | reason | billed |
|---|---|---|---|---|---|
+447700900001 | completed | true | false | null | false |
+447700900002 | completed | false | false | null | false |
+447700900003 | unknown | null | null | UPSTREAM_TIMEOUT | false |
+447700900006 | completed | true | true | null | false |
Keep null apart from false. The third row is an unknown: no conclusive answer, never billed, worth a retry later. billed is false on every row because test keys are never billed. With a live key, a conclusive row is billed once and an unknown one never is.
What does it cost?
From our public catalog (GET /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 |
The bulk price needs at least 132 numbers from the same country in one job; smaller country groups are checked at the real-time price, and the estimate shows them first. 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. The details are in the bulk jobs docs.
A worked example with made-up figures: a 40,000-row export of sign-ups converts to 33,800 unique valid Bangladeshi mobiles once +88 0…, 880… and national spellings of the same people collapse. The WhatsApp Business job can cost at most 33,800 × US$0.0003 = US$10.14. An HLR job on 5,000 numbers that came back not registered costs at most 5,000 × US$0.005 = US$25.00.
What share of Bangladeshi numbers are on WhatsApp?
We don't quote one, and you shouldn't plan with one. DataReportal's Digital 2026 report for Bangladesh counts 186 million cellular mobile connections at the end of 2025, equal to 105% of the population, but only 82.8 million internet users (47.0%) and 64.0 million social media user identities (36.3%) (DataReportal, 2025). The report gives no WhatsApp figure.
Two things follow for a list. First, more connections than people means many customers hold more than one SIM. BTRC capped registrations at 10 SIMs per national ID card in October 2025, with extra SIMs to be deactivated after 30 October 2025 (The Business Standard, 2025). The number a customer typed into your form may not be the one their WhatsApp account uses. Second, fewer than half the population was online, so a not-registered answer often belongs to a working number that SMS or a call still reaches. That is why a check of your own list beats any national average.
Is WhatsApp cheaper than SMS for OTP in Bangladesh?
The answer changed on 1 October 2026, when Bangladesh left Meta's "Rest of Asia Pacific" region and got its own rates. From our rate-card dataset, transcribed from Meta's USD rate cards:
| WhatsApp category | 1 July 2026 (Rest of Asia Pacific) | 1 October 2026 (Bangladesh) |
|---|---|---|
| Authentication | US$0.0113 | US$0.0037 |
| Authentication-international | none | US$0.0960 |
| Utility | US$0.0113 | US$0.0037 |
| Marketing | US$0.0732 | US$0.0732 |
Prices are per delivered message, and Meta charges only for delivered messages, so a code sent to a number without WhatsApp costs nothing but time.
For a business based in Bangladesh, an authentication message got about two-thirds cheaper. A large sender based abroad can face the opposite. Meta announced the Bangladesh authentication-international rate on 27 May 2026, effective 1 October 2026. It applies once a business is eligible and is based in another country than the recipient. Eligibility comes after more than 750,000 messages outside customer service windows in a moving 30-day period to users in markets with such a rate, with 30 days' notice (Meta, 2026). At that point a code to a +880 user costs about 26 times the local rate. If you verify Bangladeshi users from abroad at scale, run your numbers on both rates. Our WhatsApp Business API pricing guide covers the new cards.
We don't quote SMS prices here: they vary by aggregator, sender type and contract. Put the rate on your own invoice next to the table, and use our WhatsApp OTP vs SMS OTP cost guide to compare cost per verified user.
What does Bangladesh's data protection law require before you check or message?
Bangladesh now has a data protection statute. The Personal Data Protection Act, 2026 (Act No. 63 of 2026) was passed by Parliament and received the President's assent on 10 April 2026, according to the Bangladesh Gazette notice republished by BTRC, which we opened on 2026-11-07 (BTRC). It replaced the Personal Data Protection Ordinance, 2025, gazetted in November 2025, and its February 2026 amendment. One press report gives 15 April 2026 as the date it became an Act (The Daily Star, 2026); we use the gazette date.
The gazette text is in Bengali, in a font that we couldn't extract reliably, so the points below come from an English summary of the Act (Securiti, 2026). Check them against the official text with counsel before you rely on them:
- It reaches beyond Bangladesh. The Act covers processing outside the country that is connected with offering products or services to people in Bangladesh, or with monitoring them.
- You need a lawful purpose and a legal ground. Processing needs consent or another specified legitimate ground, and must be necessary, proportionate and limited to its purpose.
- Consent has to be real. It must be free, specific, unambiguous and revocable. Before relying on it, tell people the purpose, how long you keep the data, any transfers to third parties, and how to withdraw. People can withdraw at any time; processing before the withdrawal stays lawful.
- Processors work under contract. A checking service processes data for you under a contract, and the controller remains liable for what the processor does.
- Some transfers abroad need notice. Large-scale transfers of sensitive identifiers such as national ID, passport and tax numbers must be notified to the authority. The authority, named in the summary as the National Data Management Authority, can suspend transfers.
- Fines. Up to Tk 25 lakh (2.5 million taka) for failing to protect data or to honour data subjects' rights, and up to Tk 50 lakh for a designated significant data fiduciary.
The practical baseline doesn't change: check numbers of customers who gave them to you, for a purpose they would expect, such as choosing the channel that reaches them. Checking numbers to build an audience you have no relationship with fails the purpose test. Our consent and law guide covers the same reasoning in other regions.
BTRC's A2P aggregator rules
Bangladesh regulates the SMS side through enlistment. BTRC's list of A2P SMS aggregators, dated 17 September 2026, names 152 companies enlisted under the Bangladesh Telecommunication Act, 2001. They may provide one-way, machine-generated SMS: promotional, transactional and notification messages (BTRC). On 5 August 2026, BTRC cancelled seven enlistments, said any later operation under them is illegal, and asked mobile operators to disconnect those companies' SMS connections (BTRC notice, 2026). Before you move not-registered numbers to SMS, find your provider on the current list.
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 and you have received opt-in permission confirming that they want to receive messages or calls from you (WhatsApp, 2026). A registered: true answer is a fact about the number, not permission to message it.
On our side, requests with 20 or more consecutive numbers are 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:
| Answer | What it means | What to do |
|---|---|---|
registered: true, business: true | A WhatsApp Business account | Treat it as a business contact, not a personal one |
registered: true, customer opted in | Account exists | Send what they asked for on WhatsApp; keep SMS as the 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 | Use SMS through an enlisted aggregator, or a call |
| Unknown | No conclusive answer | Keep the current channel, re-check later; free |
null from your converter | Not a valid Bangladeshi mobile | Fix the record by hand, or ask the customer |
For the not-registered group, an HLR check answers the next question: is the number reachable on its network at all? Because customers often hold several SIMs, an unreachable number may simply be a SIM they no longer use; confirm the number with the customer before you pay for SMS to it. 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, and our WhatsApp Business check guide explains what the business flag does and doesn't tell you.
Re-check before each campaign to opted-in customers, starting with the oldest answers. Numbers do change hands, and the 2025 SIM cap deactivated extra SIMs, so a list from two years ago has drifted.
How do you start with MobileValidate?
The checks for this guide are WhatsApp number check, WhatsApp Business check and live network status (HLR). All three take Bangladeshi 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 to build against fixed test answers, and use the free estimate on any file before you pay. To look at one number without an account, the free 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, national ID or address. WhatsApp is named descriptively; MobileValidate is not affiliated with WhatsApp, Meta or BTRC.
What are the key takeaways?
- Convert every row to
+8801…before upload.01X…,+88 01X…,880…,00880…and1X…are the same customer. - Convert Bengali digits before parsing in JavaScript, and format the phone column as text: a cell shown as
8.80E+12has lost digits for good. - Bangladeshi mobiles have 10 digits after +880;
013–019are open,010and012are reserved. - Bulk WhatsApp checks cost US$0.25 per 1,000, and WhatsApp Business checks US$0.30 (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.
- Since 1 October 2026, a WhatsApp authentication message to Bangladesh lists at US$0.0037; foreign senders above Meta's threshold pay US$0.0960.
- The Personal Data Protection Act 2026 is in force and can reach senders abroad. Check your own customers' numbers with a lawful basis, never bought or scraped lists, and send SMS only through a BTRC-enlisted aggregator.
Sources
- Personal Data Protection Act, 2026 (Act No. 63 of 2026, Bangladesh Gazette Extraordinary, 10 April 2026; Bengali text) — Bangladesh Telecommunication Regulatory Commission (republished), 2026
- Bangladesh Personal Data Protection Act overview — Securiti, 2026
- Why Bangladesh's new data protection law may fail to protect your data (7 July 2026) — The Daily Star, 2026
- SMS service providers: list of enlisted A2P SMS aggregators (list dated 17 September 2026) — Bangladesh Telecommunication Regulatory Commission, 2026
- Notice on cancelling existing A2P SMS aggregator enlistment certificates (5 August 2026) — Bangladesh Telecommunication Regulatory Commission, 2026
- BTRC sets 30 October deadline to limit SIMs to 10 per NID (13 October 2025) — The Business Standard, 2025
- WhatsApp Business Messaging Policy (last updated 23 September 2026) — WhatsApp, 2026
- Authentication-international rates — Meta for Developers, 2026
- Digital 2026: Bangladesh — DataReportal (Kepios), 2025
Frequently asked questions
How do I convert 01X numbers to +880 for a WhatsApp check?
Drop the leading 0 and add +880: 017XX-XXXXXX becomes +88017XXXXXXXX. Every Bangladeshi mobile has 10 digits after +880 and starts with 1. A cell that starts with 880 only needs a plus, and a cell written +88 017… is the same number, because the 0 of 017 completes the code 880.
Why does my Bangladeshi list contain +88 numbers?
Because many people write the country code as +88 followed by the full national number, 01X…. Put together, +88 and 01X give +8801X, which is the correct +880 1X form. A numbering-plan library reads it correctly; a script that deletes the 0 after the country code, as it would in +92 (0)3…, breaks it.
Do Bengali digits break a WhatsApp number check?
They can. In our test on 2026-11-07, libphonenumber-js 1.13.13 returned nothing for a number typed in Bengali digits (০১৭…) until we converted them to 0–9, while it read Urdu digits on its own. Convert Bengali digits before parsing, or the customer is silently dropped.
How much does a bulk WhatsApp check of Bangladeshi 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.
What does Bangladesh's Personal Data Protection Act 2026 mean for checking numbers?
Parliament passed the Personal Data Protection Act, 2026 (Act No. 63 of 2026), which received the President's assent on 10 April 2026 and replaced the 2025 Ordinance. As summarised in English sources, processing needs a lawful purpose and consent or another legal ground, and it can apply to processing outside Bangladesh. Ask local counsel how it applies to you.
Is WhatsApp cheaper than SMS for OTP in Bangladesh?
WhatsApp got cheaper on 1 October 2026, when Bangladesh became its own market on Meta's rate card: authentication fell from US$0.0113 to US$0.0037 per delivered message. Businesses based abroad that cross Meta's volume threshold pay a new authentication-international rate of US$0.0960. Compare both with the SMS rate on your own invoice.
What should I do with Bangladeshi numbers that are not on WhatsApp?
Keep them on SMS or calls, sent through a BTRC-enlisted A2P aggregator, and don't offer WhatsApp to them. If you aren't sure a number still works, a live network status (HLR) check tells you whether it is reachable. Unknown answers are free and are not proof that a number is dead.
Related services and guides
More from the blog
All articlesGuides
Bangladesh phone numbers: format, mobile prefixes, validation and messaging rules
Bangladeshi mobiles are +880 plus 10 digits starting 1 (01X at home: 011, 013-019). Since porting began in 2018, the prefix no longer proves the network.
13 min read
Guides
Bulk WhatsApp number check: how to verify a customer list (CSV upload or API)
Check WhatsApp numbers in bulk: prepare a CSV, get a free estimate, cap the cost, run the job in the dashboard or API, and act on each answer.
8 min read
Guides
Bulk WhatsApp number check for Indonesian customer lists (+62)
Check an Indonesian customer list for WhatsApp: fix 08, 62 and 8 formats to +62, dedupe, get a free estimate, and stay within the PDP Law (UU 27/2022).
13 min read

