@exodus/stdnum

中文文档
1.6.0发布于 2026/10/30MITTypeScriptES Module近 30 天下载 5243

Library for validating and formatting standard numbers.

原始使用文档
文档目录8 节
  1. Installation
  2. Usage
  3. getDocumentType
  4. compact
  5. isValid
  6. Supported Countries
  7. Document Type Abbreviations
  8. License

@exodus/stdnum

Library for validating and identifying tax IDs, national identification numbers, and passports across 70+ countries.

Built on top of stdnum, with additional validators and customizations tailored for KYC and payment platform integrations.

Installation

pnpm add @exodus/stdnum

Usage

getDocumentType

Returns the document type abbreviation for a valid identification number. Useful for determining which type of ID was provided when multiple formats are accepted.

import { getDocumentType } from '@exodus/stdnum'

getDocumentType('US', '123-45-6789') // 'ssn'
getDocumentType('AR', '20-05536168-2') // 'cuil'
getDocumentType('AR', '12345678') // 'dni'
getDocumentType('AU', 'M1234567') // 'passport'
getDocumentType('US', 'invalid') // undefined

compact

Returns the normalized form of a valid identification number, with separators and country prefixes removed. Uses the same validator as getDocumentType.

import { compact } from '@exodus/stdnum'

compact('US', '123-45-6789') // '123456789'
compact('GR', 'EL094259216') // '094259216'
compact('SE', '19121212-1212') // '121212+1212'
compact('US', 'invalid') // undefined

isValid

Simple boolean check for whether an identification number is valid for a given country.

import { isValid } from '@exodus/stdnum'

isValid('US', '123-45-6789') // true
isValid('US', 'invalid') // false

Supported Countries

CountryCodeDocument Types
AlbaniaALNIPT
AndorraADNRT
ArgentinaARCBU, DNI, CUIL, Passport
ArmeniaAMTIN, Passport
AustraliaAUTFN, ABN, ACN, Passport
AustriaATTIN, VSNR, UID, FN
BelarusBYUNP
BelgiumBENRRN, VAT, Passport
BelizeBZTIN
Bosnia and HerzegovinaBAJMBG
BrazilBRCPF, CNPJ, Passport
BulgariaBGUCN, PNF, VAT, Passport
CanadaCASIN, BC BHN, GST, PST, QST, Passport
ChileCLRUN
ChinaCNRICN, USCC, Passport
ColombiaCONIT
Costa RicaCRCPF, CPJ, CR
CroatiaHROIB
CyprusCYVAT
Czech RepublicCZRC, DIC, Passport
DenmarkDKCPR, CVR
EcuadorECCI, RUC
EgyptEGTN
El SalvadorSVNIT
EstoniaEEIK, KMKR, Passport
Faroe IslandsFOVN
FinlandFIHETU, ALV, Passport
FranceFRSPI, NIR, SIREN, SIRET, VAT, Passport
GermanyDESteuer ID, Passport, PWNR, STNR, SVNR, VAT
GhanaGHTIN
GreeceGRAMKA, VAT
GuatemalaGTCUI, NIT
GuineaGNNIFP
HungaryHUTIN, ANUM
IcelandISKennitala, VSK
IndiaINPAN, Aadhaar, EPIC, GSTIN, VID, Passport
IrelandIEPPSN, VAT, Passport
IsraelILHP, IDNR
ItalyITCodice Fiscale, AIC, VAT, Passport
JapanJPMy Number, CN, Passport
KenyaKEPIN
LatviaLVVAT
LiechtensteinLIPEID
LithuaniaLTAsmens, PVM
LuxembourgLUTIN, VAT
MaltaMTTIN, VAT
MauritiusMUNID
MexicoMXCURP, RFC, CLABE
MoldovaMDIDNO
MonacoMCVAT
NetherlandsNLBSN, VAT, Passport
New ZealandNZIRD, Passport
NorwayNOFødselsnummer, VAT, Orgnr
ParaguayPYNational ID, RUC
PeruPECUI, CE, RUC
PhilippinesPHTIN, Passport
PolandPLPESEL, VAT, Passport
PortugalPTNIF, CC, Passport
RomaniaROCNP, VAT, Passport
RussiaRUINN, Passport
Saudi ArabiaSATIN
SerbiaRSJMBG
SlovakiaSKVAT, RC
SloveniaSIVAT, EMSO, TIN
South KoreaKRRRN, BRN, Passport
SpainESNIE, NIF, NSS, Passport
SwedenSETIN, VAT, Passport
SwitzerlandCHAHV, UID, VAT, Passport
ThailandTHTIN, Passport
TunisiaTNMF
United Arab EmiratesAEEmirates ID
United KingdomGBNINO, UTR, VAT, Passport
United StatesUSSSN, ITIN
UruguayUYCI, VAT, NIE

Document Type Abbreviations

AbbreviationFull Name
aadhaarIndian Unique Identification Number
abnAustralian Business Number
acnAustralian Company Number
ahvSwiss Social Security Number
aicItalian Pharmaceutical Product Code
alvFinnish VAT Number
amkaGreek Social Security Number
anumHungarian VAT Number
asmensLithuanian Personal Code
bc_bhnBritish Columbia Birth Health Number
brnKorean Business Registration Number
bsnDutch Citizen Service Number
cbuArgentine Bank Account Number
ccPortuguese Citizen Card
cePeruvian Foreigner Card
ciIdentity Card (Ecuador/Uruguay)
clabeMexican Bank Account Number
cnJapanese Corporate Number
cnpRomanian Personal Numeric Code
cnpjBrazilian Company Taxpayer Registry
cfItalian Fiscal Code
cpfBrazilian/Costa Rican Individual Taxpayer ID
cpjCosta Rican Legal Entity ID
cprDanish Personal Identification Number
crCosta Rican ID
cuiPersonal ID (Guatemala/Peru)
cuilArgentine Labor Identification Code
curpMexican Population Registry Code
cvrDanish Business Registration Number
dicCzech VAT Number
dniArgentine National Identity Document
emirates_idUAE Emirates ID
emsoSlovenian Unique Master Citizen Number
epicIndian Voter ID Card
fnAustrian Company Register Number
fodselsnummerNorwegian Birth Number
gstCanadian Goods and Services Tax Number
gstinIndian GST Identification Number
hetuFinnish Personal Identity Code
hpIsraeli Company Number
idnoMoldovan Company ID
idnrIsraeli ID Number
ikEstonian Personal Identification Code
innRussian Taxpayer Identification Number
irdNew Zealand Inland Revenue Number
itinUS Individual Taxpayer Identification Number
jmbgUnique Master Citizen Number (Bosnia/Serbia)
kennitalaIcelandic Personal/Company ID
kmkrEstonian VAT Number
mfTunisian Tax ID
mnJapanese My Number
national_idParaguayan National ID
nidMauritius National ID
nieForeigner Identification Number (Spain/Uruguay)
nifTax Identification Number (Spain/Portugal)
nifpGuinea Tax ID
ninoUK National Insurance Number
niptAlbanian Business Tax Number
nirFrench Social Security Number
nitTax ID Number (Colombia/Guatemala/El Salvador)
nrrnBelgian National Register Number
nrtAndorran Tax Number
nssSpanish Social Security Number
oibCroatian Personal Identification Number
orgnrNorwegian Organization Number
panIndian Permanent Account Number
passportPassport Number
peidLiechtenstein Company ID
peselPolish National Identification Number
pinKenyan Personal Identification Number
pnfBulgarian Foreigner Personal Number
ppsnIrish Personal Public Service Number
pstCanadian Provincial Sales Tax Number
pvmLithuanian VAT Number
pwnrGerman Passport Card Number
qstQuebec Sales Tax Number
rcBirth Number (Czech/Slovakia)
rfcMexican Federal Taxpayer Registry
ricnChinese Resident Identity Card Number
rrnKorean Resident Registration Number
rucTaxpayer Registry (Ecuador/Paraguay/Peru)
runChilean National Identification Number
sinCanadian Social Insurance Number
sirenFrench Company Registration Number
siretFrench Establishment Identification Number
spiFrench Tax Identification Number
ssnUS Social Security Number
steuer_idGerman Tax Identification Number
stnrGerman Tax Number
svnrGerman Social Insurance Number
tfnAustralian Tax File Number
tinTax Identification Number (generic)
tnEgyptian Tax Number
ucnBulgarian Unified Civil Number
uidSwiss Business ID, Austrian VAT Number
unpBelarusian Taxpayer Number
usccChinese Unified Social Credit Code
utrUK Unique Taxpayer Reference
vatValue Added Tax Number
vidIndian Virtual ID
vnFaroese V-Number
vskIcelandic VAT Number
vsnrAustrian Social Security Number

License

MIT

版本与发布记录

@exodus/stdnum 共发布 9 个版本,首次发布于 2026/02/02;过去 12 个月发布了 9 个版本。

版本发布日期距今
1.6.0latest2026/10/3014 天前
1.5.12026/10/2717 天前
1.5.02026/10/2717 天前
1.4.12026/10/141 个月前
1.4.02026/07/024 个月前
1.3.12026/02/138 个月前

关于 @exodus/stdnum 的常见问题

@exodus/stdnum 是什么?

Library for validating and formatting standard numbers.

如何安装 @exodus/stdnum?

在项目目录运行 npm install @exodus/stdnum,或使用 pnpm add / yarn add / bun add。

@exodus/stdnum 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@exodus/stdnum 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@exodus/stdnum 可以商用吗?

@exodus/stdnum 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@exodus/stdnum 的下载量有多少?

根据 npm 官方下载统计,@exodus/stdnum 在 2026/10/14 – 2026/11/12 这 30 天内被下载 5,243 次,日均约 175 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@exodus/stdnum 还在维护吗?

最新版本 1.6.0 发布于 2026/10/30(14 天前);至今共发布 9 个版本,其中过去 12 个月发布了 9 个;首次发布于 2026/02/02。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。