Generate a test South Africa National Identity Number
A South African ID number is thirteen digits — date of birth (YYMMDD), a gender serial, a citizenship digit, and a Luhn check digit. These test values are synthetic but Luhn-valid.
Synthetic · not collision-guaranteed Validate a number →
620115 9810 181
Synthetic ID number (Luhn-valid). Not a real issued number.
Format specification
| Identifier | National Identity Number |
|---|---|
| Country | 🇿🇦 South Africa |
| Format | 000000 0000 000 |
| Length | 13 characters |
| Checksum | Luhn |
| Example | 710427 1017 082 |
| 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{13}$ References
Common questions
Will these pass my validation?
Yes — they are well-formed National Identity Number values (000000 0000 000) and pass standard format checks, including the Luhn 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.
For software testing only. These numbers are synthetic and must never be used
for real-world identification, applications, or to impersonate anyone.