# stdnum.in_.pan

PAN (Permanent Account Number, Indian income tax identifier).

The Permanent Account Number (PAN) is a 10 digit alphanumeric identifier for Indian individuals, families and corporates for income tax purposes.

The number is built up of 5 characters, 4 numbers and 1 character. The fourth character indicates the type of holder of the number and the last character is computed by an undocumented checksum algorithm.

More information:

- https://en.wikipedia.org/wiki/Permanent_account_number

    >>> validate('ACUPA7085R')
    'ACUPA7085R'
    >>> validate('234123412347')
    Traceback (most recent call last):
        ...
    InvalidLength: ...
    >>> validate('ABMPA32111')  # check digit should be a letter
    Traceback (most recent call last):
        ...
    InvalidFormat: ...
    >>> validate('ABMXA3211G')  # invalid type of holder
    Traceback (most recent call last):
        ...
    InvalidComponent: ...
    >>> mask('AAPPV8261K')
    'AAPPVXXXXK'
    >>> info('AAPPV8261K')['card_holder_type']
    'Individual'

`stdnum.in_.pan.``compact`(number)

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

`stdnum.in_.pan.``info`(number)

  Provide information that can be decoded from the PAN.

`stdnum.in_.pan.``is_valid`(number)

  Check if the number provided is a valid PAN. This checks the length and formatting.

`stdnum.in_.pan.``mask`(number)

  Mask the PAN as per CBDT masking standard.

`stdnum.in_.pan.``validate`(number)

  Check if the number provided is a valid PAN. This checks the length and formatting.