Generate a test China Resident Identity Card number
A Chinese resident ID number is eighteen characters — a region code, full date of birth, a serial, and an ISO 7064 MOD 11,2 check character (a digit or X). These test values are synthetic but checksum-valid.
Synthetic resident ID (checksum-valid). Not a real issued number.
Format specification
| Identifier | Resident Identity Card number |
|---|---|
| Country | 🇨🇳 China |
| Format | 000000000000000000 |
| Length | 18 characters |
| Checksum | ISO 7064 (MOD 11,2) |
| Example | 629136196904163949 |
| Safe strategy | Synthetic |
| Data quality | Verified against sources |
Validation regex
Matches the canonical value — strip separators and uppercase first: value.replace(/[^A-Za-z0-9]/g, '').toUpperCase()
^\d{17}[0-9X]$ References
Common questions
Will these pass my validation?
Yes — they are well-formed Resident Identity Card number values (000000000000000000) and pass standard format checks, including the ISO 7064 (MOD 11,2) checksum.
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.