Guides

Nigeria phone numbers: format, mobile prefixes, validation and messaging rules

Nigerian numbers: the +234 format, the 070, 080, 081, 090 and 091 mobile prefixes, tested validation code, 48-hour porting, NCC's DND 2442 and NIN-SIM rules.

By Published 12 min read

On this page

Nigerian numbers use the country code +234. Mobile numbers have 10 digits after the code and start with 70, 71, 72, 80, 81, 90 or 91 (0803… when dialled at home); in E.164 they look like +234 803 XXX XXXX. Because subscribers can port their number to another operator within 48 hours, the prefix doesn't tell you the current network, and promotional texts must respect the Do-Not-Disturb choices people register through the short code 2442.

This guide is part of our phone numbers by country series. The tables are generated from libphonenumber's metadata, our MNP atlas and our public catalog. Example numbers are masked with X. We read the Nigerian Communications Commission's (NCC) documents on its own site on 2026-09-27, and one 2024 press statement that is no longer online through an Internet Archive copy. This is a summary, not legal advice.

What does a Nigerian phone number look like?

A mobile number is 080X XXX XXXX at home: the trunk prefix 0, a three-digit code such as 803, and seven digits. From abroad it is +234 80X XXX XXXX. Landlines also have 10 digits after +234, starting with an area code.

ItemValue
Country calling code+234
International call prefix (dialling out)009
Trunk prefix (dialling at home)0
Mobile: digits after +23410
Fixed line: digits after +23410
Toll-free: digits after +23410–14
Universal access (UAN): digits after +23410–14
Mobile, national format (masked)080X XXX XXXX
Mobile, international (masked)+234 80X XXX XXXX
Mobile, E.164 (masked)+23480XXXXXXXX
Fixed line, national format (masked)020X XXX XXXX
Fixed line, international (masked)+234 20X XXX XXXX
Fixed line, E.164 (masked)+23420XXXXXXXX

Note the international prefix: in Nigeria you dial out with 009, not 00. That matters for validation, as row 3 of the test table below shows. Store only the E.164 form (+234…).

A +234 chip over an abstract honeycomb of hexagon cells, a matrix of 07, 08 and 09 blocks with 070 to 072, 080, 081, 090 and 091 raised, a switched-on toggle with the code 2442, and an ID card beside a 48H port.A +234 chip over an abstract honeycomb of hexagon cells, a matrix of 07, 08 and 09 blocks with 070 to 072, 080, 081, 090 and 091 raised, a switched-on toggle with the code 2442, and an ID card beside a 48H port.
Nigerian mobiles sit in seven two-digit blocks, and 2442 is where subscribers turn promotions off.

Which prefixes are mobile numbers?

The generator counted every 10-digit number that libphonenumber's mobile pattern for NG accepts, block by block:

National prefixInternationalShare of the block that is mobile (10-digit numbers)3-digit sub-blocks that aren't fully mobile
070+234 7089.0%not mobile: 0700; partly mobile: 0702 (90.0%)
071+234 71100%—
072+234 72100%—
080+234 8090.0%not mobile: 0800
081+234 8192.0%partly mobile: 0819 (20.0%)
090+234 9090.0%not mobile: 0900
091+234 9160.0%not mobile: 0910, 0917–0919

In short: 071, 072 and almost all of 070, 080, 081, 090 and 091 are mobile. 0700 and 0800 are not; NCC's table shares both among value-added service and special number service licensees, and libphonenumber types 0800 numbers as toll-free. The 071 and 072 blocks are the newest: NCC notified them to the ITU as mobile virtual network operator (MVNO) ranges (NCC notification).

070, 080, 081, 090 and 091 by operator

NCC publishes which operator each block was allocated to, in its mobile number allocation table (as at December 2023). Two warnings before you use it:

  • It shows the original operator, not today's network. Porting moves numbers between operators, and the table doesn't follow them.
  • It and the metadata disagree in places. The table marks 0709 as withdrawn and doesn't list 0914, but libphonenumber accepts both as mobile. A library says a number can exist; only a network lookup says it's in service.

How do I validate a Nigerian number in code?

Use a libphonenumber port with full metadata and the default region NG. One Nigerian detail: because the national international prefix is 009, the library doesn't strip a leading 00. Customers abroad often type 00234…, so turn that into +234… first.

JavaScript (npm install libphonenumber-js):

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

/** "0803 …", "+234 803 …", "00234 803 …" → E.164 for a Nigerian mobile, or null. */
export function normalizeNg(raw) {
  // Nigeria's international prefix is 009, so the library won't strip "00" by itself.
  const input = String(raw).trim().replace(/^00(?=\s*234)/, "+");
  const phone = parsePhoneNumberFromString(input, "NG");
  return phone?.isValid() && phone.country === "NG" && phone.getType() === "MOBILE" ? phone.number : null;
}

Python (pip install phonenumbers):

Python
import re

import phonenumbers
from phonenumbers import NumberParseException, PhoneNumberFormat, PhoneNumberType


def normalize_ng(raw: str) -> str | None:
    """E.164 for a Nigerian mobile, or None."""
    raw = re.sub(r"^00(?=\s*234)", "+", raw.strip())  # the library expects 009, Nigeria's own prefix
    try:
        n = phonenumbers.parse(raw, "NG")
    except NumberParseException:
        return None
    if (not phonenumbers.is_valid_number(n) or phonenumbers.region_code_for_number(n) != "NG"
            or phonenumbers.number_type(n) != PhoneNumberType.MOBILE):
        return None
    return phonenumbers.format_number(n, PhoneNumberFormat.E164)

We ran both on 2026-09-27 (libphonenumber-js 1.13.13 with metadata 9.0.39, Python phonenumbers 9.0.40). Both returned an E.164 number for rows 1 to 5 below, including row 3 thanks to the 00 rewrite, and nothing for the rest. The last column is the bare library, without the rewrite. The shape regex column tests the pattern most tutorials give:

#CaseInput (masked)Shape regex ^(?:\+234|00234|0)?[7-9]\d{9}$libphonenumber (NG)
1National, with trunk prefix080X XXX XXXXpassesvalid, MOBILE
2International, with spaces+234 80X XXX XXXXpassesvalid, MOBILE
3International dialling prefix 0000234 80X XXX XXXXpassesinvalid
4E.164+23480XXXXXXXXpassesvalid, MOBILE
5Dashes and brackets(080X) XXX-XXXXpassesvalid, MOBILE
6One digit short080XXXXXXXfailsinvalid
7One digit too many080XXXXXXXXXfailsinvalid
8Mobile shape, unused block 073073XXXXXXXXpassesinvalid
9Fixed line020X XXX XXXXfailsvalid, FIXED_LINE
10Toll-free range0800 XXXXX XXXXXXfailsvalid, TOLL_FREE

Two rows matter. Row 3 is valid input that the bare library rejects, which is why the functions above rewrite 00234. Row 8 is the regex's blind spot: 073 has the right shape, but nothing is allocated there. More languages are in our Python and JavaScript guides.

Does number portability change the carrier?

Yes. Nigeria's porting rules are the Mobile Number Portability Regulations, 2014 (S.I. No. 28 of 2014, gazetted on 28 July 2014) (NCC), and the industry's business rules, first issued in March 2012 and last amended in December 2020 (version 5.0). Under those rules, prepaid numbers and single-account postpaid numbers are ported within 48 hours, and multi-line postpaid accounts within five calendar days (MNP business rules). The Nigeria row of our MNP atlas:

ItemValue
Mobile number portabilityYes
Mobile porting sincenot verified
Maximum porting time48 hours
Governing ruleNCC Regulations on Mobile Number Portability; MNP Business Rules
Published porting volumenone published
Sourcencc.gov.ng, ncc.gov.ng
Checked2026-09-25

NCC's 2026 business rules on subscriber registration add that a National Identification Number (NIN) is mandatory for porting, as for every new SIM (NCC business rules). If you route, price or score fraud by operator, look up the current network per number. Our MNP atlas compares Nigeria with 67 other countries.

Which messaging apps and channels reach people?

SMS reaches every active mobile, within the rules below. For WhatsApp, Meta prices Nigeria as its own market, not as part of "Rest of Africa". Its pricing page lists lower authentication rates for Nigeria from 1 February 2025 and lower authentication-international rates from 1 April 2025 (Meta pricing, read on 2026-09-27).

Nigeria is one of the countries with an authentication-international rate. Meta charges it to eligible businesses based in another country that send one-time passwords to Nigerian numbers. A business becomes eligible after sending more than 750,000 messages outside customer service windows in a moving 30-day period to users in such countries. For OTPs sent from abroad at scale, that rate can matter more than the local one. Our WhatsApp OTP vs SMS OTP post shows how to compare cost per verified user.

We found no published source that measures app use in Nigeria in a way we can verify, so we don't quote shares. Check which apps your own opted-in customers use, route from that, and keep SMS as the fallback. Our channel-by-country guide shows the method.

What are the rules for SMS, sender IDs and OTP?

These summarise NCC's documents as we read them on 2026-09-27. Not legal advice; ask counsel how they apply to you.

Do-Not-Disturb: the 2442 short code

On NCC's direction, every operator activated a Do-Not-Disturb (DND) facility on 1 July 2016, behind the common short code 2442 (NCC DND study):

  • Full DND blocks promotional messages and calls from every sector.
  • Partial DND blocks only chosen categories, such as banking and finance, real estate, education, health, consumer goods, entertainment, tourism, sports and religion.
  • Personal messages aren't affected, and the study describes DND as a bar on bulk and promotional SMS.

NCC's study counts 22,038,864 subscribers on full DND and 448,985 on partial DND in 2019. So a promotional campaign to a Nigerian list will not reach part of it, and the operators decide that, not you.

Short codes and promotions

NCC's Guidelines on Short Code Operations (July 2023) cover services run on short codes by operators, content providers and value-added service (VAS) aggregators. Every advertisement and promotional message must name the operator, content provider and VAS aggregator with their contact details, state prices and whether a service is a subscription, and show the consumer's right to opt in or opt out. Aggregators must give consumers at least two ways to contact the content provider (NCC guidelines).

We didn't find an NCC rule that sets up a register of alphanumeric sender IDs for business SMS. Senders register them with operators and aggregators under contract, so ask your SMS provider what it needs for Nigerian routes.

SIM registration and the NIN

Since 15 September 2024, NCC has expected that no SIM operating in Nigeria is without a valid NIN. Its statement of 28 August 2024 reported more than 153 million SIMs linked, a 96% compliance rate (NCC, via the Internet Archive). The business rules of August 2026 add:

  • the NIN is the only accepted proof of identity for new subscriptions and for porting, and each subscriber may register with one NIN only;
  • operators must be able to count the SIMs registered to a subscriber, within and across networks;
  • numbers with no revenue-generating event for 365 days in a row are delinked and barred, and recycled numbers are cleared of the NIN before reuse;
  • foreigners staying less than two years are exempt from the NIN, with activation tied to their visa.

The 365-day rule is the one that matters for your data. A number collected in 2025 may belong to someone else by 2027, so re-check old numbers before you send them an OTP. Our post on number recycling and list decay explains how.

What that means for OTP

A one-time passcode the user asked for isn't promotional, so DND blocks shouldn't apply to it, but it runs on the same routes. Send it from a sender your provider has set up for transactional traffic, keep it free of offers, and don't reuse numbers collected for verification for marketing unless the person opted in.

What changed recently?

The rows for NG and +234 in our numbering-plan changes dataset, built from libphonenumber's release notes:

Change named in the release notes (2019-01-08 to 2026-09-23)Releases
Numbering-plan metadata (validation, lengths, types)12
Original-carrier prefix data10
Geocoding (area names)4
All26

Latest numbering-plan updates for NG: 2025-04-23 (v9.0.4), 2024-08-22 (v8.13.44), 2024-02-21 (v8.13.31), 2024-01-10 (v8.13.28), 2022-12-07 (v8.13.2).

Nigeria's metadata changes often: twelve numbering updates since 2019, the latest in April 2025 (v9.0.4). An old library may reject numbers in new blocks such as 071 and 072, so keep it current. On the rules side, the August 2026 business rules on subscriber registration are the newest document, and the WhatsApp rate changes are listed above.

What can MobileValidate check for Nigerian numbers?

Generated from our public catalog:

CheckAccepts Nigeria numbersNotes
Format and country (every lookup)YesEach number is parsed first; an invalid number returns invalid_number and is never billed.
Carrier lookup (beta)YesLine type and current network where data exists; no data means unknown, not billed. Real time and bulk.
US/CA carrier lookup (premium)No (US, CA only)Answers unsupported_country for other countries, not billed.
Live network status (HLR)YesLive reachability, porting, roaming (true or false) and current network; unknown is free. Real time and bulk.
Number portability (MNP)YesPorted or not ported, and the current network code; unknown is free. Real time and bulk.
Spam reputationLimited accessAll countries except sanctioned ones; report coverage is strongest in North America and Europe.
Messaging appsYes: WhatsApp, Telegram, Viber, Signal*, iMessage*, RCS*, LINE*, Zalo, Botim*, Facebook Messenger*Registered, not registered or unknown; unknown is free.
Social networksYes: Facebook, Instagram, Threads, X (Twitter), TikTok*, Snapchat*Not for Nigeria numbers: LinkedIn (US, IN only).
Online accounts (Apple, Amazon, Microsoft, Netflix)Yes: Apple, Amazon, Microsoft, NetflixRegistered, not registered or unknown; unknown is free.

* bulk jobs only. Catalog as fetched on 2026-09-27; the live list is at GET /v1/services.

A lookup returns network and registration facts. It never returns a subscriber's name, NIN or address, and we don't offer "number owner" searches.

Here is a practical flow for an opted-in customer list: normalise every number with normalize_ng(), then one bulk job returns WhatsApp and Telegram registration and the current network for each. It uses the public sandbox key mv_test_publicSandboxn9ZgneuhR1B9CRfKG3fulym and our test values, which are UK drama numbers because the sandbox accepts only those. With a live key, pass your normalised numbers. We ran it on 2026-09-27 with Python 3.12 and requests 2.31.

ng_list_profile.py
import os

import requests  # pip install requests

API = "https://api.mobilevalidate.com/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['MOBILEVALIDATE_API_KEY']}"}


def registered(check: dict) -> bool | None:
    """True or False when the check completed; None when it is unknown (unknown is never billed)."""
    return check["registered"] if check["status"] == "completed" else None


def profile(numbers: list[str]) -> list[dict]:
    """One bulk job: WhatsApp and Telegram registration plus the current network for an opted-in list."""
    job = requests.post(f"{API}/jobs", headers=HEADERS, timeout=30,
                        json={"numbers": numbers, "checks": ["whatsapp", "telegram", "carrier"]}).json()
    job = requests.get(f"{API}/jobs/{job['id']}", headers=HEADERS, params={"wait": 30}, timeout=40).json()
    rows, after = [], None
    while True:
        page = requests.get(f"{API}/jobs/{job['id']}/results", headers=HEADERS, timeout=30,
                            params={"limit": 1000, **({"after": after} if after else {})}).json()
        for row in page["data"]:
            c = row["checks"]
            rows.append({"e164": row["e164"], "whatsapp": registered(c["whatsapp.registered"]),
                         "telegram": registered(c["telegram.registered"]),
                         "network": (c["network.carrier"]["attributes"] or {}).get("carrier")})
        if not page["has_more"]:
            return rows
        after = page["next_cursor"]


for r in profile(["+447700900001", "+447700900002", "+447700900003"]):
    print(r)
Test valueSandbox answerRow printed
+447700900001both apps registered, carrier Test Carrierwhatsapp: True, telegram: True, network: 'Test Carrier'
+447700900002neither app, carrier unknown (NO_DATA)whatsapp: False, telegram: False, network: None
+447700900003everything unknown (UPSTREAM_TIMEOUT)whatsapp: None, telegram: None, network: None

Test jobs complete as soon as they are created and are never billed. In live mode, unknown answers aren't billed either, and a live job waits until it is done (wait long-polls for up to 30 seconds per call, so poll again for large lists). The same job with curl:

Shell
curl https://api.mobilevalidate.com/v1/jobs \
  -H "Authorization: Bearer $MOBILEVALIDATE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"numbers": ["+447700900001", "+447700900002", "+447700900003"], "checks": ["whatsapp", "telegram", "carrier"]}'

See bulk jobs for downloads and filters, carrier lookup for the fields, and pricing for prices.

What are the key takeaways?

  • Nigerian mobiles are +234 plus ten digits, 0803 XXX XXXX at home; store the E.164 form.
  • Nigerians dial out with 009, so rewrite a typed 00234 to +234 before parsing.
  • The prefix shows the original operator only: most ports complete within 48 hours.
  • Promotional SMS is filtered by each subscriber's DND 2442 choices; OTPs should carry no offers.
  • Numbers idle for 365 days are barred and recycled, so re-check old lists before sending codes.

Platform, regulator and company names are used descriptively. MobileValidate is not affiliated with any of them.

Sources

  1. Mobile Number Allocation Table (as at December 2023) — Nigerian Communications Commission (NCC), 2023
  2. Notification to ITU of new ITU-T E.164 numbers in the National Numbering Plan (71X and 72X for MVNO services) — Nigerian Communications Commission (NCC), 2024
  3. Mobile Number Portability Regulations, 2014 (S.I. No. 28 of 2014, Official Gazette No. 92, 28 July 2014) — Nigerian Communications Commission (NCC), 2014
  4. Nigeria Mobile Number Portability: Business Rules and Port Order Processes, version 5.0 (December 2020) — Nigerian Communications Commission (NCC), 2020
  5. A Study on the Impact of DND Service 2442 Short Code in Effective Telecoms Consumer Complaints Management — Nigerian Communications Commission (NCC), 2021
  6. Guidelines on Short Code Operations in Nigeria, 2023 — Nigerian Communications Commission (NCC), 2023
  7. Business Rules for the Registration of Communications Subscribers Regulations (August 2026) — Nigerian Communications Commission (NCC), 2026
  8. Press statement: NCC announces final deadline for NIN-SIM linkage compliance, September 14, 2024 (28 August 2024) — Nigerian Communications Commission (NCC), via the Internet Archive, 2024
  9. WhatsApp Business Platform pricing and authentication-international rates — Meta for Developers, 2026
  10. libphonenumber PhoneNumberMetadata.xml (region NG) and release notes — libphonenumber project (Apache License 2.0), 2026

Frequently asked questions

How many digits is a Nigerian mobile number?

Ten digits after the country code +234, or eleven when written nationally with the leading 0. A Nigerian mobile looks like 0803 XXX XXXX at home and +234 803 XXX XXXX in E.164.

What is the Nigeria country code for WhatsApp and international use?

+234. Drop the leading 0: 0803 XXX XXXX becomes +234 803 XXX XXXX. Store that E.164 form and use it everywhere.

Does the 0803 or 0805 prefix tell me the network?

Only the operator the range was allocated to. NCC's portability rules let subscribers move to another operator and keep their number, and prepaid and single-account postpaid ports complete within 48 hours, so look up the current network when it matters.

How do people in Nigeria stop promotional texts?

Through the Do-Not-Disturb short code 2442, which all operators activated on 1 July 2016 on NCC's direction. Subscribers can block all promotional messages (full DND) or only some categories (partial DND). Personal messages aren't affected.

Can a lookup tell me who owns a Nigerian number?

No. Subscriber identity, including the NIN linked to a SIM, stays with the operators and the identity agency. A MobileValidate lookup returns network and registration facts, never a name, NIN or address.

All articles

Know before you send.

Get a free test key in a minute. Live access is approved automatically, usually within 10–15 minutes.