# 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: str) → str

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

stdnum.be.bis.format(number: str) → str

  Reformat the number to the standard presentation format.

stdnum.be.bis.get_birth_date(number: str) → date | None

  Return the date of birth.

stdnum.be.bis.get_birth_month(number: str) → int | None

  Return the month of the birth date.

stdnum.be.bis.get_birth_year(number: str) → int | None

  Return the year of the birth date.

stdnum.be.bis.get_gender(number: str) → str | None

  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: str) → bool

  Check if the number is a valid BIS Number.

stdnum.be.bis.validate(number: str) → str

  Check if the number is a valid BIS Number.