Every International Bank Account Number contains two checksum digits that make sure the account reference has been captured accurately. The checksum is calculated by moving the first four characters to the end of the IBAN, replacing letters with their numeric equivalents, and performing a modulo 97 operation. If the result of that operation equals 1, the number is structurally sound; if not, the IBAN should be rejected before it travels any further through your systems.
How the Checksum Calculation Works
Consider a French IBAN such as FR76 3000 6000 0112 3456 7890 189. After rearranging the characters and translating letters to digits, the number becomes 30006000011234567890189FR76, which can be evaluated with standard big-integer libraries. The process might sound technical, but it can be implemented with a few lines of code in most languages, and doing so consistently eliminates many manual reconciliation headaches.
The Algorithm Step by Step
- Take the full IBAN — e.g.
FR7630006000011234567890189 - Move the first 4 characters to the end —
30006000011234567890189FR76 - Replace each letter with its numeric value (A=10, B=11, ..., Z=35) — F=15, R=27 →
30006000011234567890189152776 - Compute modulo 97 — if the remainder is 1, the IBAN is valid
Implementing Validation Early
Implementing checksum validation early in your onboarding flow prevents avoidable payment failures. Most engineering teams perform the modulo 97 check in the browser before sending data to the server, then repeat the validation on the backend to guard against tampering. Coordinating these checks with your product and support teams also helps them explain error messages to customers in clear, actionable language.
Generating Valid Test IBANs
When you generate IBANs with Random IBAN, the checksum is always aligned with the latest ISO 13616 rules. You can safely use these test values to:
- Unit-test validation libraries
- QA bulk imports
- Demonstrate payment journeys without exposing real account numbers
We also publish changelogs whenever regulators adjust national formats so your internal documentation stays in sync.