Skip to content

joaopedrogomes/nif-pt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@joaopedrogomes/nif-pt

Validate and get more information from portuguese tax ID numbers

Understanding the NIF concept

The Portuguese tax system is really complex, so let's check some concepts first:

What is a NIF?

NIF stands for Número de Identificação Fiscal, which translates to Tax ID Number.

Who can get a NIF?

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.

Types of NIF: NIF and NIPC

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.

Installation

npm install --save-dev @joaopedrogomes/nif-pt

Usage

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.

NIF - nif(value: string)

Usage

import { nif } from '@joaopedrogomes/nif-pt';

const data = nif('123456789');

Return

{
    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

Category only - categorize(value: string)

Usage

import { categorize } from '@joaopedrogomes/nif-pt';

const data = nif('123456789');

Return

string

Designation only - designate(value: string)

Usage

import { designate } from '@joaopedrogomes/nif-pt';

const data = nif('123456789');

Return

string

Valid only - validate(value: string)

Usage

import { validate } from '@joaopedrogomes/nif-pt';

const data = nif('123456789');

Return

boolean

Credits

License

MIT