Free and unlimited. Tells you whether the number is correctly formed. It does not look anyone up.
Validated in your browser. No network request, nothing logged, nothing stored.
A South African identity number is thirteen digits: the birth date as YYMMDD, a four-digit sequence number that also encodes gender, a citizenship digit, a historic unused digit, and a Luhn check digit over the rest. This page verifies the check digit, confirms the date segment is a real date, and decodes what the number says about itself.
What it cannot do: this is not a lookup. It takes a number you already have and tells you whether that number is built correctly. It will not find a person, return anyone's details, or tell you an identity number from a name. It also cannot confirm that Home Affairs actually issued the number, or that it belongs to the person who gave it to you. A well-formed number that was never issued still passes a structural check, here or anywhere else. Nobody outside Home Affairs can tell you otherwise, and any service claiming to is overstating what it did.
This page is for checking one number by hand. If you need it inside an onboarding flow, a tenant screening process or a nightly job, verza does the same check over an API, plus batch validation of up to 50 identifiers in one call.
curl -H "Authorization: Bearer YOUR_KEY" \
"https://verza.dev/v1/id-validate?id=8001015009087"
Get a free API key at /signup, or pay per call with no account at all. Full details in the ID validation docs.
A structural check and a Home Affairs lookup answer different questions, so they belong in that order rather than in competition. A Home Affairs verification is priced in rands per query, and it charges the same whether the number was ever issuable or was a typo in a web form.
Screening structurally first means you only pay the expensive question about numbers that could actually exist. On a batch where a small share of entries are mistyped or transposed, the filter costs a fraction of the lookups it prevents, and every number it rejects is one no registry could have matched anyway.
It does not replace the registry step. A well-formed number that Home Affairs never issued still passes here, and only Home Affairs can tell you otherwise.
National Credit Act Regulation 42 caps the interest rate on every category of South African credit agreement, and the cap is fixed at the repo rate in force on the day the agreement was concluded, not today's rate. Getting that date wrong is the most common way a lawfulness check goes wrong.
verza returns a verdict rather than a rate table: lawful or unlawful, the exact cap for that credit type on that date, any excess in percentage points, and the full workings with citations. See the NCA loan check docs.