# Bulk WhatsApp number check for Nigerian customer lists (+234)

> Check a Nigerian list for WhatsApp: turn 080, 081, 070, 090 and 091 numbers into +234, fix 00234 cells, get a free estimate, and follow NCC and NDPA rules.

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

![A staircase from a list card with 080, 070 and 090 rows to a struck-out 00234 pill becoming +234, then a check card with answers; beside it a SIM linked to an ID card, a 365 calendar, a high gauge and a 2442 shield.](https://mobilevalidate.com/images/blog/bulk-whatsapp-number-check-nigeria.svg)

*Nigerian lists: drop the 0, fix 00234, and re-check old numbers because idle lines are recycled.*


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

To check a list of Nigerian numbers for WhatsApp, convert every row to E.164 (`+234` and 10 digits, without the leading 0), drop the rows that aren't valid mobiles, 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. Nigerian mobiles are regular, `080`, `081`, `070`, `090` or `091` (and the newer `071` and `072`) plus eight digits at home. The traps are a `0` left behind after `+234`, `00234` cells that phone libraries reject, and old numbers that have since been recycled. Check only numbers your customers gave you: the Nigeria Data Protection Act needs a lawful basis for every check and consent for any direct marketing.

This guide covers what is specific to Nigeria. The general flow is in our [bulk WhatsApp number check guide](/blog/bulk-whatsapp-number-check), and the numbering plan, prefix tables and porting rules are in our [Nigeria phone number format guide](/blog/nigeria-phone-number-format). 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 Nigerian numbers for a WhatsApp check?

Use the international form: `+234`, then the number without its leading 0. A Nigerian CRM or lead export usually holds the same mobile written several ways:

| Cell in your file | What happened | Fix |
|---|---|---|
| `0803 XXX XXXX` | National format, as dialled at home (11 digits) | Drop the `0`, add `+234` |
| `+234 803 XXX XXXX` | International, with spaces or dashes | Remove the spaces |
| `234803XXXXXXX` | International without the plus (the wa.me link style), 13 digits | Add `+` |
| `+234 0803 XXX XXXX` | The trunk `0` kept after the country code | Drop the `0` |
| `+234 (0)803 XXX XXXX` | The same, with the `0` in brackets | Drop the `(0)` |
| `00234 803 XXX XXXX` | Dialled from abroad with `00` | Replace `00234` with `+234` (the library won't) |
| `009234 803 XXX XXXX` | Dialled with Nigeria's own international prefix, `009` | Replace `009234` with `+234` |
| `803XXXXXXX` | A spreadsheet dropped the leading `0` | Add `+234` |
| `2.34803E+12` | A spreadsheet stored the 13-digit number as a value | Can't be fixed: re-export the column as text |

Two of these rows are specific to Nigeria.

**The `0` after `+234`.** People who learned "080 something" often keep the `0` when they add the country code, so `+2340803…` shows up in forms and in wa.me links. It is not a valid international number. A numbering-plan library removes it; a spreadsheet formula that only prepends `+234` keeps it.

**The `00234` row.** Nigerians dial out with `009`, not `00`. A library told that the number is Nigerian expects `009` and doesn't strip `00`, so it reads `00234…` as a national number and rejects it. Customers abroad type `00234` all the time, so rewrite it to `+234` before parsing.

Our free [phone list cleaner](/tools/phone-list-cleaner) converts and dedupes a file of up to 50,000 rows in your browser, including the `00234` and `+2340…` spellings; pick Nigeria as the default country. For your own pipeline, this converter does the same and returns `null` for anything that isn't a valid Nigerian mobile:

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

/** One Nigerian list cell → E.164 mobile (+234 and 10 digits), or null. */
export function toE164Ng(raw) {
  let s = String(raw).trim();
  if (/^\d(\.\d+)?E\+\d+$/i.test(s)) return null;            // 2.348E+12: the spreadsheet already lost digits
  s = s.replace(/^00(?=[\s-]*234)/, "+");                     // 00234…: Nigeria dials out with 009, so the library won't strip 00
  const p = parsePhoneNumberFromString(s, "NG");             // 080…, 234…, +234 80…, +234 080…, 009234…, 80…
  return p?.isValid() && p.country === "NG" && p.getType() === "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 for Nigeria. Digits are masked with X here:

| Input | Output |
|---|---|
| `0802 XXX XXXX` | `+234802XXXXXXX` |
| `+234 802 XXX XXXX` | `+234802XXXXXXX` |
| `234802XXXXXXX` | `+234802XXXXXXX` |
| `+234 0802 XXX XXXX` | `+234802XXXXXXX` |
| `+234 (0)802 XXX XXXX` | `+234802XXXXXXX` |
| `00234 802 XXX XXXX` | `+234802XXXXXXX` (invalid without the `00` rewrite) |
| `009234 802 XXX XXXX` | `+234802XXXXXXX` |
| `802XXXXXXX` | `+234802XXXXXXX` |
| `2.34802E+12` | `null` |
| `0712 XXX XXXX` (the newer MVNO block) | `+234712XXXXXXX` |
| `0800 XXX XXXX` (toll-free) | `null` |
| `0700 XXX XXXX` (special numbers) | `null` |
| `0910 XXX XXXX` (not a mobile block) | `null` |
| `0201 XXX XXXX` (a landline) | `null` |
| `+233 24 XXX XXXX` (a Ghanaian mobile) | `null` |

The first eight rows are the same customer, so after conversion they collapse into one number, which keeps the duplicate count honest. Rows from other countries return `null` here on purpose: if your list also holds Ghanaian or UK customers, put them in their own file or keep their `+` form.

## Which Nigerian numbers should you drop before the check?

Every Nigerian mobile has **10 digits after +234**, so a length check is safe. It isn't enough, though, because some blocks inside the mobile prefixes hold other services. From libphonenumber's metadata for `NG`, as tabulated in our [Nigeria format guide](/blog/nigeria-phone-number-format#which-prefixes-are-mobile-numbers):

| Block | Mobile today? |
|---|---|
| `071`, `072` | Yes, the whole block (the newest, notified for MVNO services) |
| `070` | Yes, except `0700` (special numbers) and part of `0702` |
| `080` | Yes, except `0800` (toll-free) |
| `081` | Yes, except most of `0819` |
| `090` | Yes, except `0900` |
| `091` | Only `0911` to `0916` |
| `073` and other `07`, `08`, `09` blocks | No |

A number such as `0910 XXX XXXX` has the right shape, passes the usual tutorial regex and is still not a mobile number. The converter above drops it, and so does our job: an invalid number is never checked or billed. The `071` and `072` blocks are the reverse problem: they are new, so a phone library that hasn't been updated since 2024 may reject real customers there. Keep the library current.

Don't use the prefix to guess the network. NCC's tables show which operator a block was first allocated to, but subscribers can port their number and keep it: prepaid and single-account postpaid numbers are ported within 48 hours ([NCC MNP business rules](https://ncc.gov.ng/media/246/view)). For a WhatsApp check the operator doesn't matter; for routing SMS it does, which is what an MNP lookup is for.

## How do you check a list of Nigerian 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](https://app.mobilevalidate.com/jobs) (**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`, 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. Bigger exports go into several jobs.

### What does a result file look like?

Here is a real bulk job run with the public sandbox key on 2026-11-07. The sandbox accepts only our [test values](/docs/test-values), which are UK drama-range numbers, so this shows the file format, not Nigerian data. The CSV has the same two columns as a CRM export, and the job asks for WhatsApp Business status plus porting, with a cost cap:

```bash
printf 'crm_id,phone\nC-101,+447700900001\nC-102,+447700900002\nC-103,+447700900006\nC-104,+447700900003\n' > customers.csv

curl https://api.mobilevalidate.com/v1/jobs \
  -H "Authorization: Bearer mv_test_publicSandboxn9ZgneuhR1B9CRfKG3fulym" \
  -F file=@customers.csv -F checks=whatsapp.business,mnp -F max_cost=5
```

The job came back `completed` at once (test jobs always do). Then `GET /v1/jobs/{id}/download?format=csv` returned this file, shortened here to the useful columns:

```text
row_no,input_masked,e164,whatsapp.business.status,whatsapp.business.registered,whatsapp.business.business,number.mnp.status,number.mnp.porting,number.mnp.mcc_mnc,billed
1,'+44770*****01,+447700900001,completed,true,false,completed,not_ported,23415,false
2,'+44770*****02,+447700900002,completed,false,false,completed,not_ported,23415,false
3,'+44770*****06,+447700900006,completed,true,true,completed,ported,23410,false
4,'+44770*****03,+447700900003,unknown,,,unknown,,,false
```

Three things to notice. The input is masked in the file, so join your `crm_id` back by `row_no`. Row 3 is a WhatsApp Business account on a ported number, the kind of row where the prefix would have named the wrong network. Row 4 is unknown for both checks, and unknown is never billed (`billed` is `false` everywhere here because test keys are never billed). For your file, add `-F default_country=NG` so that `0803…` cells are read as Nigerian.

The estimate before the job also shows the bulk minimum: the bulk price needs **at least 132 numbers from the same country in one job**. A Nigerian list clears it easily; the few `+44` or `+233` customers in the same export may not, and the estimate puts them on their own real-time line before you spend anything. 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 |
| Number portability, MNP (`number.mnp`) | US$2.00 | US$2.00 |
| Live network status, HLR (`number.hlr`) | US$5.00 | US$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](/pricing) always has the current ones.

A worked example with made-up figures, to show the arithmetic: a 40,000-row export converts to 33,600 unique valid Nigerian mobiles; the rest are duplicates, `0800` and `0700` numbers, landlines and cells lost to scientific notation. The WhatsApp job can cost at most 33,600 × US$0.00025 = **US$8.40**. If 9,000 come back not registered and you want to know which of those still work before you send SMS, an HLR job on those 9,000 costs at most 9,000 × US$0.005 = **US$45.00**.

## What share of Nigerian numbers are on WhatsApp?

We don't quote one, and you shouldn't plan with one. Public reports describe the country, not your list. DataReportal's Digital 2026 report for Nigeria counts 165 million cellular mobile connections at the end of 2025, equal to 69.2% of the population, 109 million internet users (45.5%) and 47.8 million social media user identities in October 2025 (20.0%) ([DataReportal, 2025](https://datareportal.com/reports/digital-2026-nigeria)). The report gives no WhatsApp figure.

The gap between connections and internet users is the useful part: many working Nigerian numbers belong to people who aren't online at all, and some connections carry only voice and SMS. A WhatsApp check of a Nigerian list can therefore return a sizeable not-registered group made of numbers that are alive and reachable by SMS or a call. Don't read `registered: false` as "dead number". That is a question for an HLR check.

Two Nigerian rules shape what a number means:

- **Every SIM is tied to a NIN.** Under NCC's business rules of August 2026, the National Identification Number is the only accepted proof of identity for a new subscription, it is mandatory for every SIM activation and every port, and each subscriber may register with one NIN only. Foreigners staying less than two years are exempt ([NCC business rules, 2026](https://ncc.gov.ng/sites/default/files/2026-08/Business-Rules-for-the-Registration-of-Communications-Subscribers-Regulations-2026.pdf)). The registered subscriber isn't always your customer, though: a relative or an employer may own the SIM your customer uses.
- **Idle numbers are recycled.** The same rules say a line with no revenue-generating event for 365 days in a row is delinked from its NIN and barred, and recycled numbers are cleared of the old NIN before reuse. A list from 2024 has drifted: some of its numbers now belong to other people. Re-check old lists before each campaign; our post on [number recycling and list decay](/blog/number-recycling-and-list-decay) explains how.

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

Nigeria is its own market on Meta's rate card, not part of "Rest of Africa". From [our rate-card dataset](/datasets/whatsapp-rate-card-history), transcribed from Meta's USD rate cards:

| WhatsApp category, Nigeria | 1 July 2026 | 1 October 2026 |
|---|---:|---:|
| Authentication | US$0.0067 | US$0.0067 |
| Authentication-international | US$0.0750 | US$0.0750 |
| Utility | US$0.0067 | US$0.0067 |
| Marketing | US$0.0516 | US$0.0516 |
| Service (after 1,000 free per number per month) | free | US$0.0067 |

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](/tools/whatsapp-cost-calculator) applies the October 2026 card to your own monthly volumes.

The authentication-international line is the one Nigerian fintechs and apps with a foreign parent should read. Nigeria has had that rate since 1 February 2025. 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, including where it is listed and where its parent company is, and a business can ask Meta to verify a primary business location ([Meta, 2026](https://developers.facebook.com/documentation/business-messaging/whatsapp/pricing/authentication-international-rates)). For a large sender whose parent sits in, say, the UK, a code to a `+234` user costs about 11 times the local rate.

Marketing is the other surprise: at US$0.0516, a marketing template to Nigeria costs more than four times one to India. That makes a pre-check worth more, not less: knowing who is on WhatsApp keeps the expensive templates for opted-in customers who can receive them.

We don't quote SMS prices here. Nigerian SMS prices vary by route, sender ID 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](/blog/whatsapp-otp-vs-sms-otp-cost) has the formula for cost per verified user.

## What do the NDPA and NCC rules require before you check or message?

Nigeria has two layers: a data protection law that applies to every channel, and telecom rules that apply to SMS and calls on the operators' networks. We read the texts listed under Sources on 2026-11-07. The NDPC's own site refused our requests that day, so the Act and the directive are linked through Internet Archive copies of ndpc.gov.ng.

### The Nigeria Data Protection Act 2023

The Nigeria Data Protection Act (NDPA) was signed on 12 June 2023 ([NDPA, 2023](https://web.archive.org/web/20250531105744/https://ndpc.gov.ng/wp-content/uploads/2024/03/Nigeria_Data_Protection_Act_2023.pdf)). For a list check, five provisions matter:

- **Reach (section 2).** The Act applies to controllers in Nigeria, to processing in Nigeria, and to controllers outside Nigeria that process personal data of a data subject in Nigeria. A UK or US company checking its Nigerian customers is covered.
- **Lawful basis (section 25).** Processing is lawful only with consent for the specific purpose, or where it is necessary for a contract, a legal obligation, vital interests, a public task or legitimate interests. Legitimate interests don't count where the person "would not have a reasonable expectation" of the processing.
- **Consent (section 26).** The controller has to prove consent, and "silence or inactivity of the data subject shall not constitute consent". Consent can be withdrawn as easily as it was given (section 35).
- **Direct marketing (section 36).** People may object to processing for direct marketing at any time, and once they object their data "shall no longer be processed for such purposes".
- **Penalties (section 48).** Up to the greater of ₦10 million or 2% of annual gross revenue for a data controller or processor of major importance, and up to the greater of ₦2 million or 2% for others.

### The 2025 implementation directive (GAID)

The Nigeria Data Protection Commission (NDPC) issued the General Application and Implementation Directive (GAID) on 20 March 2025 ([GAID, 2025](https://web.archive.org/web/20250716004036/https://ndpc.gov.ng/wp-content/uploads/2025/07/NDP-ACT-GAID-2025-MARCH-20TH.pdf)). It became fully effective on 19 September 2025 and replaced the Nigeria Data Protection Regulation of 2019 and its implementation framework ([Aluko & Oyebode, 2025](https://aluko-oyebode.com/insights/ndpc-gaid-takes-effect-on-19-september-is-your-organisation-prepared/)). Three of its articles bear on a WhatsApp list:

- **Consent for marketing (article 18(1)(a)).** Consent is required "for any direct marketing activity". A number collected for delivery updates doesn't come with marketing consent.
- **Erasure on objection (article 38(1)(d)).** A person who objects to direct marketing can have their data erased.
- **Storage limit (article 49(3)).** Where no law sets a retention period, data should be kept no longer than six calendar months after the purpose has been accomplished. Set your result retention to match; ours defaults to 30 days.

### NCC's DND 2442 covers SMS, not WhatsApp

On NCC's direction, every Nigerian operator activated a Do-Not-Disturb service on short code `2442` on 1 July 2016. Subscribers can block all promotional SMS and calls (full DND) or only chosen categories (partial DND). NCC's study counted 22,038,864 subscribers on full DND and 448,985 on partial DND ([NCC DND study](https://ncc.gov.ng/sites/default/files/2024-11/Research-Impact_of_DND_Service_2442_ShortCode.pdf)). Our [Nigeria format guide](/blog/nigeria-phone-number-format#what-are-the-rules-for-sms-sender-ids-and-otp) covers short codes and sender IDs.

WhatsApp messages don't pass through the 2442 filter. A customer on full DND has still told you what they want, though, and section 36 of the NDPA 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](https://whatsappbusiness.com/policy/)). 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, a request with long runs of consecutive numbers is refused as suspected enumeration, each account has a daily cap, and our [acceptable use policy](/legal/acceptable-use) forbids unsolicited bulk messaging and checking ranges to find out who uses an app. 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; 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 or a call; it can be a working number without internet |
| Unknown | No conclusive answer | Keep the current channel, re-check later; free |
| `null` from your converter | Not a valid Nigerian mobile | Fix the record by hand, or ask the customer |

For the not-registered group, an [HLR check](/services/hlr-lookup) answers the next question: is the number reachable on its network at all, or was it barred after a year without use? An [MNP lookup](/services/mnp-lookup) gives the current network for SMS routing, because the `080` or `090` prefix doesn't. Send promotional SMS only to people who consented, and expect the operators to filter DND subscribers. 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](/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), [number portability (MNP)](/services/mnp-lookup) and [live network status (HLR)](/services/hlr-lookup). All four take Nigerian 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](/tools/phone-list-cleaner), check a few numbers' type with the [phone number validator](/tools/phone-number-validator), build a click-to-chat link for your own number with the [WhatsApp link generator](/tools/whatsapp-link-generator), and price your messages with the [WhatsApp cost calculator](/tools/whatsapp-cost-calculator). They run in your browser; the [tools page](/tools) lists the rest. To look up one number's network without an account, the free [carrier lookup](/services/carrier-lookup) answers three numbers a day.
- **Free to build.** [Get a free test key](/get-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](/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 and network facts only, never a name, NIN or address. WhatsApp is named descriptively; MobileValidate is not affiliated with WhatsApp, Meta, NCC or NDPC.

## What are the key takeaways?

- Convert every row to `+234` and 10 digits before upload. `080…`, `234…`, `+2340…`, `009234…` and `80…` are the same customer; `00234…` needs a rewrite before a phone library reads it.
- Format the phone column as text: a cell shown as `2.34E+12` has lost digits for good.
- Nigerian mobiles have exactly 10 digits after +234, but `0700`, `0800`, `0900` and parts of `091` aren't mobiles, and `071` and `072` need an up-to-date library.
- 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 Nigeria lists at US$0.0067; foreign senders above Meta's threshold pay US$0.0750, and marketing costs US$0.0516.
- The NDPA needs a lawful basis for every check and the GAID needs consent for direct marketing; DND 2442 filters SMS. Idle numbers are recycled after 365 days, so re-check old lists, and never check bought or scraped ones.

## Sources

1. [Nigeria Data Protection Act, 2023 (Act No. 37, Official Gazette No. 119, Vol. 110)](https://web.archive.org/web/20250531105744/https://ndpc.gov.ng/wp-content/uploads/2024/03/Nigeria_Data_Protection_Act_2023.pdf) — Nigeria Data Protection Commission (archived copy of ndpc.gov.ng, via the Internet Archive), 2023
2. [Nigeria Data Protection Act General Application and Implementation Directive (GAID) 2025, NDPC/NDP ACT-GAID/01/2025 (20 March 2025)](https://web.archive.org/web/20250716004036/https://ndpc.gov.ng/wp-content/uploads/2025/07/NDP-ACT-GAID-2025-MARCH-20TH.pdf) — Nigeria Data Protection Commission (archived copy of ndpc.gov.ng, via the Internet Archive), 2025
3. [NDPC GAID takes effect on 19 September: is your organisation prepared? (17 September 2025)](https://aluko-oyebode.com/insights/ndpc-gaid-takes-effect-on-19-september-is-your-organisation-prepared/) — Aluko & Oyebode, 2025
4. [Business Rules for the Registration of Communications Subscribers Regulations (August 2026)](https://ncc.gov.ng/sites/default/files/2026-08/Business-Rules-for-the-Registration-of-Communications-Subscribers-Regulations-2026.pdf) — Nigerian Communications Commission (NCC), 2026
5. [A Study on the Impact of DND Service 2442 Short Code in Effective Telecoms Consumer Complaints Management](https://ncc.gov.ng/sites/default/files/2024-11/Research-Impact_of_DND_Service_2442_ShortCode.pdf) — Nigerian Communications Commission (NCC), 2021
6. [Nigeria Mobile Number Portability: Business Rules and Port Order Processes, version 5.0 (December 2020)](https://ncc.gov.ng/media/246/view) — Nigerian Communications Commission (NCC), 2020
7. [Pricing on the WhatsApp Business Platform](https://developers.facebook.com/docs/whatsapp/pricing) — Meta for Developers, 2026
8. [Authentication-international rates](https://developers.facebook.com/documentation/business-messaging/whatsapp/pricing/authentication-international-rates) — Meta for Developers, 2026
9. [WhatsApp Business Messaging Policy (last updated 23 September 2026)](https://whatsappbusiness.com/policy/) — WhatsApp, 2026
10. [Digital 2026: Nigeria](https://datareportal.com/reports/digital-2026-nigeria) — DataReportal (Kepios), 2025

## Frequently asked questions

### How do I convert 080 numbers to +234 for a WhatsApp check?

Drop the leading 0 and add +234: 0803 XXX XXXX becomes +234 803 XXX XXXX, and the same goes for 081, 070, 071, 090 and 091 numbers. A cell that starts with 234 only needs the plus. Every Nigerian mobile has exactly 10 digits after +234, or 11 digits when written at home with the 0.

### Is +2340803… a valid way to write a Nigerian number?

No. The 0 is the trunk prefix used at home and must go once +234 is in front. libphonenumber-js 1.13.13 with the default region NG removed it for us in a test on 2026-11-07, but simple scripts and spreadsheet formulas often don't. Store +234803… without the 0.

### Why does my phone library reject numbers written 00234?

Nigeria's own international dialling prefix is 009, not 00, so a library told the number is Nigerian doesn't strip a leading 00. In our test, 00234 cells came back invalid until we rewrote 00234 to +234 first, while 009234 cells worked. Customers abroad usually type 00234.

### How much does a bulk WhatsApp check of Nigerian 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 the DND 2442 register apply to WhatsApp messages?

The Do-Not-Disturb service on short code 2442, which all Nigerian operators activated on 1 July 2016 on NCC's direction, filters promotional SMS and calls on their networks. WhatsApp messages don't pass through it. WhatsApp's own policy still requires opt-in, and the Nigeria Data Protection Act lets anyone object to direct marketing at any time, on any channel.

### What does the NDPA require before I check or message Nigerian customers?

A lawful basis under section 25 of the Nigeria Data Protection Act 2023, such as consent or a contract with the customer. Silence or inactivity is not consent. The NDPC's General Application and Implementation Directive, in force since 19 September 2025, requires consent for any direct marketing. The Act also covers businesses outside Nigeria that process data of people in Nigeria.

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

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

### Why do old Nigerian numbers fail the WhatsApp check?

Numbers get recycled. Under NCC's business rules of August 2026, a line with no revenue-generating event for 365 days in a row is delinked from its NIN and barred, and recycled numbers are cleared of the old NIN before they go to a new subscriber. A number from an old list may belong to someone else now.
