Polish IBAN Validator (NRB)

Validate any Polish IBAN instantly — checksum, bank code and branch decoded.

Ad placeholder (leaderboard)
Enjoying the tools? Go Pro for £4.99 (one-time) and remove all ads — forever, on this device. Remove ads — £4.99

Polish IBANs follow a precise 28-character structure defined by ISO 13616 and administered by the National Bank of Poland (NBP). Every number begins with the two-letter country code PL, followed by two check digits and a 24-digit BBAN (Basic Bank Account Number). Unlike the IBANs of many other countries, Poland’s BBAN is entirely numeric — no letters appear after the PL prefix — making it straightforward to validate but easy to enter incorrectly when transcribing by hand.

This validator checks three things in sequence. First, it confirms the structural requirements: the input must be exactly 28 characters, must start with PL, and every character after PL must be a digit. Second, it runs the full ISO 7064 MOD-97-10 checksum so you can catch single-digit transposition errors that would otherwise pass a visual check. Third, it decodes the BBAN into its four components — bank code, branch code, NRB check digit, and account number — and cross-references the bank code against a reference table of Polish financial institutions so you can quickly confirm you are sending to the right institution.

How it works

The MOD-97 algorithm works by rearranging the IBAN: the first four characters (PL + two check digits) move to the end, and any letters are replaced by two-digit numbers (P becomes 25, L becomes 21). The result is a long numeric string. Dividing that number by 97 and checking that the remainder equals 1 is the validity test. Because the string can be 30+ digits long, the division is performed digit-by-digit using modular folding — each step is remainder = (remainder * 10 + nextDigit) % 97 — which keeps every intermediate value well within a 32-bit integer.

The BBAN decodes as follows using the Polish NRB standard:

Position (within BBAN)LengthMeaning
1–33 digitsBank identifier
4–74 digitsBranch / settlement unit
81 digitNRB check digit
9–2416 digitsCustomer account number

The bank identifier maps to a name in the reference table; if the code is not found, the account may still be valid — cooperative banks and newer entrants sometimes use identifiers not yet in public reference data.

Worked example

Take the commonly cited test IBAN PL 61 1090 1014 0000 0712 1981 2874.

Strip spaces: PL61109010140000071219812874 (28 characters). Move PL61 to the end: 109010140000071219812874PL61. Replace P with 25 and L with 21: 10901014000007121981287425 61. Fold that digit string modulo 97 and the remainder is exactly 1 — valid.

Decoding the BBAN 109010140000071219812874:

  • Bank code: 109 — Santander Bank Polska
  • Branch: 1014
  • NRB check digit: 0
  • Account: 0000071219812874

The formatted print form is PL 61 1090 1014 0000 0712 1981 2874, which you can copy with the button below the result table.

Every computation runs locally in your browser. Paste an IBAN in any format — with or without spaces — and the result appears instantly.

Ad placeholder (rectangle)