A South African ID number is 13 digits that pack four pieces of information into a single string: the holder’s date of birth, gender, citizenship status, and a final Luhn check digit. This decoder reads each field and verifies the checksum so you can catch a transposed digit at a glance.
How it works
The number follows the layout YYMMDD SSSS C A Z:
- YYMMDD is the date of birth. The two-digit year’s century is inferred against today’s date.
- SSSS is a gender serial: 0000–4999 means female, 5000–9999 means male.
- C is citizenship: 0 = South African citizen, 1 = permanent resident.
- A is a historical digit, now usually 8 or 9 and ignored.
- Z is a Luhn check digit computed over the first 12 digits, anchored from the right (rightmost body digit doubled first), making the whole number pass the modulo-10 test.
Example
Take 8001015009087:
| Segment | Digits | Meaning |
|---|---|---|
| Birth date | 800101 | 1 January 1980 |
| Gender serial | 5009 | Male (≥ 5000) |
| Citizenship | 0 | SA citizen |
| Check digit | 7 | Matches the Luhn expectation |
The decoder confirms the final 7 is the correct Luhn digit, so the number is structurally consistent.
Everything runs in your browser, so the ID number you enter is never uploaded. This is a structure and checksum decoder only — it does not confirm the number against the Department of Home Affairs.