Short answer: Mainland China’s country calling code is +86. Mobile numbers are 11 digits beginning with 1, and they follow
+86directly — no trunk zero. Landlines do drop the leading 0 from the area code. Hong Kong, Macau and Taiwan are separate: +852, +853, +886.

The code itself is easy. What trips people up is the entry format — an extra zero, or a country code typed twice, and the verification code never arrives.
Entry templates
| Line type | Local form | International form |
|---|---|---|
| Mainland mobile | 138 0000 0000 | +86 138 0000 0000 |
| Shanghai landline | 021-1234 5678 | +86 21 1234 5678 |
| Hong Kong | 6123 4567 | +852 6123 4567 |
| Macau | 6612 3456 | +853 6612 3456 |
| Taiwan mobile | 0912 345 678 | +886 912 345 678 |
Two things to notice. Mainland mobile numbers never carry a trunk zero, so there is nothing to strip. Landlines and Taiwanese mobiles do carry one, and it must be removed in international format.
The four common mistakes
- Typing the country code twice. The form already has “China +86” selected and you paste
+8613800000000. The backend sees+86 +86 138…and rejects it. - Adding a zero to a mobile.
+86 0138…is invalid; mainland mobiles have no trunk prefix. - Keeping the zero on a landline.
+86 021 1234 5678should be+86 21 1234 5678. - Invisible characters from a paste. Copying from chat often carries a non-breaking space. It looks correct and still fails validation — see verification code error on submit for the triage pattern.
Dialling China from abroad
+ is the most reliable prefix (long-press 0 on a mobile keypad). Otherwise use your country’s international access code — 00 in most of the world, 011 from the US and Canada.
- Mobile:
+86followed by the 11 digits - Landline:
+86+ area code without its 0 + the number
Going the other direction, formatting rules for other countries are in international phone number format, and what country is +1 covers the North American plan.
Format is right but the code still won’t arrive
Then it is a routing problem, not a formatting one. Check in this order:
- Does the service actually stock +86 numbers? Many overseas platforms carry very few, or none — see China (+86) numbers on SMS platforms.
- Is cross-border A2P traffic being filtered? Very common; see why carriers filter SMS.
- What line type is it? Reseller ranges are refused by a large share of apps.
- Have you retried too often? See “too many verification attempts”.
Whether the country code affects delivery at all is answered in does the country code matter for SMS verification.
Summary
Three rules cover it: +86 for the mainland, 11-digit mobiles attach directly with no zero, landlines drop the area-code zero. Hong Kong, Macau and Taiwan are their own codes, not sub-ranges of +86. If a correctly formatted number still gets no code, the problem lives in the route and the range, not in your typing.