Netherlands IBAN Validator

Verify any Dutch IBAN with the full NL BBAN structure check and ISO 7064 MOD-97 algorithm.

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

The Netherlands IBAN (Internationaal Bankrekeningnummer) is the standard Dutch bank account identifier used for all SEPA credit transfers, direct debits, and international wire payments. Every Dutch IBAN is exactly 18 characters long and carries a built-in four-layer structure that makes it possible to detect transcription errors before a payment is submitted. This validator applies all four checks — country code, total length, BBAN composition, and ISO 7064 MOD-97 checksum — entirely inside your browser. No data ever leaves your device.

The anatomy of a Dutch IBAN

A Netherlands IBAN is assembled from four mandatory sections placed one after another without separators (spaces are cosmetic only):

SectionLengthContentExample
Country code2 lettersAlways “NL”NL
Check digits2 digitsISO 7064 MOD-97 protection value91
Bank code4 lettersBIC-derived bank identifierABNA
Account number10 digitsDomestic account reference0417164300

Put together: NL91 ABNA 0417 1643 00 — one of the two canonical Dutch test IBANs published in the SWIFT IBAN registry. The grouped-of-four display is convention only; the 18 underlying characters are what actually matter.

How the MOD-97 checksum works

The ISO 7064 MOD-97-10 algorithm is the same for every IBAN in every country. Starting from the full 18-character Dutch IBAN, the steps are:

  1. Move the first four characters (NL + the two check digits) to the end of the string, giving a 18-character rearranged sequence that starts with the bank code.
  2. Replace every letter with its numeric equivalent: A becomes 10, B becomes 11, all the way to Z which becomes 35. Because “NL” maps to “2321”, the digit string expands slightly beyond 18 characters.
  3. Treat the entire digit string as one large integer and divide by 97. A structurally correct IBAN will always leave a remainder of exactly 1.

To avoid floating-point overflow the validator processes the digit string one character at a time, updating a running remainder: r = (r * 10 + digit) mod 97. This keeps the working value between 0 and 96 throughout.

The BBAN bank code

Positions 5 to 8 of the IBAN hold a four-letter bank identifier derived from the bank’s BIC (Bank Identifier Code). The validator recognises 14 major Dutch institutions including ABN AMRO (ABNA), Rabobank (RABO), ING Bank (INGB), bunq (BUNQ), Triodos Bank (TRIO), and Knab (KNAB). When the code is recognised the bank name is shown alongside the letters. If the code is structurally valid — four uppercase letters — but not in the display list, the IBAN is still fully validated; the list is illustrative, not exhaustive, because smaller banks and new entrants can register any available four-letter code from the SWIFT BIC registry.

Worked example

Validate NL91 ABNA 0417 1643 00:

  1. Strip spaces: NL91ABNA0417164300 (18 characters — correct)
  2. Bank code ABNA — four uppercase letters (passes BBAN check)
  3. Account 0417164300 — ten digits (passes BBAN check)
  4. Rearrange: move NL91 to the end — ABNA0417164300NL91
  5. Expand letters: A=10, B=11, N=23, A=10, N=23, L=21 giving the digit string 101110041716430023211… followed by 91
  6. Compute the full string mod 97 progressively — result is 1 (passes)

The result is a valid Dutch IBAN. The check digits 91 were specifically chosen when the account was issued so that this final remainder works out to 1.

What this validator does NOT check

Structural validity is not the same as account existence. The four checks in this tool confirm the IBAN is correctly formed — they detect the majority of transcription errors, swapped digits, and mistyped bank codes. They cannot tell you whether the account is open, whether the named bank still operates, or whether the IBAN has been closed. For payment confirmation, contact your bank or use SEPA’s pre-validation API (available to payment service providers through the ECB’s payment processing framework).

Ad placeholder (rectangle)