One transposed digit in a supplier’s NIP and your JPK_V7 filing bounces
back from the Polish tax authority weeks later. The NIP (Numer
Identyfikacji Podatkowej) — Poland’s 10-digit tax identifier, shown with a
PL prefix for EU trade as in PL5260250995 — carries a built-in
modulo-11 check digit designed to catch exactly that class of typo at
data-entry time. This validator runs the official algorithm in your
browser and shows the full working, so you can see why a number passes
or fails.
The modulo-11 algorithm
The NIP uses a weighted modulo-11 check digit:
- Strip the optional
PLprefix plus any spaces or dashes, leaving 10 digits. - Multiply the first 9 digits by the weights: 6, 5, 7, 2, 3, 4, 5, 6, 7.
- Sum the 9 products and take the sum modulo 11.
- That remainder must equal the 10th (check) digit. If the remainder works out to 10, the NIP is invalid — such a check digit is never issued.
The tool shows you the weighted sum, the sum mod 11 value, and the expected versus actual check digit so the result is fully transparent.
Example
Validate 5260250995. Apply the weights to the first 9 digits 5 2 6 0 2 5 0 9 9:
(5×6)+(2×5)+(6×7)+(0×2)+(2×3)+(5×4)+(0×5)+(9×6)+(9×7)
= 30+10+42+0+6+20+0+54+63 = 225
225 mod 11 = 5
The 10th digit is 5, which matches — so the check digit is valid.
When structural validation is not enough
A passing check digit confirms that the 10 digits form a mathematically consistent NIP. It does not tell you whether the business is currently registered for VAT, whether it has been deregistered, or whether the number has been misappropriated. For these questions you need to go further:
- Biała lista (White list): Poland’s official register of VAT taxpayers, searchable at podatki.gov.pl. It lists active VAT payers, their bank accounts for B2B payment compliance, and deregistration events. Under the split-payment rules, paying a VAT invoice above the statutory threshold to a bank account not on the Biała lista can create joint-and-several liability for the buyer — which is why Polish accounts-payable teams check the list on payment day, not just at onboarding.
- EU VIES (VAT Information Exchange System): for intra-EU trade, the European Commission’s VIES service confirms VAT registration across member states (usage rules are summarised on Your Europe). VIES does not cover domestic Polish status — use Biała lista for that.
NIP vs. REGON vs. KRS vs. PESEL
Polish entities carry several identifiers, and B2B paperwork regularly mixes them up. Only one of them is the VAT number:
| Identifier | Digits | What it identifies | Check rule |
|---|---|---|---|
| NIP | 10 | Taxpayer (the VAT number, with PL prefix for EU trade) | mod-11, weights 6,5,7,2,3,4,5,6,7 |
| REGON | 9 or 14 | Statistical business register entry | its own weighted checksum |
| KRS | 10 | National Court Register entry (companies) | sequential, no checksum semantics |
| PESEL | 11 | Natural person (citizens/residents) | its own mod-10 scheme |
If a “VAT number” you were given fails here, check you were not handed a REGON or KRS number instead — a 9- or 14-digit string is a REGON by length alone, and an 11-digit one is a PESEL.
Use cases
This validator is most useful during data-entry quality checks — for example, when onboarding suppliers into an ERP, cleaning an accounts-payable import file, or building a form that collects NIP as part of a B2B checkout. Catching a transposed digit here is faster than getting a JPK_V7 rejection from the tax authority later. For bulk hygiene work, run the same mod-11 rule as a spreadsheet or SQL check across the whole vendor master — a file of a few thousand suppliers reliably surfaces a handful of structurally impossible NIPs that have been silently failing e-invoice validation for years.
Notes on format
The NIP is always exactly 10 digits. The PL prefix is optional in domestic contexts but required when writing the number on EU cross-border invoices. Dashes and spaces in presentation formats such as 526-025-09-95 are separators only and carry no meaning — the validator strips them automatically. Everything here runs locally — your VAT number never leaves your device.
One structural subtlety worth knowing: because the check digit is sum mod 11 and a remainder of 10 is never issued, roughly one in eleven candidate
9-digit prefixes has no valid NIP completion at all. That is deliberate —
it is what gives the scheme its error-detection strength against single
mistyped digits and adjacent transpositions, the two most common manual
entry mistakes.
Sources
- Wykaz podatników VAT (Biała lista) — podatki.gov.pl — Poland’s official VAT-payer register
- European Commission — VIES VAT number validation
Structural validation only — registration status must be confirmed against the official registers above. No data leaves your browser.