A South African identity number encodes a birth date, a gender segment, a citizenship digit and a Luhn check digit. verza validates the structure and decodes those fields, returning what the number says and, just as importantly, what it does not prove.
The check is stateless. Identity numbers are never stored and never logged, which is what lets it sit inside a KYC or onboarding flow without becoming a POPIA liability of its own. Structural validity is not registration: a well-formed number that was never issued still passes, and the response says so explicitly.
Structural validation of a South African identity number with safe decode: Luhn check digit, birth date, gender and citizenship segments (citizen or permanent resident). The structural step in KYC, KYB and customer onboarding or due diligence workflows: derive date of birth, age, gender and citizenship without storing the identity. Stateless, never stored or logged (POPIA-conscious by construction). Confirms structure only, not registration with Home Affairs.
No accounts and no API keys. A paid endpoint replies HTTP 402 with the exact payment requirements; an x402 client pays USDC on Base (about two seconds to settle) and retries automatically. Invalid input is rejected with a free 400 before any payment is challenged, so an agent never pays to learn it made a typo.
South African VAT number validation API NCA credit agreement lawfulness API South African KYB and onboarding API zaref: NCA maximum interest rates