IBAN validation: how does the checksum work?
The IBAN contains a built-in error-detection mechanism. Understanding how the mod-97 checksum works helps you detect errors before they block your payments.
What is an IBAN?
The IBAN (International Bank Account Number) is an internationally standardized bank account number defined by ISO 13616. It is used across the SEPA zone and in over 80 countries to uniquely identify a bank account.
An IBAN consists of: a 2-letter country code, a 2-digit check number (checksum), and a Basic Bank Account Number (BBAN) whose format varies by country. For example, a Belgian IBAN has 16 characters: BE68539007547034.
Blog.post4.s1.p3
How the mod-97 checksum works
The IBAN checksum uses the modulo-97 algorithm (ISO 7064). To verify an IBAN:
- 1Move the first 4 characters to the end of the string
- 2Replace each letter with its numeric equivalent (A=10, B=11, ..., Z=35)
- 3Calculate the remainder of this number divided by 97
- 4The IBAN is valid if the remainder equals 1
Blog.post4.s2.p3
Common IBAN errors
These are the most frequent mistakes encountered in SEPA payment files:
Invalid checksum
A typo in the account number changes the mod-97 result. Even a single digit error is detected.
Wrong country format
Each country has a fixed IBAN length. A Belgian IBAN always has 16 characters, a French IBAN 27. A length mismatch is immediately invalid.
Spaces and formatting
IBANs are sometimes written with spaces every 4 characters for readability (BE68 5390 0754 7034). In payment files, they must be sent without any spaces.
Blog.post4.s3.e4.label
Blog.post4.s3.e4.desc
Blog.post4.s3.e5.label
Blog.post4.s3.e5.desc
Blog.post4.s3.e6.label
Blog.post4.s3.e6.desc
Blog.post4.s5.title
Blog.post4.s5.p1
| Blog.post4.s5.th1 | Blog.post4.s5.th2 | Blog.post4.s5.th3 | Blog.post4.s5.th4 | Blog.post4.s5.th5 |
|---|---|---|---|---|
| Blog.post4.s5.r1.c1 | Blog.post4.s5.r1.c2 | Blog.post4.s5.r1.c3 | Blog.post4.s5.r1.c4 | Blog.post4.s5.r1.c5 |
| Blog.post4.s5.r2.c1 | Blog.post4.s5.r2.c2 | Blog.post4.s5.r2.c3 | Blog.post4.s5.r2.c4 | Blog.post4.s5.r2.c5 |
| Blog.post4.s5.r3.c1 | Blog.post4.s5.r3.c2 | Blog.post4.s5.r3.c3 | Blog.post4.s5.r3.c4 | Blog.post4.s5.r3.c5 |
| Blog.post4.s5.r4.c1 | Blog.post4.s5.r4.c2 | Blog.post4.s5.r4.c3 | Blog.post4.s5.r4.c4 | Blog.post4.s5.r4.c5 |
| Blog.post4.s5.r5.c1 | Blog.post4.s5.r5.c2 | Blog.post4.s5.r5.c3 | Blog.post4.s5.r5.c4 | Blog.post4.s5.r5.c5 |
| Blog.post4.s5.r6.c1 | Blog.post4.s5.r6.c2 | Blog.post4.s5.r6.c3 | Blog.post4.s5.r6.c4 | Blog.post4.s5.r6.c5 |
| Blog.post4.s5.r7.c1 | Blog.post4.s5.r7.c2 | Blog.post4.s5.r7.c3 | Blog.post4.s5.r7.c4 | Blog.post4.s5.r7.c5 |
| Blog.post4.s5.r8.c1 | Blog.post4.s5.r8.c2 | Blog.post4.s5.r8.c3 | Blog.post4.s5.r8.c4 | Blog.post4.s5.r8.c5 |
| Blog.post4.s5.r9.c1 | Blog.post4.s5.r9.c2 | Blog.post4.s5.r9.c3 | Blog.post4.s5.r9.c4 | Blog.post4.s5.r9.c5 |
| Blog.post4.s5.r10.c1 | Blog.post4.s5.r10.c2 | Blog.post4.s5.r10.c3 | Blog.post4.s5.r10.c4 | Blog.post4.s5.r10.c5 |
| Blog.post4.s5.r11.c1 | Blog.post4.s5.r11.c2 | Blog.post4.s5.r11.c3 | Blog.post4.s5.r11.c4 | Blog.post4.s5.r11.c5 |
| Blog.post4.s5.r12.c1 | Blog.post4.s5.r12.c2 | Blog.post4.s5.r12.c3 | Blog.post4.s5.r12.c4 | Blog.post4.s5.r12.c5 |
| Blog.post4.s5.r13.c1 | Blog.post4.s5.r13.c2 | Blog.post4.s5.r13.c3 | Blog.post4.s5.r13.c4 | Blog.post4.s5.r13.c5 |
| Blog.post4.s5.r14.c1 | Blog.post4.s5.r14.c2 | Blog.post4.s5.r14.c3 | Blog.post4.s5.r14.c4 | Blog.post4.s5.r14.c5 |
| Blog.post4.s5.r15.c1 | Blog.post4.s5.r15.c2 | Blog.post4.s5.r15.c3 | Blog.post4.s5.r15.c4 | Blog.post4.s5.r15.c5 |
Blog.post4.s5.p2
Blog.post4.s6.title
Blog.post4.s6.p1
Blog.post4.s6.p2
Blog.post4.s6.p3
Validate your IBANs for free
Our IBAN validator checks the mod-97 checksum, the country format, and the length — instantly, without sending any data to a server.
Open the IBAN ValidatorFrequently Asked Questions
How does the mod-97 IBAN checksum algorithm work?
The mod-97 algorithm validates an IBAN by: moving the first 4 characters (country code + check digits) to the end, converting all letters to numbers (A=10, B=11...Z=35), then computing the remainder when divided by 97. A valid IBAN always produces a remainder of 1.
Which countries use IBAN and what are the different formats?
Over 80 countries use IBAN, with all 36 SEPA countries requiring it. Formats vary: Belgian IBANs have 16 characters, French IBANs 27 characters, German IBANs 22 characters, and Dutch IBANs 18 characters. Each country has specific BBAN structure rules.
Can an IBAN pass checksum validation but still be invalid?
Yes. The mod-97 checksum verifies mathematical integrity but cannot confirm the account exists at a real bank. For payment processing, always complement checksum validation with your bank's pre-validation service.
Blog.post4.faq.q4
Blog.post4.faq.a4
Blog.post4.faq.q5
Blog.post4.faq.a5
Blog.post4.faq.q6
Blog.post4.faq.a6
Blog.post4.faq.q7
Blog.post4.faq.a7
Blog.post4.faq.q8
Blog.post4.faq.a8
Blog.post4.faq.q9
Blog.post4.faq.a9
Blog.post4.faq.q10
Blog.post4.faq.a10