stdnum.ie.vat

VAT (Irish tax reference number).

The Irish VAT number consists of 8 or 9 digits. The number is either 7 digits and 1 letter (optionally followed by a W for married women), 7 digits and 2 letters, or 6 digits and 2 letters or symbols (in second and last position).

>>> validate('IE 6433435F')  # pre-2013 format
'6433435F'
>>> validate('IE 6433435OA')  # 2013 format
'6433435OA'
>>> validate('6433435E')  # incorrect check digit
Traceback (most recent call last):
    ...
InvalidChecksum: ...
>>> validate('8D79739I')  # old style number
'8D79739I'
>>> validate('8?79739J')  # incorrect old style
Traceback (most recent call last):
    ...
InvalidFormat: ...
>>> convert('1F23456T')
'0234561T'
stdnum.ie.vat.calc_check_digit(number: str) str

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

stdnum.ie.vat.compact(number: str) str

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

stdnum.ie.vat.convert(number: str) str

Convert an “old” style 8-digit VAT number where the second character is a letter to the new 8-digit format where only the last digit is a character.

stdnum.ie.vat.is_valid(number: str) bool

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

stdnum.ie.vat.validate(number: str) str

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