stdnum.es.dni

DNI (Documento Nacional de Identidad, Spanish personal identity codes).

The DNI is a 9 digit number used to identify Spanish citizens. The last digit is a checksum letter.

Foreign nationals, since 2010 are issued an NIE (Número de Identificación de Extranjeros, Foreigner’s Identity Number) instead.

>>> validate('54362315-K')
'54362315K'
>>> validate('54362315Z')  # invalid check digit
Traceback (most recent call last):
    ...
InvalidChecksum: ...
>>> validate('54362315')  # digit missing
Traceback (most recent call last):
    ...
InvalidLength: ...
stdnum.es.dni.calc_check_digit(number: str) str

Calculate the check digit. The number passed should not have the check digit included.

stdnum.es.dni.compact(number: str) str

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

stdnum.es.dni.is_valid(number: str) bool

Check if the number provided is a valid DNI number. This checks the length, formatting and check digit.

stdnum.es.dni.validate(number: str) str

Check if the number provided is a valid DNI number. This checks the length, formatting and check digit.