IBAN validator
Payment and reporting files fail on malformed account identifiers more often than on anything conceptually difficult. Paste a column of IBANs and this checks the country length, the character structure and the MOD 97-10 check digits on every one at once — and finds the duplicates.
ISO 13616 · MOD 97-10 · 80 country lengths · bulk paste · nothing stored
Validate a list of IBANs
Runs in your browser · nothing uploadedOne per line, or separated by commas, semicolons or tabs. Spaces, hyphens and lower case are normalised, so a column pasted from a spreadsheet or a printed statement works either way.
Identifier errors are the cheapest failures to prevent and the most tedious to chase. The CESOP and messaging modules validate identifiers as part of the file, before it goes anywhere — with a free tier to start.
Create free account →Four parts, one arithmetic check
The scheme is the same one an LEI uses for its final two characters, applied across the whole identifier.
Country code
An ISO 3166-1 alpha-2 code. It fixes the total length of the IBAN, which varies from 15 characters in Norway to 32 in Saint Lucia — there is no single correct length.
Check digits
Two digits computed over the rest of the identifier. A mistyped or transposed character breaks the result, which is what makes a paste-level check worth running.
Basic bank account number
Country-specific: bank identifier, branch code and account number in whatever arrangement that country uses. Its internal structure is not checked here, only its length and character set.
Reviewed 21 August 2026 · source: ISO 13616 IBAN registry · Structure per ISO 13616 and the IBAN registry · check digits per ISO/IEC 7064 MOD 97-10 · length table as at 18 August 2026
What this validator does
It catches transcription errors before they reach a payment file or a reporting submission.
It doesCheck structure and arithmetic
- Confirms the country code, and checks the length against that country’s registered IBAN length.
- Verifies the MOD 97-10 check digits over the rearranged identifier.
- Catches transposed pairs and single-character errors.
- Flags duplicates across the list.
- Normalises case, spaces and hyphens so pasted columns work as they are.
- Says plainly where a country code is not in its reference table rather than guessing a length.
It does notLook anything up
- Confirm the account exists, is open, or belongs to anyone in particular.
- Validate the internal bank or branch structure within the account number.
- Check reachability for SEPA Credit Transfer, Instant or Direct Debit.
- Derive or verify a BIC.
- Validate any other field in a payment or reporting file.
- Produce anything you can submit.
Validating a reporting population, not a payment?
CESOP reporting turns on payee identification across accounts and quarters. Getting the identifiers clean is the start of it, not the end.
Nothing you paste here leaves your browser
The check digit calculation runs entirely on your own machine. No identifier you paste is sent to REGREP, to any bank, or to anyone else. Nothing is written to a log, saved to a database, or passed to any analytics tool.
Account identifiers are personal data in most contexts. We would rather not hold them.
About IBAN validation
How does the check digit work?
Move the first four characters to the end, convert every letter to a number with A as 10 through Z as 35, read the result as one long integer, and divide by 97. A valid IBAN leaves a remainder of one. It is the same ISO/IEC 7064 MOD 97-10 scheme used for the last two characters of an LEI.
Is there a standard IBAN length?
No. Length is fixed per country by the IBAN registry and ranges from 15 characters to 32. A validator that assumes a single length will reject perfectly valid identifiers, which is why the country code is checked first.
Does a valid IBAN mean the payment will arrive?
No. Check digits confirm the identifier was transcribed correctly. They say nothing about whether the account exists, is open, belongs to the party you intend, or is reachable for the payment scheme you are using. Those are separate checks.
Why does the tool flag duplicates?
Because a repeated identifier in a payment or reporting file usually means a row was copied rather than edited. That is not always wrong, but it is worth looking at before submission.
What if my country code is not recognised?
The tool still runs the check digit test and says the country is not in its reference length table, rather than inventing a length. The IBAN registry is updated as countries join, so a very recent addition may not be listed here.
Do you store the identifiers I paste?
No. Everything runs in your browser and is discarded when you close or reload the page. No lookup is performed, so nothing is transmitted at all.
Clean identifiers are the cheapest compliance there is.
Create a free account and validate the identifiers as part of the file, rather than after it is rejected.
No card required · free tier on core modules · nothing stored from this validator