Polish IBANs are 28 characters long and are built directly from the domestic NRB (Numer Rachunku Bankowego). Because the NRB itself is 26 digits, a single dropped digit is easy to miss by eye. This validator confirms the full structure and checksum instantly, entirely in your browser.
How it works
A Polish IBAN always begins with PL, followed by two check digits, an eight-digit NRB routing block (bank, branch, and the internal NRB control digit), and a sixteen-digit account number:
PL kk bbbbbbbb aaaaaaaaaaaaaaaa
^ ^ ^ account number (16 digits)
| | NRB routing (8 digits)
| check digits (2)
country code
The validator runs three checks: the length must be exactly 28; the 24-digit BBAN must be all digits; and the ISO 7064 MOD-97-10 checksum must pass. For the checksum the first four characters (PLkk) are moved to the end, every letter is replaced by its numeric code, and the resulting long integer must leave a remainder of 1 when divided by 97. The computation is folded digit-by-digit to stay within JavaScript’s safe integer range.
Worked example
Take PL61 1090 1014 0000 0712 1981 2874: country code PL, check digits 61, routing 10901014, account 0000071219812874. Rearranging the IBAN and dividing by 97 leaves remainder 1, so the checksum passes.
Tips
When converting from a domestic NRB, write the two leading control digits as the IBAN check digits right after PL and keep every leading zero in the account block. Dropping a zero shortens the IBAN and fails the length check immediately. All figures are processed locally and never uploaded.