International · Validation
New Zealand HPI identifier validator.
Check a Health Provider Index (HPI) identifier: a facility (F), an organisation (G) or a practitioner's Common Person Number (CPN), against the modulus 11 routine Health NZ publishes for each.
How it works: for an organisation or facility such as FB9964-G, multiply the six characters before the hyphen by 7, 6, 5, 4, 3, 2 and add; the remainder after dividing by 11 is turned back into a letter and must equal the check letter (10 is K, 0 is never issued). For a CPN such as 18ABCD, multiply the first digit and the four letters by 6, 5, 4, 3, 2; 11 minus the remainder is the second character.
How HPI identifier check characters work
Health NZ's Health Provider Index gives identifiers to practitioners (the Common Person Number, CPN), to organisations and to facilities. Its validation routine puts all three on modulus 11, with slightly different layouts.
| Identifier | Layout | Weights and check |
|---|---|---|
| Facility | F, two letters or digits, three digits, check letter (FXXNNN-C) | Characters 1 to 6 x 7, 6, 5, 4, 3, 2. Remainder after dividing by 11 maps back to a letter (7 is G, 9 is J, 10 is K). Remainder 0 is never issued |
| Organisation | G, two letters or digits, three digits, check letter (GXXNNN-C) | Same weights and mapping as a facility |
| Practitioner (CPN) | A digit 1 to 9, a check digit, then four letters (NCAAAA) | Digit and four letters x 6, 5, 4, 3, 2. Check digit is 11 minus the remainder; 10 becomes 0; remainder 0 is never issued |
Health NZ's worked examples check out here: FB9964 gives a total of 161 and remainder 7, which is the letter G; GC8975 gives 174 and remainder 9, which is the letter J; and CPN 18ABCD gives a total of 36, remainder 3 and check digit 8.
About the letter table
Health NZ's HPI document refers to a shared conversion table for letters but its Word file does not reproduce it. This tool uses the table published in Health NZ's NHI routine, A=1 up to Z=24 without I and O, which Health NZ says is consistent with its other modulus 11 uses and which fits both HPI organisation and facility examples. Digits in an identifier count as their face value.
Format and check character, not a register search
A passing result shows the identifier is well formed. It does not show that Health NZ issued it, that it is current, or who holds it. Health NZ keeps the Health Provider Index, and only it can confirm that.
Sources
- Health NZ: HPI Identifiers Validation Routine (Appendix A organisation and facility; Appendix B CPN)
- Health NZ: NHI Validation Routine (the A to Z letter table, no I or O)
- Health NZ: Health Provider Index overview (CPN, organisation and facility identifiers)
Retrieved October 2026. Agencies can change these rules; check the issuing authority if a result matters.
FAQ
What is an HPI number?
The Health Provider Index (HPI) holds identifiers for health practitioners (the Common Person Number or CPN), organisations and facilities in New Zealand. Organisation and facility identifiers look like GXXNNN-C and FXXNNN-C, and a CPN has a digit, a check digit and four letters.
How is the HPI check character calculated?
For organisations and facilities the six characters before the check letter are multiplied by 7, 6, 5, 4, 3, 2 and added; the remainder after dividing by 11 is mapped back to a letter, with 10 as K. For a CPN the first digit and four letters are multiplied by 6, 5, 4, 3, 2, and the check digit is 11 minus the remainder, with 10 written as 0.
Why is a remainder of 0 rejected?
Health NZ's routine says that when the remainder is 0 the identifier is not used and the next available number is taken instead, so no issued identifier has that result.
Does a valid result mean the provider is registered?
No. The tool only checks the structure and the check character. It does not query the Health Provider Index.
Is the identifier I type sent anywhere?
No. The check runs in your browser and nothing you type is transmitted, stored or logged.
Check character only, not an HPI lookup
This tool tests the structure and check character of the identifier in your browser. It does not query the Health Provider Index, and a passing result does not show the identifier was issued or is current. Nothing you type is transmitted, stored or logged.