Canadian · Validation
NPI number validator.
Check a 10-digit US National Provider Identifier against the real Luhn check-digit formula CMS uses — the same routine check medical billers, pharmacists and insurance staff run on an NPI before they trust it.
How it checks out: CMS calculates the NPI check digit with the standard Luhn (modulus-10 “double-add-double”) formula, always computed as if the fixed prefix 80840 (the card-issuer-identifier prefix for US health applications) were prepended to the 9-digit identifier root — even though the prefix itself is never part of the NPI you're given.
Inputs
Result
Enter an NPI and press Check.
How the NPI check digit is calculated
Every US health care provider that transmits HIPAA-covered electronic transactions gets a 10-digit National Provider Identifier (NPI): 9 numeric digits with no embedded meaning, plus a final check digit. CMS specifies that check digit using the standard Luhn formula for computing the modulus-10 “double-add-double” check digit — the same algorithm used for credit-card numbers and, per CMS's own document, for the ISO card-issuer identifier on a standard health identification card.
The wrinkle is the prefix. When an NPI is printed as a card-issuer identifier, it is preceded by 80840 (80 = health applications, 840 = the United States under ISO 3166-1). CMS's rule: the check digit is always calculated as if that prefix were present, even on a bare NPI that never carries it. So validating an NPI means prepending 80840 to its 9-digit root, running Luhn on the resulting 14 digits, and comparing the result to the 10th digit you were given.
Worked example, from CMS's own specification document: identifier root 123456789, prefixed to 80840123456789. Doubling alternate digits from the right and summing gives 67; the amount needed to reach the next multiple of ten is 3 — so the full, correctly-checksummed NPI is 1234567893.
Checksum only — not an NPPES registry lookup
This tool verifies the check digit's arithmetic entirely in your browser. It does not query the NPPES registry, so a checksum pass is not proof the number was ever actually assigned to a real provider — only the NPPES NPI Registry can confirm that. Nothing you type is transmitted, stored, or logged.