South Africa ID Validator

Validator

Validate 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.

Enter ID Number
Validation Result
Enter a South African ID number above to validate

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