# stdnum.za.idnr

ID number (South African Identity Document number).

The South African ID number is issued to individuals within South Africa. The number consists of 13 digits and contains information about a person’s date of birth, gender and whether the person is a citizen or permanent resident.

More information:

- https://en.wikipedia.org/wiki/South_African_identity_card
- http://www.dha.gov.za/index.php/identity-documents2

    >>> validate('7503305044089')
    '7503305044089'
    >>> validate('8503305044089')
    Traceback (most recent call last):
        ...
    InvalidChecksum: ...
    >>> validate('9125568')
    Traceback (most recent call last):
        ...
    InvalidLength: ...
    >>> get_gender('7503305044089')
    'M'
    >>> get_birth_date('7503305044089')
    datetime.date(1975, 3, 30)
    >>> get_citizenship('7503305044089')
    'citizen'
    >>> format('750330 5044089')
    '750330 5044 08 9'

`stdnum.za.idnr.``compact`(number)

  Convert the number to the minimal representation.

  This strips the number of any valid separators and removes surrounding whitespace.

`stdnum.za.idnr.``format`(number)

  Reformat the number to the standard presentation format.

`stdnum.za.idnr.``get_birth_date`(number)

  Split the date parts from the number and return the date of birth.

  Since the number only uses two digits for the year, the century may be incorrect.

`stdnum.za.idnr.``get_citizenship`(number)

  Get the citizenship status (citizen/resident) from the ID number.

`stdnum.za.idnr.``get_gender`(number)

  Get the gender (M/F) from the person’s ID number.

`stdnum.za.idnr.``is_valid`(number)

  Check if the number is a valid South African ID number.

`stdnum.za.idnr.``validate`(number)

  Check if the number is a valid South African ID number.

  This checks the length, formatting and check digit.