South Africa ID Validator
ValidatorValidate a South African ID number instantly and decode the birth date, sex, and citizenship status it encodes. Confirms the Luhn check digit. Free, runs in your browser.
Why might the decoded birth year be uncertain?
A South African ID number only stores a 2-digit year, with no other marker for the century. This tool always resolves it to the most recent year ending in those 2 digits that isn't in the future — the same convention used by other SA ID tools — but it genuinely cannot distinguish, say, someone born in 1925 from someone born in 2025 with the same 6 date digits.
About this tool
About South Africa ID Validator
The South African ID number is a 13-digit Luhn-checksummed identifier that also encodes a birth date, sex, and citizenship status — placing it alongside CURP, PESEL, and Personnummer as one of this site's richer 'decodable' national ID formats.
Paste a 13-digit ID number and the tool verifies the Luhn check digit, then decodes the birth date (resolving the 2-digit year with a today-relative pivot, since the number itself doesn't encode a century), sex (from the 4-digit gender block), and citizenship status (from the 11th digit).
Use this to verify an ID number collected on a South African-facing form (banking KYC, HR onboarding, government services), or to understand exactly what the number encodes.
Instant, fully client-side validation and decoding — with an honest disclosure of the genuine century ambiguity the number format cannot resolve on its own.
Key Features
- Verifies the Luhn checksum over all 13 digits
- Decodes birth date, sex, and citizenship status
- Discloses the inherent birth-year century ambiguity
- 100% browser-based, no data sent
FAQ
South Africa ID Validator — Frequently Asked Questions
How is sex encoded in the ID number?
Digits 7 through 10 form a 4-digit number: values below 5000 indicate female, and 5000 and above indicate male.
How is citizenship status encoded?
Digit 11 alone: 0 means South African citizen, 1 means permanent resident.
Why might the decoded birth year be wrong?
The ID number only stores a 2-digit year, with nothing else in the number indicating the century. This tool always resolves it to the most recent matching year that isn't in the future (the same convention used by other reference SA ID implementations) — but a real ID issued to someone born 100 years earlier would show the exact same 6 date digits, and there is no way to tell the two apart from the number alone.
Can this tool confirm an ID number belongs to a real, living person?
No. This is a mathematical Luhn checksum check and a structural decode only. Confirming an ID number is registered to a real person requires access to South Africa's Department of Home Affairs systems, which this site cannot query.
Tips
- Spaces are stripped automatically before validation
- The decoded birth year uses a dynamic, today-relative century guess — treat it as a best estimate, not a certainty
- The old 4th-from-last digit (historically a race classifier) carries no meaning in the modern system and isn't decoded
Explore more
Related Tools
Other tools that might be useful for your workflow