stdnum
Version:
Standard Number Validation
243 lines (222 loc) • 41.6 kB
Markdown
# Country Standard Numbers

JavaScript (TypeScript) package to validate most all national numbers, with a focus on
VAT, Person and Tax identifiers.
## Quick start
import { stdnum } from 'stdnum';
console.log(stdnum.BR.cpf.name); // 'Brazilian National Identifier',
console.log(stdnum.BR.cpf.localName); // 'Cadastro de Pessoas Físicas',
console.log(stdnum.BR.cpf.abbreviation); // 'CPF',
const {
isValid, // is false
error, // InvalidLength: The number has an invalid length...
} = stdnum.BR.cpf.validate('xyzzy');
const {
isValid, // true
compact, // '39053344705'
isIndividual, // true
isEntity, // false
} = stdnum.BR.cpf.validate("390.533.447-05");
All country validators are in the "namespace" of the ISO country code.
## Supported Countries and Numbers
How you can help! This library currently support about half the countries in the world. It would be great if we can get to 100%. Submit an issue with any reference documentation and I'll do my best to integrate it, bonus points if you can get detailed descriptions of checksums or other validation criteria.
| Country | Code | Name | Group | Meaning |
| ---------------------- | ---- | --------------- | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------- |
| Andorra | AD | NRT | Tax | Tax Register Identifier (Número de Registre Tributari) |
| Albania | AL | NIPT | Vat | Albanian Vat Identifier (Numri i Identifikimit për Personin e Tatueshëm) |
| Argentina | AR | CBU | Bank | Single Banking Code (Clave Bancaria Uniforme) |
| Argentina | AR | CUIT | Tax | Unique Tax Identification Code (Código Único de Identificación Tributaria) |
| Argentina | AR | DNI | Person | National Identity Document (Documento Nacional de Identidad) |
| Austria | AT | Businessid | Company | Austrian Company Register Number |
| Austria | AT | TIN | Tax | Austrian tax identification number (Abgabenkontonummer) |
| Austria | AT | UID | VAT | Austrian VAT number (Umsatzsteuer-Identifikationsnummer) |
| Austria | AT | VNR | Person | Austrian social security number(Versicherungsnummer) |
| Australia | AU | ABN | Company | Australian Business Number |
| Australia | AU | ACN | Company | Australian Company Number |
| Australia | AU | TFN | Tax/Person/Company | Australian Tax File Number |
| Bosnia and Herzegovina | BA | JMBG | Person | Unique Master Citizen Number |
| Belize | BZ | TIN | Person/Company | Brazilian Tax ID () |
| Belgium | BE | BIS | Person | Belgian Number for Foreigners |
| Belgium | BE | INSZ, NISS | Person | Belgian Social Security Identification Number (Identificatienummer van de Sociale Zekerheid, Numéro d'Identification Sécurité Sociale) |
| Belgium | BE | NN | Person | Belgian National Number (Numéro National) |
| Belgium | BE | VAT | Company | Belgian Enterprise Number |
| Bulgaria | BG | EGN | Person | ЕГН, Единен граждански номер, Bulgarian personal identity codes |
| Bulgaria | BG | PNF | Person | PNF (ЛНЧ, Личен номер на чужденец, Bulgarian number of a foreigner). |
| Bulgaria | BG | VAT | Company | Идентификационен номер по ДДС, Bulgarian VAT number |
| Brazil | BR | CPF | Person | Brazilian identity number (Cadastro de Pessoas Físicas) |
| Brazil | BR | CNPJ | Company | Brazilian company number (Cadastro Nacional da Pessoa Jurídica) |
| Belarus | BY | UNP | Person/Company | Учетный номер плательщика, the Belarus VAT number |
| Canada | CA | BC_BHN | Person | British Columbia Personal Health Number |
| Canada | CA | BN | Company | Company Identifier (Canadian Business Number) |
| Canada | CA | GST | Company | Goods and service Tax Number |
| Canada | CA | PST | Company | Provincial Service Tax Number |
| Canada | CA | QST | Company | Quebec Service Tax Number |
| Canada | CA | SIN | Person | Person Identifier (Social Insurance Number) |
| Cuba | CU | NI | Person | Número de identidad, Cuban identity card numbers |
| Cyprus | CY | VAT | Company | Αριθμός Εγγραφής Φ.Π.Α. (Cypriot VAT number) |
| Czech Republic | CZ | DIC | Company | Daňové identifikační číslo, Czech VAT number |
| Czech Republic | CZ | RC | Person | Rodné číslo, the Czech birth number |
| Swisserland | CH | SSN | Person | Swiss social security number ("Sozialversicherungsnummer") |
| Swisserland | CH | UID | Company | Unternehmens-Identifikationsnummer, Swiss business identifier |
| Swisserland | CH | VAT | Company | Mehrwertsteuernummer, the Swiss VAT number |
| Chile | CL | RUT | Tax | Tax Identifier (Rol Unico Tributario) [RUN] |
| China | CN | RIC | Person | Person Identifier (Chinese Resident Identity Card Number) |
| China | CN | USCC | Company | Company Identifier (Unified Social Credit Code, 统一社会信用代码, China tax number) |
| Columbia | CO | NIT | Tax | Tax Identifier (Número de Identificación Tributaria) |
| Costa Rica | CR | CPF | Person | Person Identifier (Cédula de Persona Física) |
| Costa Rica | CR | CPJ | Company | Company Identifier (Cédula de Persona Jurídica) |
| Costa Rica | CR | CR | Person | Person Identifier (Cédula de Residencia) |
| Germany | DE | IDNR | Person | Steuerliche Identifikationsnummer, German personal tax number |
| Germany | DE | Passport | Person | Passport Number |
| Germany | DE | STNR | Company | Steuernummer, German tax number |
| Germany | DE | SVNR | Person | Sozialversicherungsnummer, German social security / pension insurance number number |
| Germany | DE | VAT | Company | Vat identifier |
| Denmark | DK | VAT | Company | Momsregistreringsnummer, Danish VAT number |
| Dominican Republic | DO | CEDULA | Person | Person Identifier (Cédula de Residencia) |
| Dominican Republic | DO | NCF | Vat | Tax Receipt Number (Números de Comprobante Fiscal) |
| Dominican Republic | DO | RNC | Tax | Person Identifier (Registro Nacional del Contribuyente) |
| Algeria | DZ | NIF | Person/Company | Numéro d'Identification Fiscale, Algeria tax number |
| Ecuador | EC | CI | Person | Ecuadorian person identifier (Cédula de identidad) |
| Estonia | EE | IK | Person | Isikukood (Estonian Personcal ID number). |
| Estonia | EE | KMKR | Company | KMKR (Käibemaksukohuslase, Estonian VAT number) |
| Estonia | EE | Registrikood | Company | Registrikood (Estonian organisation registration code) |
| Egypt | EG | TN | Company | Tax Registration Number (الرقم الضريبي, Egypt tax number) |
| Ecuador | EC | RUC | Tax/Vat | Ecuadorian company tax number (Registro Único de Contribuyentes) |
| El Salvador | SV | NIT | Tax | Tax Identifier (Número de Identificación Tributaria) |
| Finland | FI | ALV | Company | ALV nro (Arvonlisäveronumero, Finnish VAT number) |
| Finland | FI | HETU | Person | HETU (Henkilötunnus, Finnish personal identity code) |
| Finland | FI | YTUNNUS | Company | Y-tunnus (Finnish business identifier) |
| Faroe Islands | FO | VN | Company/Person | Vinnutal, Faroe Islands tax number |
| France | FR | NIF | Person | NIF (Numéro d'Immatriculation Fiscale, French tax identification number) |
| Great Britain | GB | NINO | Person | NINO (United Kingdom National Insurance Number) |
| Great Britain | GB | UTR | Person | UTR (United Kingdom Unique Taxpayer Reference) |
| Great Britain | GB | VAT | Company | VAT (United Kingdom (and Isle of Man) VAT registration number) |
| Ghana | GH | TIN | Person/Company | Taxpayer Identification Number, Ghana tax number |
| Guinea | GN | NIFP | Person/Company | Numéro d'Identification Fiscale Permanent, Guinea tax number |
| Greece | GR | AMKA | Company | AMKA (Αριθμός Μητρώου Κοινωνικής Ασφάλισης, Greek social security number) |
| Guatemala | GT | CUI | Person | Guatemala person (Código Único de Identificación) |
| Guatemala | GT | NIT | Company | Guatemala company tax number (Número de Identificación Tributaria) |
| Greece | GR | VAT | Company | FPA, ΦΠΑ, ΑΦΜ (Αριθμός Φορολογικού Μητρώου, the Greek VAT number) |
| France | FR | NIR | Person | NIR (French personal identification number) |
| France | FR | SIREN | Company | SIREN (a French company identification number) |
| France | FR | SIRET | Company | SIRET (a French company establishment identification number) |
| France | FR | TVA | Vat | VAT Identifier |
| Croatia | HR | OIB | Person | Osobni identifikacijski broj, Croatian identification number |
| Hong Kong | HK | HKID | Person | Hong Kong Identity Card |
| Hungaria | HU | ANUM | Vat | ANUM (Közösségi adószám, Hungarian VAT number) |
| Iceland | IS | KENNITALA | Person/Company | Icelandic personal and organisation identity code |
| Iceland | IS | VSK | Vat | Virðisaukaskattsnúmer, Icelandic VAT number |
| Indonesia | ID | NPWP | Person/Company | NPWP (Nomor Pokok Wajib Pajak, Indonesian VAT Number). |
| Ireland | IE | PPS | Person | Personal Public Service Number, Irish personal number |
| Ireland | IE | VAT | Tax/Vat | Ireland Value Added Tax ID |
| India | IN | AADHAAR | Company | Indian digital resident personal identity number |
| India | IN | EPIC | Person | Electoral Photo Identity Card, Indian Voter ID |
| India | IN | GSTIN | Vat | Goods and Services Tax identification number, Indian VAT number |
| India | IN | PAN | Person | Permanent Account Number, Indian income tax identifier |
| India | IN | VIN | Person | Indian personal virtual identity number |
| Israel | IL | IDNR | Person | Identity Number (Mispar Zehut, מספר זהות, Israeli identity number) |
| Israel | IL | HR | Company | Company Number (מספר חברה, or short ח.פ. Israeli company number) |
| Italy | IT | AIC | Drug | Italian code for identification of drugs |
| Italy | IT | CODICEFISCALE | Person | Codice Fiscale (Italian tax code for individuals) |
| Italy | IT | IVA | Vat | Partita IVA (Italian VAT number) |
| Liechtenstein | LI | PEID | Person/Company | Personenidentifikationsnummer |
| Lithuanian | LT | ASMENS | Person | Asmens kodas (Person Number) |
| Lithuanian | LT | PVM | Vat | Pridėtinės vertės mokestis mokėtojo kodas |
| Luxembourgian | LU | TVA | Vat | taxe sur la valeur ajoutée |
| Latvian | LV | PVN | Person/Vat | Pievienotās vērtības nodokļa |
| Morocco | MA | ICE | Company | Identifiant Commun de l'Entreprise, Moroccan new registration number |
| Macedonia | MK | EDB | Vat | Едниствен Даночен Број, North Macedonia tax number |
| Macedonia | MK | JMBG | Person | Unique Master Citizen Number (Единствен матичен број на граѓанинот) |
| Monaco | MC | TVA | Vat | taxe sur la valeur ajoutée, Monacan VAT number |
| Moldavia | MD | IDNO | Vat | Moldavian VAT number |
| Malta | MT | VAT | Vat | Maltese VAT number |
| Mauritius | MU | NID | Person | ID number (Mauritian national identifier) |
| Japan | JP | CN | Company | 法人番号, hōjin bangō, Japanese Corporate Number |
| Kenya | KE | PIN | Person/Company | Personal Identification Number, Kenya tax number |
| South Korea | KR | BRN | Company | 사업자 등록 번호, South Korea Business Registration Number) |
| South Korea | KR | RRN | Person | South Korean resident registration number |
| Mexico | MX | RFC | Tax/Vat | Tax Identifier (Registro Federal de Contribuyentes) |
| Mexico | MX | CURP | Person | Individual Identifier (Clave Única de Registro de Población) |
| Mexico | MX | CLABE | Bank | Bank Account (Clave Bancaria Estandarizada) |
| Montenegro | ME | JMBG | Person | Unique Master Citizen Number |
| Montenegro | ME | PIB | Tax/Vat | Poreski Identifikacioni Broj, Montenegro tax number |
| Malaysia | MY | NRIC | Person | Malaysian National Registration Identity Card Number |
| Netherlands | NL | BSN | Person | Burgerservicenummer, the Dutch citizen identification number |
| Netherlands | NL | BTW | Vat | Btw-identificatienummer (Omzetbelastingnummer, the Dutch VAT number) |
| Netherlands | NL | Onderwijsnummer | Person | Onderwijsnummer (the Dutch student identification number) |
| New Zealand | NZ | IRD | Person/Company | New Zealand Inland Revenue Department (Te Tari Tāke) number |
| New Zealand | NZ | BANK | Bank | New Zealand Bank Account numbers - checkdigit |
| Norway | NO | Fodsels | Person | Fødselsnummer (Norwegian birth number, the national identity number) |
| Norway | NO | Konto | Bank | Konto nr. (Norwegian bank account number) |
| Norway | NO | MVA | Vat | Merverdiavgift, Norwegian VAT number |
| Norway | NO | Orgnr | Company | Organisasjonsnummer, Norwegian organisation number |
| Paraguay | PY | RUC | Tax/Vat | Tax Identifier (Registro Único de Contribuyentes) |
| Peru | PE | CUI | Person | Person Identifier (Cédula Única de Identidad) |
| Peru | PE | RUC | Tax/Vat | Tax Identifier (Registro Único de Contribuyentes) |
| Peru | PE | CE | Person | Person Identifier (Carné de Extranjería) |
| Pakistan | PK | CNIC | Person | National Identity Card |
| Pakistan | PK | NTN | Company | Tax Identification Number |
| Poland | PL | NIP | Vat | Numer Identyfikacji Podatkowej, Polish VAT number |
| Poland | PL | PESEL | Person | Polish national identification number |
| Poland | PL | REGON | Company | Rejestr Gospodarki Narodowej, Polish register of economic units |
| Portugual | PT | CC | Person/Company | Número de Cartão de Cidadão, Portuguese Identity number |
| Portugual | PT | NIF | Vat | Número de identificação fiscal, Portuguese VAT number |
| Russia | RU | INN | Tax/Vat | Tax Identifier (Идентификационный номер налогоплательщика) |
| Romania | RO | CF | Vat | Cod de înregistrare în scopuri de TVA, Romanian VAT number |
| Romania | RO | CNP | Person | Cod Numeric Personal, Romanian Numerical Personal Code) |
| Romania | RO | CUI | Tax | Codul Unic de Înregistrare, Romanian company identifier |
| Romania | RO | ONRC | Company | Ordine din Registrul Comerţului, Romanian Trade Register identifier |
| San Marino | SM | COE | Company | Codice operatore economico, San Marino national tax number |
| Serbia | RS | PIB | Vat | Poreski identifikacioni broj Tax identification number |
| Serbia | RS | JMBG | Person | Unique Master Citizen Number (Jedinstveni matični broj građana) |
| Sweden | SE | ORGNR | Company | Organisationsnummer, Swedish company number |
| Sweden | SE | PERSONNUMMER | Person | Personnummer (Swedish personal identity number) |
| Sweden | SE | VAT | Vat | VAT (Moms, Mervärdesskatt, Swedish VAT number) |
| Singapore | SG | UEN | Company | Singapore's Unique Entity Number |
| Thailand | TH | IDNR | Person | Thai National ID (บัตรประจำตัวประชาชนไทย) |
| Thailand | TH | MOA | Company | Thailand Memorandum of Association Number |
| Thailand | TH | TIN | Company/Person | Thai Tax ID (Moa or Idnr) |
| Tunisia | TN | MF | Vat | Matricule Fiscal, Tunisia tax number |
| Taiwan | TW | BAN | Company | Taiwanese Unified Business Number (統一編號) |
| Taiwan | TW | NATID | Person | National ID Card Number |
| Taiwan | TW | TAX_CODE | Person | Tax Code |
| Taiwan | TW | UBN | Company | Unified Business Number, 統一編號, Taiwanese tax number |
| Taiwan | TW | UI | Person | UI Number |
| Turkey | TR | TCKIMLIK | Person | Türkiye Cumhuriyeti Kimlik Numarası (Personal ID) |
| Turkey | TR | VKN | Tax | Vergi Kimlik Numarası, Turkish tax identification number |
| Slovenia | SI | DDV | Vat | ID za DDV (Davčna številka, Slovenian VAT number) |
| Slovenia | SI | JMBG | Person | Unique Master Citizen Number (Enotna matična številka občana) |
| Slovakia | SK | DPH | Vat | IČ DPH (IČ pre daň z pridanej hodnoty, Slovak VAT number) |
| Slovakia | SK | RC | Person | RČ (Rodné číslo, the Slovak birth number) |
| Spain | ES | CIF | Tax/Vat | Tax Identifier (Código de Identificación Fiscal) |
| Spain | ES | DNI | Person | Identity code (Documento Nacional de Identidad) |
| Spain | ES | NIE | Person | Identity code foreigner (Número de Identificación de Extranjero) |
| Spain | ES | NIF | Tax | Tax Identifier (Número de Identificación Fiscal) |
| Spain | ES | NSS | Person | El número de Seguridad Social, Social Security Number |
| Sri Lanka | LK | NIC | Person | NIC Number |
| Uruguay | UY | RUT | Tax/Vat | Tax Identifier (Registro Único Tributario) |
| Uruguay | UY | CEDULA | Person | Person Identifier (Cédula de Residencia) |
| Uruguay | UY | NIE | Person | ForeignersI identification Number |
| Ukraine | UA | RNTRC | Person | КПП, RNTRC (Individual taxpayer registration number in Ukraine) |
| Ukraine | UA | EDRPOU | Company | ЄДРПОУ, EDRPOU (Identifier for enterprises and organizations in Ukraine) |
| United States | US | EIN | Tax/Company | Tax Identifier (Employer Identification Number) |
| United States | US | SSN | Tax/Individual | Tax Identifier (Social Security Number) |
| Venezuelan | VE | RIF | Vat | Vat Identifier (Registro de Identificación Fiscal) |
| Vietnam | VN | MST | Company | Mã số thuế, Vietnam tax number |
| South Africa | ZA | IDNR | Person | ID number (South African Identity Document number). |
| South Africa | ZA | TIN | Person/Company | TIN (South African Tax Identification Number). |
| South Africa | ZA | VAT | Company | VAT (South African Value Added Tax Number). |
### Examples
TODO -- Usage examples
### Credits
Thanks to [python-stdnum](https://arthurdejong.org/python-stdnum/) for providing the inspiration and
many of the checksum algorithm sources
### References
https://www.oecd.org/tax/automatic-exchange/crs-implementation-and-assistance/tax-identification-numbers/
https://wiki.scn.sap.com/wiki/display/CRM/Country+Tax+Category+check
### Release Notes
This project is now using https://github.com/semantic-release/semantic-release to manage the
release process. Commit messages should use the format specified to handle the major/minor/patch
versioning information.
This is based on the angular commit message format
https://github.com/angular/angular/blob/master/CONTRIBUTING.md#-commit-message-format