On this page
Nepali numbers use the country code +977. Mobile numbers have 10 digits, start with 9 and are written without a leading 0, so in E.164 they look like +977 98X XXXXXXX. The first three digits name the operator: 984, 985 and 986 are Nepal Telecom, 980, 981 and 982 are Ncell. Nepal has no number portability yet, so the prefix still names the network that issued the number. Marketing SMS needs the recipient's consent.
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 Nepal Telecommunications Authority (NTA) notices, its numbering plan and its monthly indicators on its website on 2026-11-02. Most notices are in Nepali and dated in the Bikram Sambat calendar, so we give the Gregorian month next to each date. Where we rely on press reports instead, we say so. This is a summary, not legal advice.
What does a Nepali phone number look like?
A mobile number is 98X-XXXXXXX at home: a three-digit prefix starting with 9, then seven digits, with no trunk 0. From abroad it is +977 98X XXXXXXX. NTA's National Numbering Allocation Plan, adopted by NTA decision no. 4975 in March 2023, defines exactly this shape: a two-digit system code (96, 97 or 98), a one-digit operator code, then a seven-digit subscriber number, ten digits in all (NTA numbering plan, section 6.3). The same plan fixes the country code at 977 and the mobile country code at 429. Landlines have eight digits after +977.
| Item | Value |
|---|---|
| Country calling code | +977 |
| International call prefix (dialling out) | 00 |
| Trunk prefix (dialling at home) | 0 |
| Mobile: digits after +977 | 10 |
| Fixed line: digits after +977 | 8 |
| Toll-free: digits after +977 | 11 |
| Mobile, national format (masked) | 98X-XXXXXXX |
| Mobile, international (masked) | +977 98X XXXXXXX |
| Mobile, E.164 (masked) | +97798XXXXXXXX |
| Fixed line, national format (masked) | 01-4XXXXXX |
| Fixed line, international (masked) | +977 1 4XXXXXX |
| Fixed line, E.164 (masked) | +97714XXXXXX |
Store only the E.164 form. Nepali forms often collect numbers as 98XXXXXXXX, 97798XXXXXXXX without a plus, +977-98X-XXXXXXX, with a stray 0 in front (098…), or in Devanagari digits (९८…). A numbering-plan library with the default region NP turns most of these into +9779…; the Devanagari digits need one extra step in JavaScript, shown below.
For WhatsApp, an SMS API or a CRM, the rule is the same: +977 plus the ten mobile digits, with nothing dropped. That differs from neighbours such as India and Bangladesh, where people write a leading 0 that you must remove.
Which prefixes are mobile numbers, and which operator holds each?
Every mobile number starts 9. For each 2-digit block, the generator counted every 10-digit number that libphonenumber's mobile pattern for NP accepts:
| National prefix | International | Share of the block that is mobile (10-digit numbers) | 3-digit sub-blocks that aren't fully mobile |
|---|---|---|---|
90 | +977 90 | 10.0% | not mobile: 901–909 |
96 | +977 96 | 40.0% | not mobile: 964–969 |
97 | +977 97 | 60.0% | not mobile: 973, 977–979 |
98 | +977 98 | 70.0% | not mobile: 983, 987, 989 |
The 96, 97 and 98 rows are the consumer mobile blocks. Inside them, only some three-digit codes are assigned, which is why no row is 100%. The 90 row is a single code, 900: NTA's plan reserves the 90 system code for Internet of Things and machine-to-machine numbers (section 6.5), so the code below leaves it out of a list of people's phones.
Mobile prefixes and the companies behind them
The operator codes come from the table in section 6.3 of NTA's plan. Ncell's 971 came later:
| Prefix | International | Range holder | Status (as of 2 November 2026) |
|---|---|---|---|
984, 985, 986 | +977 984 … | Nepal Telecom (Nepal Doorsanchar Company) | Active. The state-owned operator reported 15,885,028 mobile subscriptions at the end of August 2026. |
974, 975, 976 | +977 974 … | Nepal Telecom | Active, same network. |
980, 981, 982 | +977 980 … | Ncell | Active. Ncell reported 14,046,382 subscriptions at the end of August 2026. |
970 | +977 970 | Ncell | Active. |
971 | +977 971 | Ncell | New range, approved by NTA on 28 May 2025 because 980, 981, 982 and 970 were nearly full (Himalayan Times, 2025). Ncell began issuing it in December 2025 and asked banks and other services to accept it (Kathmandu Post, 2025). |
961, 962, 988 | +977 961 … | Smart Telecom (Smart Cell) | Licence lapsed on 16 April 2023. |
972 | +977 972 | United Telecom (UTL) | Licence lapsed on 5 September 2026. |
The subscriber counts are from NTA's Telecommunication Indicators for Bhadra 2083, which give data as of the end of August 2026 and list mobile subscriptions only for Nepal Telecom and Ncell (NTA indicators). In practice, Nepal is a two-network market.
libphonenumber also accepts 960 and 963 as mobile, which NTA's 2023 plan doesn't list. We found no NTA document that explains them, so treat them as unassigned for routing until you see a live answer.
What happened to Smart Cell and UTL numbers?
Both companies lost their licences for not renewing them, under section 25(5) of the Telecommunications Act, 2053 (1997):
- Smart Telecom. NTA said in May 2023 that the licence had lapsed automatically from 3 Baisakh 2080 (16 April 2023) and that it had taken control of the company's property, infrastructure and network (NTA notice, 2023). The fight over those assets continued into 2026: a bank auctioned assets pledged as collateral in October 2025, Ncell won the auction, and in 2026 government attorneys filed a case arguing that the auction was unlawful because the assets were already under state control. Those are allegations for a court to decide (Nepal News, 2026).
- UTL. NTA said in September 2026 that United Telecom Limited's basic telephone licence (no. BTSL-02) had lapsed automatically from 20 Bhadra 2083 (5 September 2026) and told the company to hand its infrastructure and network to the regulator (NTA notice, 2026). UTL owed about Rs 31 billion and asked for more time to pay (Kathmandu Post, 2026).
For your data, this means a 961, 962, 988 or 972 number still passes every format check, because the ranges are in the plan and in libphonenumber, but it may not reach anyone. Old customer lists from before 2023 often contain Smart Cell numbers. Check reachability before you send OTPs or count such a number as a contact.
What are Nepal's landline area codes?
Landlines have eight national digits. In the Kathmandu Valley the format is X-Y-ZZZZZZ: area code 1, one operator digit and six subscriber digits. Elsewhere it is XX-Y-ZZZZZ: a two-digit area code, one operator digit and five subscriber digits. Nepal Telecom holds operator digits 4, 5 and 6 (NTA numbering plan, section 6.2). At home you dial a 0 before the area code: 01-4XXXXXX in Kathmandu, 061-5XXXXX in Pokhara.
Some common area codes, from the list on Wikipedia:
| Area | Area code | National format (masked) | International (masked) |
|---|---|---|---|
| Kathmandu, Lalitpur, Bhaktapur | 1 | 01-4XXXXXX | +977 1 4XXXXXX |
| Biratnagar | 21 | 021-4XXXXX | +977 21 4XXXXX |
| Dharan | 25 | 025-5XXXXX | +977 25 5XXXXX |
| Janakpur | 41 | 041-5XXXXX | +977 41 5XXXXX |
| Birgunj | 51 | 051-5XXXXX | +977 51 5XXXXX |
| Bharatpur (Chitwan) | 56 | 056-5XXXXX | +977 56 5XXXXX |
| Hetauda | 57 | 057-5XXXXX | +977 57 5XXXXX |
| Pokhara | 61 | 061-5XXXXX | +977 61 5XXXXX |
| Butwal | 71 | 071-5XXXXX | +977 71 5XXXXX |
| Nepalgunj | 81 | 081-5XXXXX | +977 81 5XXXXX |
| Dhangadhi | 91 | 091-5XXXXX | +977 91 5XXXXX |
Landlines are a small share of the market: NTA counted 424,647 fixed voice lines at the end of August 2026, against almost 30 million mobile subscriptions. Most of those fixed lines are voice over Nepal Telecom's fibre broadband. Toll-free numbers start 1660 or 1800, and emergency numbers are short codes: 100 police, 101 fire, 102 ambulance.
How do I validate a Nepali number in code?
Use a libphonenumber port with full metadata and the default region NP, then keep only the 96, 97 and 98 blocks.
Python (pip install phonenumbers):
import phonenumbers
def normalize_np(raw: str) -> str | None:
"""E.164 for a Nepali mobile number (+977 9XX...), or None."""
try:
n = phonenumbers.parse(raw, "NP")
except phonenumbers.NumberParseException:
return None
if (not phonenumbers.is_valid_number(n) or phonenumbers.region_code_for_number(n) != "NP"
or phonenumbers.number_type(n) != phonenumbers.PhoneNumberType.MOBILE):
return None
e164 = phonenumbers.format_number(n, phonenumbers.PhoneNumberFormat.E164)
return e164 if e164[4:6] in ("96", "97", "98") else None # skip 900 (machine-to-machine)
# NTA National Numbering Allocation Plan 2079, plus Ncell's 971 (approved 28 May 2025)
RANGE_HOLDER = {
"984": "Nepal Telecom", "985": "Nepal Telecom", "986": "Nepal Telecom",
"974": "Nepal Telecom", "975": "Nepal Telecom", "976": "Nepal Telecom",
"980": "Ncell", "981": "Ncell", "982": "Ncell", "970": "Ncell", "971": "Ncell",
"961": "Smart Telecom (licence lapsed 2023)", "962": "Smart Telecom (licence lapsed 2023)",
"988": "Smart Telecom (licence lapsed 2023)", "972": "UTL (licence lapsed 2026)",
}
def range_holder(e164: str) -> str:
return RANGE_HOLDER.get(e164[4:7], "unknown")JavaScript (npm install libphonenumber-js):
import { parsePhoneNumberFromString } from "libphonenumber-js/max";
/** "98X-XXXXXXX", "+977 98X …", "00977…" or Devanagari digits → E.164 for a Nepali mobile, or null. */
export function normalizeNp(raw) {
const ascii = String(raw).replace(/[०-९]/g, (d) => String(d.charCodeAt(0) - 0x0966)); // ०–९ → 0–9
const phone = parsePhoneNumberFromString(ascii, "NP");
return phone?.isValid() && phone.country === "NP" && phone.getType() === "MOBILE" && /^\+9779[678]/.test(phone.number)
? phone.number : null;
}We ran both on 2026-11-02 (Python 3.12 with phonenumbers 9.0.40, Node.js 24 with libphonenumber-js 1.13.13). Both returned an E.164 number for rows 1 to 5 below and nothing for the rest. Both also accepted a number with a stray leading 0, and both returned an E.164 number for a 971, 961 or 972 number and nothing for a 900 number. One difference showed up: Python's library accepted a number typed in Devanagari digits, but libphonenumber-js returned nothing until we added the digit conversion above. range_holder() returned the names in the table above, and unknown for anything else. The shape regex column tests the pattern most tutorials give, after spaces, dashes and brackets are removed:
| # | Case | Input (masked) | Shape regex ^(?:\+977|00977|0)?9\d{9}$ | libphonenumber (NP) |
|---|---|---|---|---|
| 1 | National format (no trunk prefix written) | 98X-XXXXXXX | passes | valid, MOBILE |
| 2 | International, with spaces | +977 98X XXXXXXX | passes | valid, MOBILE |
| 3 | International dialling prefix 00 | 00977 98X-XXXXXXX | passes | valid, MOBILE |
| 4 | E.164 | +97798XXXXXXXX | passes | valid, MOBILE |
| 5 | Dashes and brackets | (98X) XXXXXXX | passes | valid, MOBILE |
| 6 | One digit short | 98XXXXXXX | fails | invalid |
| 7 | One digit too many | 98XXXXXXXXX | fails | invalid |
| 8 | Mobile shape, unused block 91 | 91XXXXXXXX | passes | invalid |
| 9 | Fixed line | 01-4XXXXXX | fails | valid, FIXED_LINE |
| 10 | Toll-free range | 166XXXXXXXX | fails | valid, TOLL_FREE |
Row 8 is the one to remember. 91 is shaped like a mobile number and passes the regex, but no operator holds it, so an OTP sent to it is wasted. A regex also can't know that 961 belongs to a network without a licence. Our post on why an E.164 regex is not enough shows the same problem in other countries, and our Python and JavaScript guides cover more languages.
One version note: libphonenumber accepted 971 only from release 9.0.10 (17 July 2025), when the project added it to Nepal's mobile pattern and to its carrier data. An older library rejects every new Ncell number as invalid, so check the version in your lock file.
Does Nepal have mobile number portability?
No. As of 2 November 2026, Nepal has no mobile number portability (MNP): a subscriber who moves from Nepal Telecom to Ncell, or back, gets a new number. NTA published a draft Mobile Number Portability Regulation, 2078 for comments in November 2021 (NTA notice). The draft would:
- Cover mobile voice subscribers who want to keep their number when they change operator.
- Require 90 days of use. A number could be ported once it had been active for 90 days on the current network, was registered to the applicant in that operator's SIM database, had no unpaid dues and wasn't blocked.
- Use a central clearing house. A Number Portability Clearing House would process requests and keep the routing data.
- Start on a date NTA sets. Every mobile operator would have to offer porting from that date and test its systems beforehand.
(NTA draft regulation, rules 9, 18 and 19; Kathmandu Post, 2021.) We found no final regulation, launch date or clearing-house tender on NTA's website.
The Nepal row of our MNP atlas:
Our MNP atlas has no verified row for Nepal yet.
What this means today: the three-digit prefix is a reliable guide to the network that issued a number, because numbers can't move. What it can't tell you is whether that network still serves the number. Smart Telecom's and UTL's ranges are the obvious case, and recycled or disconnected numbers are the everyday one. A live network (HLR) check answers that. When porting does start, a prefix table will stop being enough for routing, so build on a per-number lookup now. Our MNP atlas compares other countries, and our SMS routing with MNP and HLR use case shows where a lookup pays off.
Which messaging apps and channels reach people?
SMS reaches every active mobile on both networks. For messaging apps, September 2025 showed how quickly access can change. The government ordered NTA to block 26 social media platforms that hadn't registered under the Directive on Regulating the Use of Social Media, 2023. WhatsApp was on the list, Viber wasn't, and many users rushed to download Viber as the ban approached (Kathmandu Post, 5 September 2025). After deadly protests, the Cabinet lifted the ban on 8 September 2025, and internet providers unblocked the platforms that evening (Kathmandu Post, 10 September 2025).
We didn't find a published source that measures messaging-app use in Nepal in a way we can verify, so we don't quote shares. The practical answer is to measure your own opted-in customers. Check which apps they are registered on, offer more than one channel, and keep SMS as the fallback for OTPs. Our channel-by-country guide shows the method.
How do I check WhatsApp or Viber registration for a Nepali customer list?
Normalise every row first, then run one check per number. A check tells you whether a number is registered at the time of the check. Like any registration check, it can't tell you whether the person wants your messages:
| Answer | What it means | What to do |
|---|---|---|
registered: true | The number has an account at checked_at | Offer that app to customers who opted in to it |
registered: false | No account at checked_at | Use SMS or another channel |
unknown | No conclusive answer (not billed) | Keep the current channel; retry later |
invalid_number | Failed format validation (not billed) | Fix the data at the source |
For lists, use a bulk job. WhatsApp checks get the bulk price only for groups of at least 132 numbers from the same country in one job, so collect a day's Nepali numbers into one job rather than sending many small ones. Upload a CSV whose numbers are written nationally (98X-XXXXXXX) with default_country=NP, and add the live network check so you can drop unreachable numbers in the same pass:
curl https://api.mobilevalidate.com/v1/jobs \
-H "Authorization: Bearer $MOBILEVALIDATE_API_KEY" \
-F file=@customers.csv -F checks=hlr,whatsapp,viber -F default_country=NPSend the same body to POST /v1/jobs/estimate first: it is free and shows the maximum cost before anything runs. Unknown or inconclusive results are never charged; see current prices. Our bulk WhatsApp number check post walks through the whole flow, and our Viber number check guide covers Viber.
What are the rules for SMS, sender IDs and OTP?
These summarise NTA notices and two Acts as we read them on 2026-11-02, plus press reports where we say so. Not legal advice; ask counsel how they apply to you.
Who may deliver A2P SMS into Nepal
On 1 Shrawan 2082 (17 July 2025), NTA reminded the market that only companies holding a basic telecommunications, international trunk (ILD) or basic telephone licence may terminate incoming international SMS in Nepal. It said it had learned that other companies were terminating international application-to-person (A2P) SMS over licensed networks, told everyone to stop, and warned of action under the law (NTA notice, 2025). In plain terms: international OTP and alert traffic must reach Nepal Telecom or Ncell through a licensed route, not through grey SIM boxes or unlicensed resellers. Ask your SMS provider how its Nepal route is connected.
We didn't find an NTA directive on registering alphanumeric sender IDs on NTA's website, and the operators set their own requirements. Ask your provider which sender IDs each network accepts before a launch.
Consent for promotional messages
Section 10 of the Advertisement (Regulation) Act, 2076 (2019) says no one may send advertising messages to anyone's mobile or email by SMS or email without that person's consent. Government notices in the public interest and disaster warnings are exempt. Under section 25, a breach can be fined up to NPR 100,000 (Nepal Law Commission). The Act was last amended in 2082 (2025).
NTA has also told mobile operators not to carry false or misleading SMS, citing section 47(3) of the Telecommunications Act, which lets it recover damages and fine anyone who misuses a telecom service (NTA notice). In June 2026 (2 Asar 2083) it warned the public about phishing links in SMS and messaging-app messages from unknown numbers (NTA notice, 2026). Keep links in your messages on your own domain, and never ask for codes or passwords by message.
Personal data
The Privacy Act, 2075 (2018) lists a person's address, telephone number and email address as personal information. Consent is needed to collect personal data, and data collected with consent may be used only for the purpose it was collected for (section 12). Section 26 bars a public body or company from using or passing on personal information without consent, outside a short list of legal exceptions. Several breaches carry up to three years in prison, a fine of up to NPR 30,000, or both (Nepal Law Commission).
The January 2026 bulk SMS case shows how this plays out. About six million political messages reached mainly Nepal Telecom subscribers through a bulk SMS company. NTA opened an investigation into where the numbers came from, and a lawyer quoted by the Kathmandu Post said the messages breached the Privacy Act, the Advertisement (Regulation) Act and the Telecommunications Act (Kathmandu Post, 2026). A purchased list of Nepali numbers is a legal risk as well as a deliverability one.
A registration check on a customer's number is processing of personal data, so follow the baseline in our consent guide: your own customers, a stated purpose, minimal data and honoured objections.
What that means for OTP
A one-time passcode the user asked for isn't advertising, but it travels the same routes. Send it through a provider with a licensed route into Nepal, keep it free of offers, and don't reuse numbers collected for verification for marketing unless the person opted in. Before you send to an old number, check that it is still reachable, especially in the Smart Cell and UTL ranges.
Does the MDMS handset registry affect phone numbers?
No, it affects devices. The Mobile Device Management System (MDMS) is NTA's register of handset IMEI numbers, used against illegal imports and to track or block lost and stolen phones. NTA put it into force from 1 Jestha 2080 (15 May 2023): phones cleared by customs are registered automatically, and travellers can register a phone they brought for personal use online with a passport or citizenship certificate and the travel stamps (NTA notice, 2023). NTA's FAQ says the online registration is free and answered within two to three days (NTA MDMS FAQ). MDMS doesn't change number formats, prefixes or SIM ownership, so it doesn't affect how you validate or store a number.
What changed recently?
The rows for NP and +977 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) | 6 |
| Original-carrier prefix data | 4 |
| Short numbers | 1 |
| All | 11 |
Latest numbering-plan updates for NP: 2025-07-17 (v9.0.10), 2024-02-21 (v8.13.31), 2022-07-19 (v8.12.52), 2022-05-05 (v8.12.48), 2020-10-29 (v8.12.12).
The July 2025 metadata release is the one that matters: it added Ncell's 971. Beyond the library, the changes since 2025 are:
- May to December 2025: NTA approved Ncell's
971range, and Ncell started issuing it. - July 2025: NTA's notice that only licensed operators may terminate international A2P SMS.
- September 2025: the block of unregistered social media platforms, WhatsApp included, lifted on 8 September.
- January 2026: the six-million-message bulk SMS investigation.
- June 2026: NTA's warning about phishing SMS.
- September 2026: UTL's licence lapsed, so
972joins Smart Cell's ranges as numbers without a licensed network.
What can MobileValidate check for Nepali numbers?
Generated from our public catalog:
| Check | Accepts Nepal numbers | Notes |
|---|---|---|
| Format and country (every lookup) | Yes | Each number is parsed first; an invalid number returns invalid_number and is never billed. |
| Carrier lookup (beta) | Yes | Line 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) | Yes | Live reachability, porting, roaming (true or false) and current network; unknown is free. Real time and bulk. |
| Number portability (MNP) | Yes | Ported or not ported, and the current network code; unknown is free. Real time and bulk. |
| Spam reputation | Limited access | All countries except sanctioned ones; report coverage is strongest in North America and Europe. |
| Messaging apps | Yes: WhatsApp, Telegram, Viber, Signal*, iMessage*, RCS*, LINE*, Zalo, Botim*, Facebook Messenger* | Registered, not registered or unknown; unknown is free. |
| Social networks | Yes: Facebook, Instagram, Threads, X (Twitter), TikTok*, Snapchat* | Not for Nepal numbers: LinkedIn (US, IN only). |
| Online accounts (Apple, Amazon, Microsoft, Netflix) | Yes: Apple, Amazon, Microsoft, Netflix | Registered, not registered or unknown; unknown is free. |
* bulk jobs only. Catalog as fetched on 2026-11-02; the live list is at GET /v1/services.
A lookup returns network and registration facts. It never returns a subscriber's name, national ID or address, and we don't offer "number details" searches.
Here is a practical flow for a customer list: normalise with normalize_np(), then one real-time lookup gives the live network status and WhatsApp registration. For Nepal, the network status is the useful part: it tells you whether a 961 or 972 number, or an old 98X one, still reaches a phone. The example uses the public sandbox key mv_test_publicSandboxn9ZgneuhR1B9CRfKG3fulym and our test values. The sandbox accepts only those UK drama numbers, so the example uses them. With a live key, pass the output of normalize_np().
import os
import requests # pip install requests
API = "https://api.mobilevalidate.com/v1/lookup"
KEY = os.environ["MOBILEVALIDATE_API_KEY"]
def reach(numbers: list[str]) -> dict[str, dict]:
"""Live network status and WhatsApp registration per number. None means we don't know."""
r = requests.post(API, headers={"Authorization": f"Bearer {KEY}"}, timeout=15,
json={"numbers": numbers, "checks": ["hlr", "whatsapp"], "wait": 5})
r.raise_for_status()
out = {}
for row in r.json()["results"]:
hlr, wa = row["checks"]["number.hlr"], row["checks"]["whatsapp.registered"]
attrs = hlr["attributes"] or {}
out[row["e164"]] = {
"status": attrs.get("status"),
"network": attrs.get("network"),
"whatsapp": wa["registered"] if wa["status"] == "completed" else None,
}
return out
for number, info in reach(["+447700900001", "+447700900002", "+447700900005"]).items():
print(number, info)What the test values returned when we ran it on 2026-11-02:
| Test value | status | network | whatsapp |
|---|---|---|---|
+447700900001 | reachable | Test Mobile | True |
+447700900002 | unreachable | Test Mobile | False |
+447700900005 | None (unsupported_country) | None | None |
Keep None apart from False: None means we don't know, and it's never billed. Requests with 20 or more consecutive numbers are refused (403 suspected_enumeration), and our acceptable use policy forbids finding recipients for unsolicited messages. People can object through our opt-out form. See HLR lookup, WhatsApp number check and Viber number check for the fields.
What are the key takeaways?
- Nepali mobiles are
+977plus ten digits starting9, written98X-XXXXXXXat home with no leading0; store the E.164 form. 984,985,986,974,975and976are Nepal Telecom;980,981,982,970and971are Ncell. Use libphonenumber 9.0.10 or later so971validates, and convert Devanagari digits before parsing in JavaScript.- There is no number portability yet, so the prefix names the issuing network. But Smart Cell's
961,962,988and UTL's972have no licensed network, so check reachability, not just format. - Send promotional SMS only with consent (Advertisement Act, section 10), treat numbers as personal data (Privacy Act), and route international A2P traffic only through licensed operators.
- Check WhatsApp or Viber registration only for customers you hold lawfully, keep
unknownapart fromfalse, and never treat registration as consent.
Platform, regulator and company names are used descriptively. MobileValidate is not affiliated with any of them.
Sources
- National Numbering Allocation Plan (NTA Decision No. 4975 of 2079-12-02, March 2023) — Nepal Telecommunications Authority, 2023
- Telecommunication Indicators, Bhadra 2083 (data as of end of August 2026) — Nepal Telecommunications Authority, 2026
- Draft Mobile Number Portability (MNP) Regulation, 2078 — Nepal Telecommunications Authority, 2021
- Notice inviting comments on mobile number portability (first published 2078-08-01, November 2021) — Nepal Telecommunications Authority, 2021
- Urgent notice on dues to be recovered from Smart Telecom Pvt. Ltd. (2080-02-08, May 2023) — Nepal Telecommunications Authority, 2023
- Urgent notice on the automatic cancellation of United Telecom Limited's licence (2083-05-26, September 2026) — Nepal Telecommunications Authority, 2026
- Public notice on not terminating unauthorised Application-to-Person (A2P) SMS (1 Shrawan 2082, July 2025) — Nepal Telecommunications Authority, 2025
- Urgent notice to mobile service providers on not sending misleading messages — Nepal Telecommunications Authority, 2026
- Urgent notice on SMS with phishing links from unknown or unauthorised numbers (2083-03-02, June 2026) — Nepal Telecommunications Authority, 2026
- Notice on implementing the Mobile Device Management System (MDMS) from 1 Jestha 2080 (2080-01-30, May 2023) — Nepal Telecommunications Authority, 2023
- MDMS: frequently asked questions and answers — Nepal Telecommunications Authority, 2024
- The Privacy Act, 2075 (2018), Act No. 14 of 2075, authenticated 18 September 2018 — Nepal Law Commission, 2018
- Advertisement (Regulation) Act, 2076 (2019), as amended in 2082 (2025) — Nepal Law Commission, 2025
- Ncell to launch new mobile number range starting with 971 (1 July 2025) — The Himalayan Times, 2025
- Ncell starts issuing new mobile numbers beginning with 971 (9 December 2025) — The Kathmandu Post, 2025
- Want to change operator and retain your number? Option is on the cards (22 November 2021) — The Kathmandu Post, 2021
- UTL licence lapses, company seeks more time to clear Rs31 billion dues (12 September 2026) — The Kathmandu Post, 2026
- Everything you need to know about the Ncell–Smart Telecom case (12 August 2026) — Nepal News, 2026
- Confusion as Nepal bans unregistered social media sites (5 September 2025) — The Kathmandu Post, 2025
- Nepal lifts social media ban in wake of deadly crackdown that killed 19 protesters (10 September 2025) — The Kathmandu Post, 2025
- Bulk SMS calling for royalist protests sparks privacy concerns (14 January 2026) — The Kathmandu Post, 2026
- Telephone numbers in Nepal (area code list) — Wikipedia, 2026
- libphonenumber PhoneNumberMetadata.xml (region NP), carrier data (977.txt) and release notes — libphonenumber project (Apache License 2.0), 2026
Frequently asked questions
How many digits is a Nepali mobile number?
Ten. A mobile number is 9XX followed by seven digits, for example 98X-XXXXXXX at home, and the same ten digits follow the country code +977 from abroad: +977 98X XXXXXXX. Unlike landlines, mobile numbers are dialled without a leading 0. Landlines have eight digits after +977, for example 01-4XXXXXX in Kathmandu.
What is the Nepal country code for WhatsApp and international use?
+977. Put +977 in front of the ten-digit mobile number and remove spaces and dashes: 98X-XXXXXXX becomes +97798XXXXXXXX. There is no 0 to drop for mobiles. Store that E.164 form and use it for WhatsApp, SMS APIs and every other platform.
Which operator does 984, 985, 986, 980, 981 or 982 belong to?
In the Nepal Telecommunications Authority's numbering plan, 984, 985 and 986 (and 974, 975, 976) belong to Nepal Telecom, and 980, 981, 982 and 970 to Ncell. Ncell added 971 in December 2025. 961, 962 and 988 were Smart Telecom's and 972 was UTL's; both licences have lapsed. Because Nepal has no number portability yet, the prefix still shows the network that issued the number.
Does Nepal have mobile number portability?
No, not as of 2 November 2026. The Nepal Telecommunications Authority published a draft Mobile Number Portability Regulation in November 2021, which would let a subscriber port after 90 days of use through a central clearing house, but the service has not launched. A subscriber who changes operator gets a new number.
Are Smart Cell numbers (961, 962, 988) still working?
Smart Telecom's licence lapsed on 16 April 2023 and the regulator took control of its network and assets. The regulator's August 2026 indicators list mobile subscribers only for Nepal Telecom and Ncell. A 961, 962 or 988 number still passes a format check, so check whether it is reachable before you send an OTP to it.
Do I need consent to send marketing SMS in Nepal?
Yes. Section 10 of the Advertisement (Regulation) Act, 2076 (2019) bars advertising messages by SMS or email without the recipient's consent, with fines of up to NPR 100,000. The Privacy Act, 2075 (2018) treats a telephone number as personal information that may not be collected or used for another purpose without consent.
Can I check whether Nepali customers are on WhatsApp or Viber?
Yes, for numbers you hold with a lawful basis, such as your own customers or sign-ups. A MobileValidate check answers registered, not registered or unknown with a checked_at date, and unknown answers are not billed. It never returns a name or profile, and requests that look like scans of number ranges are refused.
Related services and guides
More from the blog
All articlesGuides
Phone numbers by country: formats, portability, channels and rules
How phone numbers differ by country: formats and E.164, numbering changes, portability, line types, messaging channels, and a dated tracker of calling and texting rules.
11 min read
Developers
E.164 phone number format: a practical guide for developers
How to normalize phone numbers to E.164 in JavaScript and Python, the pitfalls that break deduplication, and how the MobileValidate API normalizes input.
8 min read
Research
Mobile number portability by country: a 2026 atlas
Mobile number portability in 68 countries: launch dates, porting times and published volumes, with a source per row, plus why prefix carrier lookups fail.
9 min read

