Guides

Cambodian phone numbers: format, operator prefixes, validation and messaging rules

Cambodia phone number format: +855 and 8- or 9-digit mobiles, TRC prefixes for Cellcard, Smart, Metfone and Seatel, tested code, SIM rules and Telegram checks.

By Published 19 min readHow we research and fact-check

On this page

Cambodian numbers use the country code +855. Mobile numbers have 8 or 9 digits after the code: a two-digit operator prefix and six or seven digits, written 0XX XXX XXX or 0XX XXX XXXX at home and +855 XX XXX XXX or +855 XX XXX XXXX in E.164. The prefix shows the operator (Cellcard, Smart, Metfone or Seatel), and because Cambodia has no mobile number portability as of November 2026, it still does. SIMs must be registered with ID, and marketing messages must offer an easy way to refuse them.

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, or are the example numbers published in libphonenumber. The Telecommunication Regulator of Cambodia (TRC) website didn't load for our tools, so we read its prefix list and statistics in Internet Archive copies from 2025 and 2026. We read the other sources on 2026-11-07. Where we rely on press reports, we say so. This is a summary, not legal advice.

What does a Cambodian phone number look like?

A mobile number is 0XX XXX XXX or 0XX XXX XXXX at home: the trunk prefix 0, a two-digit operator code and six or seven digits. From abroad it is +855 XX XXX XXX or +855 XX XXX XXXX. The only national numbering plan Cambodia has filed with the International Telecommunication Union (ITU) is from 2009. It describes a closed scheme of country code, national destination code and subscriber number, with 0 dialled before the code at home (ITU, 2009). Its operator table is long out of date; the TRC's prefix list below is the current reference.

ItemValue
Country calling code+855
International call prefix (dialling out)00[14-9] (pattern: more than one prefix is used)
Trunk prefix (dialling at home)0
Mobile: digits after +8558, 9
Fixed line: digits after +8558, 9
Toll-free: digits after +85510
Premium rate: digits after +85510
Mobile, national format (masked)091 XXX XXX
Mobile, international (masked)+855 91 XXX XXX
Mobile, E.164 (masked)+85591XXXXXX
Fixed line, national format (masked)023 XXX XXXX
Fixed line, international (masked)+855 23 XXX XXXX
Fixed line, E.164 (masked)+85523XXXXXXX

Store only the E.164 form, +855 plus eight or nine digits, with no spaces and no 0 after 855. Cambodian sign-up forms often collect 0XXXXXXXX, 855XXXXXXXX without a plus, +855 0… with a stray zero, or 00855…. A numbering-plan library with the default region KH handles most of these. The 00855 form needs one extra step, explained next.

Why does 00855 turn into a Brazilian number?

In Cambodia, calls abroad go through gateway codes that start with 00: the 2009 plan lists 001, 007 and 008, and libphonenumber accepts 001 and 004 to 009. That makes 00855… ambiguous. A library told the number comes from Cambodia reads 008 as the exit code and 55 as the country code of Brazil, so 00855 9X XXX XXX becomes an invalid Brazilian number. Row 3 of the test table below shows it as invalid.

People type 00855 because 00 is the exit code in most countries. The fix is one line: rewrite a leading 00 followed by 855 to + before parsing. Don't rewrite every 00, or 001855…, a real Cambodian way to dial, turns into a North American number.

A wide card with a +855 pill and two number rows led by 8 and 9 pills with prefix cells and six digit dots; a column of chat bubbles under a chat tile with a check; a SIM with a risk badge and an ID tile; two towers marked MNP with an x.A wide card with a +855 pill and two number rows led by 8 and 9 pills with prefix cells and six digit dots; a column of chat bubbles under a chat tile with a check; a SIM with a risk badge and an ID tile; two towers marked MNP with an x.
Eight or nine digits after +855, many operator prefixes, no porting and ID-checked SIMs.

Which prefixes are mobile numbers?

Mobile prefixes start with 01, 03, 06, 07, 08 or 09, but not every block in those ranges is in use. For each 2-digit block, the generator counted every 8- and 9-digit number that libphonenumber's mobile pattern for KH accepts:

National prefixInternationalShare of the block that is mobile (8, 9-digit numbers)3-digit sub-blocks that aren't fully mobile
0AA, for 34 blocks AA = 10, 11, 13–17, 19, 60, 61, 66–69, 70, 77–79, 80, 81, 83–87, 89, 90–95, 98, 99+855 AA100%—
0AA, for 3 blocks AA = 12, 18, 97+855 AA100%—
0AA, for 24 blocks AA = 23–26, 32–36, 42–44, 52–55, 62–65, 72–75+855 AA1.0%not mobile: 0AA0, 0AA1, 0AA2, 0AA3, 0AA5, 0AA6, 0AA7, 0AA8, 0AA9; partly mobile: 0AA4 (10.0%)
0AA, for 6 blocks AA = 31, 38, 71, 76, 88, 96+855 AA100%—

How to read it: the generator groups blocks with the same share. The first group are blocks with 8-digit numbers only (a different set of 34 from the TRC list below), the second (012, 018, 097) accepts both 8 and 9 digits, and the last group (031, 038, 071, 076, 088, 096) has 9-digit numbers only. The third group is the provincial landline area codes. Inside them, libphonenumber treats numbers that start with 48 after the area code, such as 023 48X XXXX, as mobile. We found no TRC document that describes that series, so don't build rules on it.

Mobile prefixes by operator

The TRC publishes the current list of mobile prefixes. In the snapshot of 28 August 2026 it lists 34 prefixes and marks seven of them with an asterisk, which "indicates prefixes with 7-digit numbers" (TRC prefix list):

OperatorPrefixes with 6-digit numbers (8 digits after +855)Prefixes with 7-digit numbers (9 digits after +855)
Cellcard011, 012, 014, 017, 061, 077, 078, 085, 089, 092, 095, 099076
Smart010, 015, 016, 069, 070, 081, 086, 087, 093, 098096
Metfone060, 066, 067, 068, 090031, 071, 088, 097
Seatel—018

Four mobile network licences were in force when the TRC last published statistics we could read (TRC statistics). Two old operator names still turn up in prefix lists online. 013 belonged to qb, run by CadComms, whose licence and spectrum the TRC revoked after its business stopped (Developing Telecoms, 2020). And 038 doesn't appear on the TRC list at all.

Where the library and the regulator disagree

We compared the TRC list with libphonenumber 9.0.40 (Python) on 2026-11-07:

CaseTRC list (August 2026)libphonenumber 9.0.40
013, 019, 038, 079, 080, 083, 084, 091, 094not listedaccepted as mobile
012, 018, 0976 digits (012) or 7 digits (018, 097)both lengths accepted
013not listed (licence revoked)carrier name "qbmore/Cadcomms"
087Smartno carrier name

Even libphonenumber's own example mobile number for Cambodia, 091 234 567, sits in a block the TRC doesn't list. So a number that passes validation can still be in a block no operator serves today. If you get real traffic from such a block, log it: the list may simply be newer or older than your data.

What are 023, 1800 and the other numbers?

Landlines use provincial area codes in the 02 to 07 ranges; 023 is Phnom Penh. Toll-free numbers start with 1800 and premium-rate numbers with 1900 in libphonenumber's metadata, ten digits without a trunk 0. Because landlines and mobiles have the same lengths (8 or 9 digits after +855), a shape regex can't tell them apart: row 9 of the test table, a Phnom Penh landline, passes the mobile-shaped regex.

All networks share standard USSD codes since 1 January 2022: *1201# for the balance, *1202# to check the identity a SIM is registered to, and 1204 for customer care (MPTC, 2021). *1202# is the quick way for a customer to confirm their own SIM's registration.

How do I validate a Cambodian number in code?

Use a libphonenumber port with full metadata and the default region KH, rewrite 00855 to +855 first, then keep only mobiles. To try a batch of inputs without writing code, paste them into our free phone number validator.

Python (pip install phonenumbers):

kh_normalize.py
import re

import phonenumbers


def normalize_kh(raw: str) -> str | None:
    """E.164 for a Cambodian mobile number (8 or 9 digits after +855), or None."""
    s = re.sub(r"^\s*00(?=855)", "+", raw)  # 00855… would be read as exit code 008 + 55 (Brazil)
    try:
        n = phonenumbers.parse(s, "KH")
    except phonenumbers.NumberParseException:
        return None
    if (not phonenumbers.is_valid_number(n) or phonenumbers.region_code_for_number(n) != "KH"
            or phonenumbers.number_type(n) != phonenumbers.PhoneNumberType.MOBILE):
        return None
    return phonenumbers.format_number(n, phonenumbers.PhoneNumberFormat.E164)


for raw in ["091 234 567", "+855 91 234 567", "85591234567", "00855 91 234 567",
            "001855 91 234 567", "091 234 5678", "023 756 789", "1800 123 456"]:
    print(f"{raw!r:22} -> {normalize_kh(raw)}")

JavaScript (npm install libphonenumber-js):

kh-normalize.mjs
import { parsePhoneNumberFromString } from "libphonenumber-js/max";

/** "091 …", "+855 9…", "855…", "00855…" or "001855…" → E.164 for a Cambodian mobile, or null. */
export function normalizeKh(raw) {
  const s = String(raw).replace(/^\s*00(?=855)/, "+"); // else 00855… reads as exit code 008 + 55 (Brazil)
  const phone = parsePhoneNumberFromString(s, "KH");
  return phone?.isValid() && phone.country === "KH" && phone.getType() === "MOBILE" ? phone.number : null;
}

for (const raw of ["091 234 567", "+855 91 234 567", "85591234567", "00855 91 234 567",
  "001855 91 234 567", "091 234 5678", "023 756 789", "1800 123 456"]) {
  console.log(JSON.stringify(raw).padEnd(22), "->", normalizeKh(raw));
}

The inputs are libphonenumber's own example numbers for Cambodia (mobile 091 234 567, fixed line 023 756 789, toll-free 1800 123 456), one of them with an extra digit, not real subscribers. We ran both on 2026-11-07 (Python 3.12 with phonenumbers 9.0.40, Node.js 24 with libphonenumber-js 1.13.13). Both printed the same answers:

Text
'091 234 567'          -> +85591234567
'+855 91 234 567'      -> +85591234567
'85591234567'          -> +85591234567
'00855 91 234 567'     -> +85591234567
'001855 91 234 567'    -> +85591234567
'091 234 5678'         -> None
'023 756 789'          -> None
'1800 123 456'         -> None

(The JavaScript version prints null instead of None and uses double quotes.) The fourth line only works because of the 00855 rewrite; the fifth works without it, because 001 is a Cambodian exit code. 091 234 5678 fails because 091 carries only six-digit subscriber numbers. The shape regex column below tests the pattern most tutorials give, after spaces, dashes and brackets are removed:

#CaseInput (masked)Shape regex ^(?:\+855|00855|0)?[1-9]\d{7,8}$libphonenumber (KH)
1National, with trunk prefix091 XXX XXXpassesvalid, MOBILE
2International, with spaces+855 91 XXX XXXpassesvalid, MOBILE
3International dialling prefix 0000855 91 XXX XXXpassesinvalid
4E.164+85591XXXXXXpassesvalid, MOBILE
5Dashes and brackets(091) XXX-XXXpassesvalid, MOBILE
6One digit short091XXXXXfailsinvalid
7One digit too many091XXXXXXXpassesinvalid
8Mobile shape, unused block 020020XXXXXXpassesinvalid
9Fixed line023 XXX XXXXpassesvalid, FIXED_LINE
10Toll-free range180X XXX XXXfailsvalid, TOLL_FREE

Rows 3, 7, 8 and 9 are the ones to remember. Row 3 is the 00855 trap. Row 7, one digit too many, passes the regex because some prefixes have nine digits, but 091 doesn't. Row 8, 020, has the right shape but no service, and row 9 is a landline that looks like a mobile. 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 cases. For a whole spreadsheet, our free phone list cleaner normalises and deduplicates a column in the browser.

Which numbers can I use in tests and examples?

Cambodia has no block reserved for films, books or examples that we could find. Use libphonenumber's example numbers in parser unit tests, mask the rest with X, and never use a real customer's number. A sandbox or test key is the safe way to test lookups.

Is there number portability in Cambodia?

No. As of November 2026 Cambodia has no mobile number portability (MNP). EuroCham Cambodia's White Book 2027, published in May 2026, says that today a consumer who switches to a new provider is "required to give up their phone number and adopt a new one". It has asked for portability since 2019 and keeps the recommendation, because the Ministry of Post and Telecommunications (MPTC) "is working on initiatives such as mobile phone number portability" but "there is no specific plan or timeline in place" (EuroCham White Book 2027, recommendation 24).

Our MNP atlas has no Cambodia row:

Our MNP atlas has no verified row for Cambodia yet.

What this means for you: in Cambodia the prefix is a reliable guide to the operator, which makes routing and pricing by prefix workable, as long as your prefix table follows the TRC list. It doesn't tell you whether the number is still in service. A customer who switches operator gets a new number, and the old one stops working. Since 1 January 2026, an expired SIM can be reactivated by a top-up within 180 days (TRC news releases), so a number that went quiet may come back. Treat a number that has been out of service for months as unknown, not as the same customer. A live network status (HLR) check tells you whether a number is reachable now. Our MNP atlas compares Cambodia with countries that have portability.

How are SIM cards registered in Cambodia?

A SIM must be registered with an identity document, and the government has spent 2024 to 2026 tightening the rules because of phone and online scams:

  • No ID, no activation. In May 2024 the TRC told operators and SIM sellers to stop activating SIMs without ID, to contact users with "unregistered SIMs or multiple SIMs under a single identity registration", and otherwise to "deactivate all numbers without proper ID documentation" (Developing Telecoms, 2024).
  • The scale. In June 2026 the telecom minister said about 8 of Cambodia's roughly 13 million mobile users had SIMs registered in their own name, and pledged to "eliminate improperly registered SIM cards by August 2026". Sellers face fines of up to USD 5,000 and operators up to USD 1 million (Cambodianess, 2026). We found no official count of SIMs cut off since.
  • Matching with bank accounts. The MPTC and the National Bank of Cambodia run a campaign to check SIM ownership against bank and e-wallet accounts (AKP, 2026).
  • SIMs per person. We found no national limit. Smart's own rule is up to five SIMs per ID (Smart).
  • The 2026 anti-scam law. The Law on Combating Online Scams was promulgated on 6 April 2026. It punishes misusing identity documents to help scams with one to three years in prison (Andersen, 2026).

Note that Cambodia's sub-decree on equipment identity registration (2023) is about registering phones by IMEI, not about SIM subscribers.

What this means for your data: many numbers in older Cambodian lists belonged to SIMs registered to someone else, and many of those have been or will be cut off. Expect a high share of unreachable numbers in a list collected before 2026, and re-check before you send an OTP. Our post on number recycling and list decay explains how.

What are the rules for SMS marketing and personal data?

These summarise Cambodian laws as we read them in English translations on 2026-11-07. Not legal advice; ask counsel how they apply to you.

The Law on Electronic Commerce (2019): an easy way to refuse

The Law on Electronic Commerce was signed on 2 November 2019. Article 30, "Unsolicited communications", applies to senders inside or outside Cambodia (E-Commerce Law):

  • Who it covers. Anyone who sends "unsolicited commercial communications to consumers" through "an electronic media or through an intermediary or a telecommunication service provider", so SMS, messaging apps and e-mail.
  • What it requires. A "clearly specified and easily activated option to reject" the messages.
  • Penalties. Under article 58, a written warning first; if it happens again, a licence can be suspended or revoked, or the sender's medium shut down.

The law sets no consent-first rule and no time window. The safer practice is to send marketing only to people who agreed, put a working opt-out in every message, and honour it on all channels.

The Law on Consumer Protection (2019)

The Law on Consumer Protection, also of 2019, bans misleading claims and advertising. Joint Prakas 338 of 2021 sets the fines, for example up to KHR 50 million for misleading advertising (DFDL). It applies to the content of an SMS as much as to a poster.

Spam and scam SMS

We found no TRC rule that sets up a national register of SMS sender IDs or a licence for bulk SMS. Operators set their own rules for alphanumeric sender names, so ask your SMS provider what each Cambodian network needs. Scam messages are a focus of the regulator: in January 2026 the TRC signed a memorandum with Hong Kong's communications authority on "scam and spam communications (including telephone calls and Short Message Service (SMS) messages)" (Hong Kong government, 2026). A one-time passcode isn't marketing, but send it from a sender set up for transactional traffic and keep it free of links and offers.

SMS in Khmer script needs Unicode encoding, which fits 70 characters in one part instead of 160. Our SMS character counter shows how many parts a Khmer or English message takes.

Personal data: a draft law, not yet in force

Cambodia had no general data protection law in force as of November 2026. The MPTC presented a draft Law on Personal Data Protection at a consultation workshop on 23 July 2025, aiming to finish it by early 2026 (MPTC, 2025). In August 2026 it held a validation workshop on the draft "before it proceeds through the formal legislative process" (MPTC, 2026). Until it is adopted, the E-Commerce Law's data security duty and sector rules apply. If you also serve customers in the EU or elsewhere, their laws may apply to the same data.

Which messaging apps reach people in Cambodia?

Telegram has an unusual role in Cambodia. When former prime minister Hun Sen left Facebook for Telegram in June 2023, his channel had 855,000 followers (VOA, 2023). A local news site described Telegram as the country's most popular messaging app as of early 2023, without giving figures (Kiripost via Open Development Cambodia, 2023), and the TRC's own website links to its Telegram channel. In September 2025 the TRC also warned the public about rising fraud on Telegram (TRC news releases). DataReportal's Digital 2027 report counts 14.2 million Facebook users in Cambodia in late 2026 but gives no Telegram or WhatsApp figure (DataReportal, 2026), so we don't quote app shares.

For WhatsApp, Meta prices Cambodia as one of the "Rest of Asia Pacific" markets on its rate card (Meta pricing, read on 2026-11-07); our WhatsApp cost calculator shows the regional rates. The practical approach is the same as everywhere: check which apps your opted-in customers are registered on, route each person to the channel they use, and keep SMS as the fallback.

How do I check Telegram registration for a Cambodian customer list?

Normalise every row with normalize_kh() first. A Telegram check tells you whether a number can be found on Telegram at the time of the check. Telegram users can stop others from finding them by number, so false means "not reachable through this number", not "doesn't use Telegram". Our Telegram number check guide explains the answers.

AnswerWhat it meansWhat to do
registered: trueThe number can be found on Telegram at checked_atOffer Telegram to customers who opted in to it
registered: falseNot found by number at checked_atUse SMS or another channel; don't re-check repeatedly
unknownNo conclusive answer (not billed)Keep the current channel; retry later
invalid_numberFailed format validation (not billed)Fix the data at the source

For lists, use a bulk job. Upload a CSV with numbers written the Cambodian way (012 XXX XXX, 855… and spaces also work) and default_country=KH:

Bulk Telegram and WhatsApp check for a customer CSV
curl https://api.mobilevalidate.com/v1/jobs \
  -H "Authorization: Bearer $MOBILEVALIDATE_API_KEY" \
  -F file=@customers.csv -F checks=telegram,whatsapp -F default_country=KH

Send the same body to POST /v1/jobs/estimate first: it is free, checks nothing and shows the maximum cost and the per-country minimums before anything runs. Our post on bulk Telegram number checks in Asia covers the bulk flow in more detail.

What changed recently?

The rows for KH and +855 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
Original-carrier prefix data3
All3

No numbering-plan update for KH in this period.

libphonenumber's numbering metadata for Cambodia hasn't changed since 2019; the only updates were to carrier names. That is one reason the library still accepts blocks the TRC no longer lists. The changes have come from the regulator and the government instead:

  • 2024: the TRC ordered operators to stop activating SIMs without ID (May).
  • 2025: the draft data protection law went to consultation (July); new rules let expired numbers be reactivated within 180 days, from 1 January 2026.
  • 2026: 5G service started on Cellcard, Metfone and Smart on 1 January (The Star, 2025); the scam and spam memorandum with Hong Kong (January); the Law on Combating Online Scams (April); the SIM clean-up deadline (August); and the data protection draft's validation workshop (August).

What can MobileValidate check for Cambodian numbers?

Generated from our public catalog:

Catalog data as of 2026-11-07.

CheckAccepts Cambodia 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 Cambodia 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. The live list is at GET /v1/services.

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

For Cambodian numbers, the useful checks are a live network status (HLR) check, which tells you whether a number is reachable now and on which network, and the Telegram number check, which runs in real time and in bulk. The carrier lookup gives line type and network in one call, and our free MCC-MNC lookup decodes network codes. WhatsApp also runs in real time; the starred checks in the table run in bulk jobs only.

How do I start for free?

  • 20 free real checks. Every live account can run 20 phone numbers and 10 e-mail addresses through the real checks for free on the dashboard's Try it page. Use them on your own number first.
  • Free tools. The carrier lookup page has a public form for 3 lookups a day, no sign-up needed, and our free tools validate, clean and format numbers in the browser.
  • A free test key. Get a test key for the sandbox. It gives fixed test answers so you can build every branch of your code; see test mode.
  • A free estimate. POST /v1/jobs/estimate takes the same body as a job, checks nothing and shows the maximum cost before you start.
  • Then add credit. Create your account; approval is automatic. Top-ups of larger amounts get 5% to 10% bonus credit; see pricing. Unknown, invalid and duplicate results are never charged.

Here is a small Telegram and WhatsApp check against the real-time endpoint, in JavaScript. It 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 normalizeKh().

kh-apps.mjs
const API = "https://api.mobilevalidate.com/v1/lookup";

/** Telegram and WhatsApp registration per E.164 number. null means we don't know. */
export async function apps(numbers) {
  const res = await fetch(API, {
    method: "POST",
    headers: { Authorization: `Bearer ${process.env.MOBILEVALIDATE_API_KEY}`, "Content-Type": "application/json" },
    body: JSON.stringify({ numbers, checks: ["telegram", "whatsapp"], wait: 5 }),
  });
  if (!res.ok) throw new Error(`lookup failed: ${res.status}`);
  const { results } = await res.json();
  const answer = (c) => (c.status === "completed" ? c.registered : null);
  return Object.fromEntries(results.map((r) => [r.e164, {
    telegram: answer(r.checks["telegram.registered"]),
    whatsapp: answer(r.checks["whatsapp.registered"]),
  }]));
}

console.log(await apps(["+447700900001", "+447700900002", "+447700900005"]));

We ran it against the sandbox on 2026-11-07 with Node.js 24. It printed:

Text
{
  '+447700900001': { telegram: true, whatsapp: true },
  '+447700900002': { telegram: false, whatsapp: false },
  '+447700900005': { telegram: null, whatsapp: null }
}

The third test value stands for an unsupported country, so both answers are null and nothing would be billed. Keep null apart from false: null means we don't know. 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.

What are the key takeaways?

  • Cambodian mobiles are +855 plus eight or nine digits, written 0XX XXX XXX or 0XX XXX XXXX at home. Store the E.164 form.
  • Rewrite a leading 00855 to +855 before parsing, or 008 is read as an exit code and the number becomes Brazilian.
  • The TRC's list of 34 prefixes shows the operator: Cellcard, Smart, Metfone or Seatel. libphonenumber accepts some blocks the TRC doesn't list, including 013 and 038.
  • There is no number portability as of November 2026, so the prefix still means the operator, but old numbers die when people switch.
  • SIMs must be registered with ID, and improperly registered SIMs are being cut off, so re-check old lists. Marketing messages must offer an easy way to refuse; a data protection law is still a draft.
  • Telegram matters in Cambodia. Check registration only for customers you hold lawfully, keep unknown apart from false, and never treat registration as consent.

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

Sources

  1. News Releases (snapshot of 11 April 2026): reactivation of expired numbers within 180 days from 1 January 2026; warning on fraud on Telegram (15 September 2025) — Telecommunication Regulator of Cambodia (TRC), via the Internet Archive, 2026
  2. Mobile Phone Prefixes (snapshot of 28 August 2026) — Telecommunication Regulator of Cambodia (TRC), via the Internet Archive, 2026
  3. Telecom Statistics (snapshot of 6 December 2025, data to April 2025) — Telecommunication Regulator of Cambodia (TRC), via the Internet Archive, 2025
  4. Cambodia (country code +855): national numbering plan, communication of 8.IV.2009 — International Telecommunication Union (ITU), communication from the Ministry of Posts and Telecommunications, 2009
  5. Announcement on standard USSD codes for all mobile networks (29 December 2021) — Ministry of Post and Telecommunications (MPTC), 2021
  6. White Book 2027 (May 2026), Telecommunications recommendation 24 and chapter text on number portability — EuroCham Cambodia, 2026
  7. Cambodia strips CadComms of licence and spectrum (25 June 2020) — Developing Telecoms, 2020
  8. Cambodian regulator cracks down on unregistered SIM cards (13 May 2024) — Developing Telecoms, 2024
  9. TRC targets illegal SIM registrations after fraud case exposes security gaps (16 June 2026) — Cambodianess, 2026
  10. MPTC and National Bank of Cambodia SIM card verification campaign (17 June 2026) — Agence Kampuchea Presse (AKP), 2026
  11. SIM guidelines — Smart Axiata, 2026
  12. Law on Electronic Commerce (NS/RKM/1119/017, 2 November 2019), English translation — Open Development Cambodia, 2019
  13. Cambodia: penalties for violations of the Law on Consumer Protection (Joint Prakas 338 of 2021) — DFDL, 2023
  14. Minister Chea Vandeth presided over the consultative workshop on the draft Law on Personal Data Protection (23 July 2025) — Ministry of Post and Telecommunications (MPTC), 2025
  15. Ministry of Post and Telecommunications holds validation workshop on the draft Law on Personal Data Protection (August 2026) — Ministry of Post and Telecommunications (MPTC), 2026
  16. Cambodia's new Law on Combating Online Scams (23 April 2026) — Andersen in Cambodia, 2026
  17. Hong Kong and Cambodia regulators sign MoU on combating scam and spam communications (26 January 2026) — Government of the Hong Kong SAR, 2026
  18. Cambodia's Hun Sen leaves Facebook for Telegram (28 June 2023) — Voice of America (Associated Press), 2023
  19. The rise of messaging app Telegram in Cambodia (Kiripost, 30 June 2023) — Open Development Cambodia, 2023
  20. Digital 2027: Cambodia (5 November 2026) — DataReportal, 2026
  21. Cambodia to roll out 5G mobile services from Jan 1, 2026 (31 December 2025) — The Star (Xinhua), 2025
  22. WhatsApp Business Platform pricing (pricing regions, read 2026-11-07) — Meta for Developers, 2026
  23. libphonenumber PhoneNumberMetadata.xml (region KH), carrier prefix data and release notes — libphonenumber project (Apache License 2.0), 2026

Frequently asked questions

How many digits is a Cambodian mobile number?

Eight or nine digits after the country code +855, so nine or ten when written at home with the leading 0. Most mobiles are 0XX XXX XXX (a three-digit prefix and six digits); the prefixes 018, 031, 071, 076, 088, 096 and 097 also carry seven-digit numbers, 0XX XXX XXXX. In E.164 that is +855 XX XXX XXX or +855 XX XXX XXXX.

What is the Cambodia country code for WhatsApp or Telegram?

+855. Drop the leading 0 of the national number: 091 234 567 becomes +855 91 234 567, stored as +85591234567. Don't keep the 0 after 855. The same E.164 form works for Telegram, WhatsApp, SMS APIs and every other platform.

Which operator is 012, 010, 097 or 018 in Cambodia?

In the Telecommunication Regulator of Cambodia's prefix list, 011, 012, 014, 017, 061, 076, 077, 078, 085, 089, 092, 095 and 099 are Cellcard; 010, 015, 016, 069, 070, 081, 086, 087, 093, 096 and 098 are Smart; 031, 060, 066, 067, 068, 071, 088, 090 and 097 are Metfone; and 018 is Seatel.

Does Cambodia have mobile number portability?

No. As of November 2026 a Cambodian mobile number can't be moved to another operator: someone who switches gets a new number. EuroCham's White Book 2027 says the ministry is working on initiatives such as number portability but has no specific plan or timeline. So the prefix still shows the operator, unlike in most countries.

Do SIM cards have to be registered in Cambodia?

Yes. A SIM must be registered with an identity document, and the regulator has told operators to stop activating SIMs without ID and to deactivate numbers without proper documents. In June 2026 the telecom minister said about 5 of 13 million users had SIMs registered in someone else's name and promised to remove improperly registered SIMs by August 2026.

What are the rules for marketing SMS in Cambodia?

The Law on Electronic Commerce of 2019 says anyone sending unsolicited commercial messages through electronic media or a telecom provider must give the recipient a clearly specified, easily activated way to reject them. Cambodia had no data protection law in force as of November 2026; a draft was validated in August 2026. Send only to people who agreed, and honour every opt-out.

Can I check whether Cambodian customers are on Telegram?

Yes, for numbers you hold with a lawful basis, such as your own customers. A MobileValidate Telegram check answers registered, not registered or unknown with a checked_at date, in real time or in bulk; unknown is never billed. Telegram users can hide from search by number, so a false answer doesn't prove they don't use it. No name or profile is returned.

All articles

Know before you send.

Create a free account: approved automatically, usually within 10–15 minutes.

Free to start: check 20 phone numbers and 10 e-mail addresses for real on your account, plus an unlimited test mode. You pay only for conclusive answers, from $20.