Generate a test China Passport number
A China passport number is 9 characters, formatted A00000000. These test values are synthetic — passport numbers have no public checksum or reserved range, so use them only for testing.
Synthetic · not collision-guaranteed Validate a number →
Q05992674
Synthetic passport number (format only). No public checksum or reserved range exists, so it is not collision-guaranteed — for testing only.
Format specification
| Identifier | Passport number |
|---|---|
| Country | 🇨🇳 China |
| Format | A00000000 |
| Length | 9 characters |
| Checksum | None |
| Example | S29136335 |
| Safe strategy | Synthetic |
| Data quality | Best-effort |
Validation regex
Matches the canonical value — strip separators and uppercase first: value.replace(/[^A-Za-z0-9]/g, '').toUpperCase()
^[A-Z]\d\d\d\d\d\d\d\d$ References
Common questions
Will these pass my validation?
Yes — they are well-formed Passport number values (A00000000) and pass standard format checks.
Could one belong to a real person?
These are synthetic values. They are format-valid but not drawn from a guaranteed reserved range, so use them only for testing.
Can I generate many at once?
Increase the count, or use the free API and CSV/JSON export for large datasets.
For software testing only. These numbers are synthetic and must never be used
for real-world identification, applications, or to impersonate anyone.