Read an IBAN from a photo — and check it is right
An IBAN carries two check digits right after the country code, and they validate the entire rest of the string. This is the same arithmetic your bank runs before it accepts a payment.
Show everything the scan found
This tool runs in the browser. The app does the same from your camera, keeps a history, and works offline.
How the check works
Move the first four characters to the end of the string. Replace each letter with a number, A being 10 through Z being 35. Read the result as one very large integer and take it modulo 97. A valid IBAN gives exactly 1.
This is ISO 7064 mod-97-10, and it catches every single-character error and almost every transposition. It is why a mistyped IBAN normally bounces at your bank rather than sending money to a stranger — though you should never rely on that as a safety net.
Please read this before paying anything
A valid check digit means the string is internally consistent. It does not mean the account belongs to who you think it does. Invoice fraud works by sending a real, perfectly valid IBAN that happens to belong to the fraudster. The checksum cannot help you there, and neither can this tool.
If an invoice arrives with changed bank details, phone the supplier on a number you already had — never the one printed on the invoice — and confirm before paying. That advice is boring and it is also the entire defence.
Reading notes
- IBANs are printed in groups of four for legibility. The spaces are not part of the number and are ignored here.
- Length varies by country: 22 characters in the UK and Germany, 27 in France, 15 in Norway.
- If the check fails, the usual culprits are
0againstOand1againstI. Crop tighter and retry.
Questions
Does a valid checksum mean the payment is safe?
No. It means the string is well-formed. Invoice fraud uses genuine, valid IBANs. Always confirm changed bank details by phone using a number you already had.
Do the spaces matter?
No. IBANs are printed in groups of four for readability; the spaces are not part of the value and are ignored.
Is my banking data sent anywhere?
No. Recognition runs entirely in your browser and nothing is transmitted or stored.
Do this with a camera instead
Your phone will offer its camera right here — the file picker above includes Take Photo. What the app adds is selecting a region on the photo it just took, a paid history of every scan, working with no connection, and no 7 MB engine download. The check-digit verification on this page is a web feature and is not in the app yet.