The Wayback Machine - https://web.archive.org/web/20110830163555/http://xml-fx.com:80/services/saidvalidator.aspx
Login   Search   
XML-FX.COM

SAIDValidator

SAIDValidator is an ASP.NET webservice to validate South African Person ID numbers. It provides validation of a person ID by calculating the check-digit (digit-13), and extracts the date-of-birth, gender, citizenship, sequence and other information.

Location

SAIDValidator is located at: http://xml-fx.com/services/SAIDValidator/SAIDValidator.asmx.

SA Person ID definition

A South African person identification number is a 13-digit number containing only numeric characters, and no whitespace, punctuation, or alpha characters. It is defined as follows:

YYMMDDGSSSCAZ

YYMMDD : Date of birth (DOB)
     G : Gender. 0-4 Female; 5-9 Male
   SSS : Sequence No. for DOB/G combination
     C : Citizenship. 0 SA; 1 Other
     A : Usually 8, or 9 but can be other values
     Z : Calculated control (check) digit

 The control digit (Z) is calculated as follows:

Using ID Number 8001015009087 as an example:

Add all the digits in the odd positions (excluding last digit).
8 + 0 + 0 + 5 + 0 + 0 = 13  .............................[1]

Move the even positions into a field and multiply the number by 2.
011098 x 2 = 22196  .....................................[2]

Add the digits of the result in [2].
2 + 2 + 1 + 9 + 6 = 20  .................................[3]

Add the answer in [3] to the answer in [1].
13 + 20 = 33  ...........................................[4]

Subtract the second digit of [4](i.e. 3) from 10. The number must tally with the last number in the ID Number. If the result is 2 digits, the last digit is used to compare against the last number in the ID Number. If the answer differs, the ID number is invalid.

Information sections

Documentation Standard WSDL service description and web method documentation.
Schemas The XML-schemas for the different object types used as parameters and return values of the webservice methods.
Blog The original blog post for more information: How to validate SA Identity Numbers.
Test Page A standard input form that when submitted returns an analysis and validation of the ID number. It calls the SAIDValidator webservice.