# stdnum.be.bis

BIS (Belgian BIS number).

The BIS number (BIS-nummer, Numéro BIS) is a unique identification number for individuals who are not registered in the National Register, but who still have a relationship with the Belgian government. This includes frontier workers, persons who own property in Belgium, persons with Belgian social security rights but who do not reside in Belgium, etc.

The number is issued by the Belgian Crossroads Bank for Social Security (Banque Carrefour de la sécurité sociale, Kruispuntbank voor Sociale Zekerheid) and is constructed much in the same way as the Belgian National Number, i.e. consisting of 11 digits, encoding the person’s date of birth and gender, a checksum, etc. Other than with the national number though, the month of birth of the BIS number is increased by 20 or 40, depending on whether the sex of the person was known at the time or not.

More information:

- https://sma-help.bosa.belgium.be/en/faq/where-can-i-find-my-bis-number#7326

- https://www.socialsecurity.be/site_nl/employer/applics/belgianidpro/index.htm

- https://nl.wikipedia.org/wiki/Rijksregisternummer

- https://fr.wikipedia.org/wiki/Numéro_de_registre_national

    >>> compact('98.47.28-997.65')
    '98472899765'
    >>> validate('98 47 28 997 65')
    '98472899765'
    >>> validate('01 49 07 001 85')
    '01490700185'
    >>> validate('12345678901')
    Traceback (most recent call last):
        ...
    InvalidChecksum: ...
    >>> format('98472899765')
    '98.47.28-997.65'
    >>> get_birth_date('98.47.28-997.65')
    datetime.date(1998, 7, 28)
    >>> get_birth_year('98.47.28-997.65')
    1998
    >>> get_birth_month('98.47.28-997.65')
    7
    >>> get_gender('98.47.28-997.65')
    'M'

stdnum.be.bis.compact(number)

  Convert the number to the minimal representation. This strips the number of any valid separators and removes surrounding whitespace.

stdnum.be.bis.format(number)

  Reformat the number to the standard presentation format.

stdnum.be.bis.get_birth_date(number)

  Return the date of birth.

stdnum.be.bis.get_birth_month(number)

  Return the month of the birth date.

stdnum.be.bis.get_birth_year(number)

  Return the year of the birth date.

stdnum.be.bis.get_gender(number)

  Get the person’s gender (‘M’ or ‘F’), which for BIS numbers is only known if the month was incremented with 40.

stdnum.be.bis.is_valid(number)

  Check if the number is a valid BIS Number.

stdnum.be.bis.validate(number)

  Check if the number is a valid BIS Number.