Diagram of an IBAN with its country code, check digits and bank account number labelled, plus the MOD-97 check

IBAN Check Digits Explained: How an IBAN Validator Catches Mistakes

iban
How do IBAN check digits work? See the MOD-97 maths step by step, what an IBAN check catches (we tested 214,846 typos) and what it can’t prove.

Every IBAN carries a built-in safety check: two small digits that let any bank, payment app or IBAN checker spot a typo before your money moves. They sit in positions three and four, right after the country code, and most people never notice them. Yet they're the reason a single mistyped character in a 22-character German IBAN can be caught in a fraction of a second.

This guide explains exactly how IBAN check digits work, walks through the calculation by hand, and shows what an IBAN validator can and can't tell you. To put real numbers on it, we also tested more than 200,000 deliberately mistyped IBANs to measure how many errors the check actually catches.

🔑 Quick answer: IBAN check digits are two numbers calculated from the rest of the IBAN using the MOD-97 method defined in ISO 7064. To check an IBAN, you move the first four characters to the end, turn letters into numbers, and divide by 97. If the remainder is 1, the IBAN is correctly formed. It catches virtually every common typo, but it can't tell you whether the account exists or who owns it.

What Are IBAN Check Digits?

An IBAN (International Bank Account Number) is always built from three parts, defined by the international standard ISO 13616:

  • 🌍 Country code — two letters, such as DE for Germany or AE for the United Arab Emirates
  • 🔢 Check digits — two numbers, from 02 to 98
  • 🏦 BBAN — the domestic part: your bank code and account number

In DE89 3704 0044 0532 0130 00, the check digits are 89. They aren't random and they aren't assigned by your bank. They're calculated mathematically from the country code and everything that follows it, so if any character changes, the check digits almost certainly stop matching.

The calculation method is called MOD 97-10, defined in the international standard ISO/IEC 7064, and the format of every country's IBAN is registered with SWIFT, the official registration authority for ISO 13616. If you're new to the format itself, start with our beginner's guide, What Is an IBAN?

Why Check Digits Exist

Before IBAN, a bank receiving an international payment had no reliable way to check a foreign account number. A single wrong digit could send money to a different account, or bounce the payment days later with fees deducted along the way.

Check digits move that check to the very start of the process. Your banking app, your bank's payment system and any IBAN validator can all run the same calculation before the payment is sent. If the number doesn't add up, the payment is stopped immediately, rather than failing somewhere in a chain of correspondent banks. That's why an invalid IBAN is the first of the nine causes in our guide to why international transfers get rejected: it's the one your own bank can catch instantly.

How an IBAN Check Works, Step by Step

Here's the exact process an IBAN validator follows, using the German example IBAN DE89 3704 0044 0532 0130 00.

1️⃣ Remove spaces and check the basics. Strip out spaces and any other separators, so you're left with DE89370400440532013000. Then confirm the country code is recognised and the length is right. For Germany, every IBAN has exactly 22 characters.

2️⃣ Move the first four characters to the end. The country code and check digits go to the back: 370400440532013000DE89.

3️⃣ Replace every letter with a number. A becomes 10, B becomes 11, and so on up to Z = 35. Here D = 13 and E = 14, giving: 370400440532013000131489.

4️⃣ Divide by 97. Treat the result as one large number and find the remainder after dividing by 97. If the remainder is exactly 1, the IBAN passes. For our example, it is.

How Software Handles Such a Long Number

A 24-digit number is too large for many calculators and programming languages to handle in one go. So validators work through it in pieces of nine digits, carrying the remainder forward each time. The result is identical:

Step Number divided by 97 Remainder
1 370400440 23
2 235320130 (remainder 23 + next 7 digits) 70
3 700013148 (remainder 70 + next 7 digits) 38
4 389 (remainder 38 + last digit) 1 ✅ valid

You don't need to do this yourself, of course. Our free IBAN checker runs all four steps the moment you paste an IBAN in.

Why 97?

The choice is deliberate. 97 is the largest prime number below 100, which is what makes the check so reliable:

  • ✅ Two digits are enough. Any remainder after dividing by 97 fits in two digits, so the whole check fits in positions three and four.
  • ✅ A prime catches more errors. Because 97 shares no factors with 10, changing any single digit always changes the remainder. A single wrong digit can never slip through.
  • ✅ Some values never appear. The check digits are calculated as 98 minus a remainder between 0 and 96, so valid IBAN check digits always fall between 02 and 98. An IBAN with check digits 00, 01 or 99 is always invalid.

What an IBAN Check Catches: We Tested 214,846 Typos

The ISO 7064 standard says MOD 97-10 detects all single substitution errors and all or nearly all transpositions. To see how that plays out on real IBAN formats, we took 19 example IBANs from countries including Germany, the UK, France, the UAE, Saudi Arabia and Pakistan, introduced every possible typo of each type, and ran each one through the same check our IBAN validator uses.

Type of mistake Example Variants tested Caught
One wrong digit or letter …0532… → …0632… 4,310 ✅ 100%
Two neighbouring characters swapped …0532… → …0352… 323 ✅ 100%
Two characters swapped with one between …0532… → …3502… 313 🟡 99.68%
A digit typed as a letter, or the reverse (O vs 0) …NWBK… → …NW8K… 9,900 🟡 99.07%
Two random digits wrong …0532 0130… → …0582 0136… 200,000 🟡 99.08%

The takeaway: the mistakes people actually make, like one wrong key or two neighbouring digits swapped, are caught every time. Rarer combinations slip through roughly once in every hundred attempts. That's why a valid result means "almost certainly typed correctly", not "guaranteed correct".

⚠️ One error the check can never catch: a complete, correctly formed IBAN that simply belongs to someone else. If you copy the wrong IBAN from an old invoice, or a fraudster sends you their IBAN in a fake payment request, it will pass every check perfectly. See what happens if you send money to the wrong IBAN.

What an IBAN Validator Can't Tell You

A passing IBAN check confirms the number is correctly formed. It doesn't confirm any of these:

  • ❌ That the account exists. An IBAN can be valid for an account that was never opened, or one that has since been closed.
  • ❌ Who owns the account. An IBAN contains no name, and no IBAN check can reveal one.
  • ❌ That the account can receive your payment. It may be blocked, dormant, or unable to accept your currency.
  • ❌ That the domestic details are right. Some countries add their own national check digits inside the BBAN, covered below. A standard IBAN check only verifies the international ones.

For euro transfers sent from a bank in a euro-area country, there's now a second layer: since October 2025, banks run a Verification of Payee check that compares the name you enter with the account holder's name before you confirm. It's a warning rather than a block, and it doesn't cover non-euro transfers or many international payments. Our analyst Vaneesa Lenz looks at exactly where the two checks overlap and where they leave gaps in Verification of Payee One Year On: The IBAN Errors Europe's New Payment Check Still Misses, published on TechBullion. The short version: an IBAN check verifies the structure, the name check verifies the owner, and a safe payment needs both.

Two Layers of Check Digits: International and National

Many countries had check digits in their account numbers long before IBAN existed, and those national checks are still there, packed inside the BBAN. That means some IBANs are checked twice:

Country National check inside the BBAN Example IBAN
🇫🇷 France 2-digit RIB key at the end FR14 2004 1010 0505 0001 3M02 606
🇮🇹 Italy 1-letter CIN at the start of the BBAN IT60 X054 2811 1010 0000 0123 456
🇪🇸 Spain 2 control digits after the bank and branch codes ES91 2100 0418 4502 0005 1332
🇧🇪 Belgium 2 digits at the end BE68 5390 0754 7034
🇩🇪 Germany Bank-specific check methods inside the account number DE89 3704 0044 0532 0130 00
🇬🇧 United Kingdom None in the IBAN itself; banks run separate sort-code checks GB29 NWBK 6016 1331 9268 19

A standard IBAN validator, including ours, checks the country, the length and the international MOD-97 digits. It doesn't run each country's national check. In practice the international check already catches almost every typo, but it's another reason to copy an IBAN from the bank rather than retype it.

IBAN Calculator vs IBAN Validator

The two tools sound similar but do opposite jobs:

  • 🧮 An IBAN calculator works forwards. It takes your domestic bank code and account number and calculates the check digits to build a complete IBAN. The formula is the same MOD-97 method in reverse: append the country code as numbers plus two zeros, divide by 97, and subtract the remainder from 98. For the German example, the remainder is 9, so the check digits are 98 − 9 = 89.
  • 🔍 An IBAN validator works backwards. It takes a complete IBAN and checks whether the check digits match the rest of it.

One important caution: an IBAN calculator can't know whether the domestic details you typed are right. Enter one wrong digit of your account number and it will happily produce a "valid" IBAN for the wrong account. That's why we recommend taking your IBAN from your bank, then running an IBAN check on it. Our guide to IBAN number vs account number shows the full calculation, including the UK's sort code format.

How to Verify an IBAN Before You Pay

Verifying an IBAN properly takes under a minute:

  1. Get it from the source. Copy the IBAN from the recipient's official invoice, their banking details, or your own banking app. Avoid retyping it from a photo or PDF.
  2. Run an IBAN check. Paste it into our IBAN validator. You'll see whether the country code, length and check digits are correct, and the IBAN split into its parts.
  3. Check the country makes sense. The first two letters tell you which country the account is in. If a supplier in France sends an IBAN starting with a different country code, call them on a number you already have before paying. You can look up any code in our country codes directory.
  4. Read the name check. For euro transfers, don't ignore a "close match" or "no match" warning from your bank.
  5. Send a small test payment before a large first-time transfer.

Frequently Asked Questions

What makes an IBAN number valid?

Three things: a recognised two-letter country code, the exact length for that country, and check digits that pass the MOD-97 calculation. An IBAN that meets all three is correctly formed, though that still doesn't prove the account exists or belongs to your recipient.

Can an IBAN be valid but wrong?

Yes. A complete IBAN copied from the wrong source, such as an old invoice or a fraudulent payment request, passes every IBAN check because it is a real, correctly formed IBAN. It's just not the right one. That's why the name check and confirming details with the recipient still matter.

Why does my IBAN say invalid when my bank gave it to me?

Almost always because of a copying error: a dropped or extra character, a letter O typed instead of a zero, or two digits swapped. Copy it directly from your banking app rather than retyping it, then run the IBAN check again.

How do I find my IBAN?

Look in your banking app or online banking under account details, or on your bank statements. Some banks also print it on the back of your debit card. Our IBAN checker page explains each option.

What country is my IBAN from?

The first two letters tell you. They're the country's ISO 3166-1 code, such as GB for the United Kingdom, AE for the UAE or PK for Pakistan.

Can I have more than one IBAN?

Yes. Every bank account has its own IBAN, so if you have several accounts, you have several IBANs. Some digital banks also issue IBANs with a different country code from the one you live in, which is perfectly legal in the EU, as our guide to IBAN discrimination explains.

Does changing jobs change my IBAN?

No. Your IBAN belongs to your bank account, not your employer. It only changes if you open a new account or your bank changes its account structure. Just give your new employer the same IBAN.

Final Thoughts

The two check digits in your IBAN do a remarkable amount of work. In our test of 214,846 deliberate mistakes, they caught every single wrong character and every swap of neighbouring digits, the errors people make most often. What they can't do is tell you whether you have the right account, which is why a quick check of the recipient's details is still part of every safe payment.

Before you share or pay to an IBAN, run it through our free IBAN checker, confirm the bank with our SWIFT/BIC lookup, and check the country in our country codes directory.

For related reading, see What Is an IBAN?, IBAN Number vs Account Number, Why Was My International Transfer Rejected? and What Happens If You Send Money to the Wrong IBAN?

Disclaimer: This article is for informational purposes only and does not constitute financial advice. Exchange rates and market conditions change rapidly. Always conduct your own research before making any investment decisions.

Disclaimer: This article is for informational purposes only and does not constitute financial advice. Exchange rates and market conditions change rapidly. Always conduct your own research before making any investment decisions.
FloatForex
← View all blog articles
Exchange rates are for informational purpose only and do not constitute financial advice
© 2026 FloatForex.com All rights reserved.