Validate and get more information from portuguese tax ID numbers
The Portuguese tax system is really complex, so let's check some concepts first:
NIF stands for Número de Identificação Fiscal, which translates to Tax ID Number.
The NIF is a unique ID and can be attributed to individuals or to collective persons like companies, societies, etc., that need to pay taxes in Portugal. The number can be attributed to non-resident foreigners as well.
There are two types of NIF, and the first two digits of the number define it:
- Between 10 and 49: NIF - individuals
- Betweeen 50 and 99: NIPC - collective
So, while colloquially the term NIF applies to all tax IDs, legally, the collective tax IDs are referred to as NIPC. The acronym NIPC stands for Número de Identificação de Pessoa Colectiva, which translates to Collective Person ID Number.
npm install --save-dev @joaopedrogomes/nif-pt
You can get all the information in an object with the NIF function (nif). However, if you only want to get one of the keys of the object, you can also call the desired function directly: categorize, designate, or validate.
import { nif } from '@joaopedrogomes/nif-pt';
const data = nif('123456789');
{
category: string,
designation: string,
valid: boolean
}
Category : string | Designation : string | Valid : boolean |
---|---|---|
pessoa singular | NIF | true |
pessoa colectiva | NIPC | false |
administração pública | ||
pessoa singular não residente | ||
herança indivisa | ||
pessoa colectiva não residente | ||
fundos de investimento | ||
atribuição oficiosa | ||
regime excepcional | ||
condominios e sociedades irregulares | ||
não residentes | ||
sociedades civis |
import { categorize } from '@joaopedrogomes/nif-pt';
const data = nif('123456789');
string
import { designate } from '@joaopedrogomes/nif-pt';
const data = nif('123456789');
string
import { validate } from '@joaopedrogomes/nif-pt';
const data = nif('123456789');
boolean