On this page
A Macau phone number is the country code +853 followed by eight digits, with no area code and no trunk prefix: a mobile looks like +853 66XX XXXX from abroad and 66XX XXXX at home. Every mobile starts with 6, in the 62, 63, 65, 66 and 68 blocks, and landlines start with 28 or 8. Hong Kong also uses 8-digit numbers and has mobile blocks starting with 6, so a bare 6XXX XXXX doesn't tell you which of the two places it belongs to.
This guide is part of our phone numbers by country series. The tables are generated from libphonenumber's metadata and our public catalog. Example numbers are masked with X. Macau's official English name is Macao, which is how the regulator and the ITU write it; we write Macau, the other English spelling in wide use, except in names and titles. We read the allocation pages of the Macao Post and Telecommunications Bureau (CTT, Direcção dos Serviços de Correios e Telecomunicações), last updated 23 April 2026, and the other sources cited below on 2026-10-10. This is a summary, not legal advice.
What does a Macau phone number look like?
Every ordinary Macau number has eight digits, and you dial all eight anywhere in the territory. There are no area codes and no trunk 0, so the national number and the digits after +853 are the same. Calls to and from Hong Kong and mainland China are international calls.
| Item | Value |
|---|---|
| Country calling code | +853 |
| International call prefix (dialling out) | 00 |
| Trunk prefix (dialling at home) | none |
| Mobile: digits after +853 | 8 |
| Fixed line: digits after +853 | 8 |
| Toll-free: digits after +853 | 7 |
| Mobile, national format (masked) | 66XX XXXX |
| Mobile, international (masked) | +853 66XX XXXX |
| Mobile, E.164 (masked) | +85366XXXXXX |
| Fixed line, national format (masked) | 28XX XXXX |
| Fixed line, international (masked) | +853 28XX XXXX |
| Fixed line, E.164 (masked) | +85328XXXXXX |
People write the same number as 66XX XXXX, 6XXX-XXXX, +853 66XX XXXX, 00853 66XX XXXX or 853 66XX XXXX without the plus. A numbering-plan library reads all of these if you pass the default region MO. Store only the E.164 result, +85366XXXXXX.
Which prefixes are mobile numbers?
CTT publishes the blocks it has allocated to operators, grouped by their first two digits: 62, 63, 65, 66 and 68 for mobiles, 28 for ordinary fixed lines and 8 for fixed direct-dial-in numbers (CTT allocations). libphonenumber's mobile pattern for MO covers the same five blocks. The table counts, for each 2-digit block, how many 8-digit numbers that pattern accepts:
| National prefix | International | Share of the block that is mobile (8-digit numbers) | 3-digit sub-blocks that aren't fully mobile |
|---|---|---|---|
62 | +853 62 | 100% | — |
63 | +853 63 | 100% | — |
65 | +853 65 | 100% | — |
66 | +853 66 | 96.0% | partly mobile: 660 (60.0%) |
68 | +853 68 | 84.9% | partly mobile: 680 (99.0%), 682 (50.0%), 683 (50.0%), 689 (50.0%) |
The two sources agree closely. In the 68 block, libphonenumber's pattern matches CTT's list range for range, down to the 68008XXX gap that neither accepts. In the 66 block the library is a little wider than the published list: it accepts 6690XXXX and 6691XXXX, for example, which CTT's page doesn't list as allocated. CTT notes that operators can also sub-allocate numbers inside their blocks, so treat the library as the shape check and a live lookup as the answer to whether a number is in use.
60, 61, 64, 67 and 69 aren't mobile blocks in Macau. A number starting with them has the right shape and fails validation, which is what row 8 in the test table below shows.
What else is in the plan?
28: ordinary fixed lines. CTT lists blocks from282to289, all allocated to CTM.8: fixed direct-dial-in (DDI) numbers, which ring straight through to an extension on a business switchboard. CTT lists blocks such as811,829,880and888, also allocated to CTM.0800: toll-free numbers, which have seven digits in libphonenumber's metadata.999: the emergency number. According to Wikipedia,110and112are redirected to the same call centre.
How did Macau move to eight digits?
Macau moved in two phases, set out in a change to Macau's numbering plan that China's then Ministry of Information Industry notified to the ITU on 2 August 2006 (ITU, Macao numbering plan):
- 2006 to 2007: six-digit fixed numbers gained the prefix
28(so2XXXXXbecame282X XXXX), and seven-digit mobile numbers gained a6(so6XXXXXXbecame66XX XXXX). Old and new numbers both worked from 1 October 2006, local time, until the end of February 2007. - 2008: seven-digit DDI numbers gained an
8(so2XXXXXXbecame82XX XXXX). Both forms worked from 1 January 2008 until the end of June 2008.
So every Macau mobile number in use before October 2006 moved into the 66 block. If an old customer record holds a seven-digit mobile starting with 6, it predates the change. The 2006 rule was to add a 6 in front, but after twenty years the number may have changed hands, so ask the customer to confirm it rather than fixing it silently.
Why a prefix doesn't name the operator
CTT's pages list each block's operator: Macau Telecommunications Company Limited (CTM), Hutchison Telephone (Macau) Company Limited (which trades as 3 Macau) and China Telecom (Macau) Company Limited. The market is changing faster than the blocks:
- SmarTone left in 2024. The government said on 21 August 2024 that SmarTone had applied to give up its 4G licence and would move its users to CTM (Macao Government, 2024). SmarTone's own customer notice says its service ended at 24:00 on 11 November 2024. CTT's allocation pages updated in April 2026 list no SmarTone blocks.
- 3 Macau is leaving on 1 December 2026. CTT said Hutchison had told it that it will surrender its 4G licence and stop all mobile services from that date. Hutchison has agreed with CTM to move customers to CTM's network, with each customer's consent, leaving CTM and China Telecom (Macau) as the only mobile operators (Macau Business, 2026).
The reports we read don't say whether Hutchison's customers keep their numbers when they move. Either way, a block allocated to Hutchison in April 2026 tells you little about who serves the number in 2027, so we don't print a prefix-to-operator table.
How do I validate a Macau number in code?
Use a libphonenumber port with full metadata and the default region MO, and check the region it returns. Unlike Hong Kong, Macau has no 00 lookalike: libphonenumber's international prefix for MO is exactly 00, so 00853 66XX XXXX parses straight to +853.
JavaScript (npm install libphonenumber-js):
import { parsePhoneNumberFromString } from "libphonenumber-js/max";
/** "66XX XXXX", "+853 66XX XXXX", "00853 …", "853 …" → E.164 for a Macau mobile, or null. */
export function normalizeMo(raw) {
const phone = parsePhoneNumberFromString(String(raw), "MO");
if (!phone?.isValid() || phone.country !== "MO" || phone.getType() !== "MOBILE") return null;
return phone.number;
}We ran it on 2026-10-10 with libphonenumber-js 1.13.13 (metadata 9.0.39), and the same calls in Python with phonenumbers 9.0.41. Both returned one E.164 number for the national, +853, 00853, 853 and bracketed forms, and nothing for a seven-digit number, a number in the unused 60 block, a landline, a toll-free number, a Hong Kong mobile written with +852 or a mainland mobile written with +86. The shape regex column tests ^(?:\+853|00853)?6\d{7}$, a typical "8 digits starting with 6" rule, after spaces, dashes and brackets are removed:
| # | Case | Input (masked) | Shape regex ^(?:\+853|00853)?6\d{7}$ | libphonenumber (MO) |
|---|---|---|---|---|
| 1 | National (no trunk prefix) | 66XX XXXX | passes | valid, MOBILE |
| 2 | International, with spaces | +853 66XX XXXX | passes | valid, MOBILE |
| 3 | International dialling prefix 00 | 00853 66XX XXXX | passes | valid, MOBILE |
| 4 | E.164 | +85366XXXXXX | passes | valid, MOBILE |
| 5 | Dashes and brackets | (66XX) XXXX | passes | valid, MOBILE |
| 6 | One digit short | 66XXXXX | fails | invalid |
| 7 | One digit too many | 66XXXXXXX | fails | invalid |
| 8 | Mobile shape, unused block 60 | 60XXXXXX | passes | invalid |
| 9 | Fixed line | 28XX XXXX | fails | valid, FIXED_LINE |
Row 8 is why the regex isn't enough: 60 has the mobile shape but isn't a mobile block. Our JavaScript validation guide and why an E.164 regex is not enough cover the general case.
Watch the default region. The 00853 form only works when the default region is MO (or another region whose international prefix is plain 00, such as CN). If your system parses everything with HK as the default, for example because most of your customers are in Hong Kong, 00853 66XX XXXX fails: libphonenumber's Hong Kong international-prefix pattern also accepts 008, so it reads 008 followed by a different country code. Rewrite a leading 00853 to +853 before parsing, as our Hong Kong phone number guide does for 00852. +853 numbers parse correctly under any default region.
Macau, Hong Kong and mainland China are separate plans
The ITU assigns three different country codes (ITU E.164 list): +853 for Macau, +852 for Hong Kong and +86 for mainland China. Each has its own numbering plan and regulator, and calls between them are international.
The ambiguity is between Macau and Hong Kong. Both use 8-digit numbers without area codes, and every 2-digit block Macau uses for mobiles is also a Hong Kong mobile block. We counted over libphonenumber's metadata (9.0.39): of the 4,809,000 numbers it accepts as Macau mobiles, 4,649,000, about 97%, are also valid Hong Kong mobiles. So 66XX XXXX passes an MO validator and an HK validator, and parsing it with the wrong default silently stores a valid number for the wrong place. Don't guess from the digits: ask for the country on forms, keep a country picker next to the number field, and store the E.164 result with its +853 or +852.
Mainland numbers are easier to tell apart: a mainland mobile has 11 digits starting with 1 and doesn't validate under MO at all. Our China phone number format guide covers +86 in detail.
Can Macau numbers be ported?
Not as far as we can find. On 2026-10-10 we found no CTT notice, rule or statistic describing mobile number portability in Macau, and our MNP atlas has no Macau row:
<!-- country-data:MO:mnp:start --> <!-- generated by apps/web/scripts/gen-country-guide-data.mjs (MNP atlas 2026); edit the script, not this table -->Our MNP atlas has no verified row for Macau yet.
<!-- country-data:MO:mnp:end -->Treat that as "we found none", not as proof that none exists. What has happened is that customers moved network when operators left the market: SmarTone's users went to CTM in 2024 and Hutchison's are moving to CTM in 2026, both under agreements between the operators. The announcements we read don't say whether those customers keep their numbers, which is exactly why the block an operator was allocated is a weak guide to the network serving a number today. If the network matters for routing or fraud rules, look it up per number with an HLR lookup.
Which messaging apps and channels reach people?
SMS reaches every active mobile. We haven't found a published measurement of app use in Macau that we can verify, so we don't quote shares. Check which apps your opted-in customers are registered on, route from that, and keep SMS as the fallback. The flow in the last section returns WhatsApp and Telegram registration in the same call as the line type, and our channel-by-country guide covers the method.
What are the rules for SIM registration and SMS?
Summaries of the primary texts, checked on 2026-10-10. Not legal advice; ask counsel how they apply to you.
Real-name prepaid cards (Law 13/2019)
Macau's Cybersecurity Law, Law 13/2019, has been in force since 22 December 2019. CTT announced that users of prepaid cards activated before that date had to register them under their real names within a 120-day transitional period, after which unregistered cards could be suspended (CTT via the Macao Government, April 2020). A suspended card could be restored by registering on or before 16 October 2020; after that date, unregistered cards were terminated and could not be resumed (CTT via the Government Information Bureau, October 2020).
For a sender, that means a working Macau prepaid number belongs to a registered card. It doesn't mean you can see who registered it: the operators hold those records.
SMS and OTP
Scam texts are a live problem: in July 2022 CTT warned about messages sent in its name that asked recipients to pay a parcel fee through a link (CTT via the Government Information Bureau, 2022). If you send one-time passcodes to Macau, keep them short, free of links and offers, and sent only to numbers whose owners asked for them. Don't reuse numbers collected for verification for marketing without consent, and ask your SMS provider which sender-ID formats Macau's networks currently accept.
What changed recently?
The rows for MO and +853 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 data | 5 |
| Numbering-plan metadata (validation, lengths, types) | 5 |
| All | 10 |
Latest numbering-plan updates for MO: 2021-08-06 (v8.12.29), 2021-07-20 (v8.12.28), 2021-01-27 (v8.12.17), 2021-01-12 (v8.12.16), 2020-03-02 (v8.11.5).
Unlike Hong Kong, whose metadata changes several times a year, Macau's numbering-plan metadata last changed in August 2021, according to the release notes up to September 2026. The bigger change is in the market: by December 2026 Macau will have two mobile operators instead of the four it had until 2024. Keep your validation library up to date anyway: a new block CTT allocates will need a metadata update before libraries accept it.
What can MobileValidate check for Macau numbers?
Generated from our public catalog:
<!-- country-data:MO:coverage:start --> <!-- generated by apps/web/scripts/gen-country-guide-data.mjs (public catalog https://api.mobilevalidate.com/v1/services, fetched 2026-10-10); edit the script, not this table -->| Check | Accepts Macau 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 Macau 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-10-10; the live list is at GET /v1/services.
Here is a practical flow: normalise with normalizeMo() from above, then one lookup returns the line type, the current network and WhatsApp and Telegram registration for a batch of numbers. It uses the public sandbox key mv_test_publicSandboxn9ZgneuhR1B9CRfKG3fulym and our test values, which are UK drama numbers. The sandbox accepts only those, so the run below uses them; with a live key, pass the output of normalizeMo(). We ran it on 2026-10-10 with Node.js 24.
const API = "https://api.mobilevalidate.com/v1/lookup";
const KEY = process.env.MOBILEVALIDATE_API_KEY;
/** One lookup for a batch of E.164 numbers: line type, current network and two messaging-app checks. */
export async function profile(numbers) {
const res = await fetch(API, {
method: "POST",
headers: { Authorization: `Bearer ${KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({ numbers, checks: ["carrier", "whatsapp", "telegram"], wait: 5 }),
});
if (!res.ok) throw new Error(`lookup failed: ${res.status}`);
const { results } = await res.json();
return results.map((r) => {
const c = r.checks;
const carrier = c["network.carrier"].status === "completed" ? c["network.carrier"].attributes : null;
const app = (code) => (c[code].status === "completed" ? c[code].registered : null); // null = unknown, never false
return {
number: r.e164,
lineType: carrier?.line_type ?? null,
network: carrier?.carrier ?? null,
whatsapp: app("whatsapp.registered"),
telegram: app("telegram.registered"),
};
});
}
console.table(await profile(["+447700900001", "+447700900002", "+447700900003", "+447700900005"]));| Test value | lineType | network | whatsapp | telegram | Why |
|---|---|---|---|---|---|
+447700900001 | mobile | Test Carrier | true | true | Registered on both |
+447700900002 | null | null | false | false | Carrier has no data (NO_DATA); not registered on either app |
+447700900003 | null | null | null | null | Every check timed out (UPSTREAM_TIMEOUT) |
+447700900005 | null | null | null | null | unsupported_country |
Keep null apart from false: null means we don't know, and it's never billed. With Hutchison's customers moving networks in late 2026, add the HLR check if you need the network serving a number today. See carrier lookup and WhatsApp number check for the fields, and pricing for prices.
What are the key takeaways?
- Macau numbers are
+853plus 8 digits, with no area code and no trunk0; store them as+853XXXXXXXX. - Mobiles are in the
62,63,65,66and68blocks;28and8are fixed lines and0800is toll-free. Validate with a maintained library and the regionMO. - With
MOas the default region,00853parses correctly; withHKas the default it doesn't, so rewrite it to+853first. - About 97% of valid Macau mobile numbers are also valid Hong Kong mobiles: ask for the country, don't guess.
- Mobiles moved to eight digits in 2006–2007 by adding a
6, and DDI numbers followed in 2008. - We found no mobile number portability in Macau, but customers of departing operators have moved networks, so look up the current network.
- Prepaid cards must be registered under the user's real name (Law 13/2019, in force since 22 December 2019); unregistered older cards were terminated after 16 October 2020.
Platform, regulator and company names are used descriptively. MobileValidate is not affiliated with any of them.
Sources
- Telephone numbers allocated to operators: mobile blocks 62, 63, 65, 66 and 68, fixed blocks 28 and 8 (last updated 23 April 2026) — Macao Post and Telecommunications Bureau (CTT), 2026
- National Numbering Plan: Macao, China (country code +853), communication of 2 August 2006 — ITU, 2007
- List of ITU-T Recommendation E.164 assigned country codes — ITU, 2026
- libphonenumber PhoneNumberMetadata.xml (region MO) and release notes — libphonenumber project (Apache License 2.0), 2026
- Telephone numbers in Macau — Wikipedia, 2026
- Prepaid card without real name registration will be terminated after 16 October 2020 (9 October 2020) — Macao SAR Government Information Bureau (from CTT), 2020
- The transitional period for real-name registration of prepaid cards will end on this Sunday (14 April 2020) — Macao SAR Government Portal (from CTT), 2020
- New operating arrangement of Smartone – Mobile Communications (Macau), Limited (21 August 2024) — Macao SAR Government Portal, 2024
- Hutchison's 3 Macau to exit mobile market in December, leaving two operators (15 September 2026) — Macau Business, 2026
Frequently asked questions
How many digits is a Macau phone number?
Eight, for mobiles and landlines alike, with no area code and no trunk prefix. A mobile is written 66XX XXXX at home and +853 66XX XXXX from abroad. The exception in libphonenumber's metadata is the seven-digit 0800 toll-free range.
Do Macau mobile numbers start with 6?
Yes. Every Macau mobile number starts with 6, in the 62, 63, 65, 66 and 68 blocks that the regulator lists. Not every number starting with 6 is valid, though: 60, 61, 64, 67 and 69 aren't mobile blocks, so validate with a maintained library.
How do I tell a Macau number from a Hong Kong number?
You can't from the eight digits alone. Both places use 8-digit numbers, and Hong Kong also has mobile blocks starting with 6. By our count, about 97% of the numbers libphonenumber accepts as Macau mobiles are also valid Hong Kong mobiles. Ask for the country code.
Can you keep your number when changing operator in Macau?
We found no regulator source describing mobile number portability in Macau. SmarTone's customers moved to CTM when it left in 2024, and Hutchison's are moving to CTM before its exit on 1 December 2026. Look up the serving network instead of trusting the prefix.
Do prepaid SIM cards in Macau have to be registered?
Yes. Under Macau's Cybersecurity Law (Law 13/2019), in force since 22 December 2019, prepaid cards are registered under the user's real name. Unregistered older cards were terminated after 16 October 2020. No lookup, ours included, returns the registered name.
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.
10 min read
Guides
Hong Kong phone number format: +852, mobile prefixes, validation and messaging rules
Hong Kong phone number format: +852 and 8 digits, no area codes or trunk 0, which first digits are mobile, tested validation code, porting and SIM rules.
13 min read
Guides
China phone number format (+86): how to validate Chinese mobile numbers
China phone number format: +86 and 11-digit mobiles starting with 1, the 13–19 blocks by operator, area codes, tested validation code and porting.
11 min read

