IBAN Validator Widget
Let customers check an IBAN before they pay or save it: the widget confirms the country's registered length and layout and the ISO 13616 checksum, shows the IBAN in groups of four with its check digits and domestic account part, and checks pasted lists of up to 200. Nothing typed ever leaves the visitor's browser.
Live preview
Under the widget on your page: Powered by A2Z Tools
Embed code
<iframe src="https://a2z.tools/embed/w/iban-validator" title="IBAN Validator by A2Z Tools" width="100%" height="720" style="border:0;width:100%" loading="lazy" allow="clipboard-write"></iframe>
A plain iframe. Works everywhere, including site builders that strip scripts. Adjust height if your content needs more room.
<div data-a2z-widget="iban-validator" data-height="720"></div> <script async src="https://a2z.tools/embed.js"></script>
Adds a small script (what it does) that sizes the widget to fit its content, loads it lazily and keeps it isolated from your page's CSS.
Works with
How it works
Spaces, hyphens and a leading "IBAN" label are removed and the letters upper-cased, so "de89 3704 ..." and "DE89370400440532013000" are the same. The first two letters must be a country in the SWIFT IBAN Registry - 89 countries, from Andorra to Kosovo - and the total length must equal that country's registered length: 22 for Germany and Ireland, 27 for France and Italy, 18 for the Netherlands. The rest must fit the registered layout, for example Ireland's 4 letters of bank code then 14 digits. Then the ISO 7064 mod 97-10 test runs: the first four characters move to the end, every letter becomes two digits (A = 10 ... Z = 35) and the resulting number must leave remainder 1 when divided by 97. Check digits 00, 01 and 99 are refused because a correctly calculated pair is always 02 to 98. A valid result shows the country, check digits, the BBAN (the domestic account part), the print format in groups of four and whether the country is in SEPA.
Method
- Normalise: remove spaces, hyphens, dots and a leading "IBAN"; upper-case
- Country = characters 1-2, must be in the SWIFT IBAN Registry; length must equal the registered IBAN length
- Characters 3 onwards must match the registry structure (n = digit, a = letter, c = letter or digit, ! = fixed length)
- Rearrange: characters 5..end + characters 1-4; replace A..Z by 10..35
- Valid when that number mod 97 = 1 and the check digits are 02-98
- Print format = groups of 4 characters separated by spaces
Worked examples
Registry example, typed loosely
Inputs: de89 3704 0044 0532 0130 00
Result: Valid IBAN DE89 3704 0044 0532 0130 00 - Germany, check digits 89, BBAN 370400440532013000, SEPA country
22 characters as registered for DE; the rearranged number mod 97 = 1.
One wrong digit
Inputs: DE89 3704 0044 0532 0130 01
Result: Not a valid IBAN - checksum fails (mod 97 is 28, must be 1)
Changing the last digit from 0 to 1 breaks the mod-97 check.
A missing character
Inputs: IT60 X054 2811 1010 0000 0123 45
Result: Not a valid IBAN - Italy IBANs have 27 characters, this one has 26
The length test runs before the checksum, so the message names the problem.
A format and checksum check, not confirmation that an account exists or belongs to the payee. Always confirm bank details with the payee or your bank before paying.
Limitations
- It cannot tell whether the account exists, is open or belongs to the named payee - only the bank can.
- National check digits inside the BBAN (for example Belgian or Spanish account keys) are not tested; only the IBAN's own mod-97 check digits are.
- The country table is a dated copy of the SWIFT IBAN Registry and needs updating when SWIFT registers a new or changed format.
Where publishers use it
- A freelancer's invoice page where clients check the IBAN they are about to pay before sending money
- A payroll or HR onboarding form guide where new staff check their own IBAN before submitting bank details
- A charity's direct-debit page explaining why an IBAN was rejected - wrong length, wrong layout or a mistyped digit
- An accounts-payable team's intranet page for checking a pasted column of supplier IBANs before a SEPA batch
- A fintech blog post explaining how the mod-97 check digits work, with a live example
Questions
Does a valid IBAN mean the account exists?
No. The checksum and layout only prove the number is well formed. An IBAN can pass every test and still belong to a closed account or to someone other than the person you meant to pay, so confirm the payee details with your bank before sending money.
Which typing mistakes does the checksum catch?
Tested against all 89 registry examples, it catches every digit typed as another digit, every letter typed as another letter and every swap of two neighbouring digits. A letter typed where a digit belongs, or the reverse, is caught in the vast majority of cases, and the layout check stops most of the rest.
How long is an IBAN?
It depends on the country and is fixed per country: 15 characters in Norway, 16 in Belgium, 18 in the Netherlands and Denmark, 22 in Germany, Ireland and the UK, 24 in Spain, 27 in France and Italy, and up to 33 in Russia. The widget names the expected length when it differs.
Is my IBAN sent anywhere?
No. The registry table is loaded with the widget and the whole check runs in your browser. A2Z does not receive the IBAN, does not store it and does not call any bank or third-party service.
What are the check digits and the BBAN?
Characters 3 and 4 are the check digits, calculated from everything else so that the mod-97 test gives 1. The BBAN (Basic Bank Account Number) is the domestic part after them - for DE89 3704 0044 0532 0130 00 it is the 8-digit bank code 37040044 and the 10-digit account 0532013000.
Why is my country not accepted?
Only countries registered with SWIFT as ISO 13616 registration authority have IBANs - 89 in the registry dated 15 September 2026. Some territories use another country's code: the Aland Islands use FI, French overseas departments use FR, and Jersey, Guernsey and the Isle of Man use GB.
Sources
- IBAN Registry (TXT and PDF editions) - SWIFT, ISO 13616 registration authority . Country codes, IBAN lengths, structures, example IBANs, SEPA membership and effective dates for 89 countries; PDF edition dated 15 September 2026. Checked 2026-10-03.
- International Bank Account Number (IBAN) - SWIFT . ISO 13616 specifies the IBAN structure; SWIFT registers national IBAN formats on behalf of ISO. Checked 2026-10-03.
Cite or recommend this tool
If you reference this tool in an article, course or documentation, these formats are ready to copy. They are optional - nothing is added to your site unless you paste it.
A2Z Tools IBAN Validator https://a2z.tools/embed/iban-validator
<a href="https://a2z.tools/embed/iban-validator">A2Z Tools IBAN Validator</a>
[A2Z Tools IBAN Validator](https://a2z.tools/embed/iban-validator)
IBAN Validator by A2Z Tools - https://a2z.tools/embed/iban-validator
Related widgets
-
Check a BIC/SWIFT code's ISO 9362 structure, country, test-code marker and branch - format only, no lookup.
-
Check an EU or Northern Ireland (XI) VAT number against the official VIES structure, then verify it on VIES.
-
Convert between 54 currencies with live reference rates and the rate shown both ways.
-
What you receive after a percentage-plus-fixed processing fee, or what to charge to receive a set amount.
-
Monthly instalment, total interest and total repayment for any loan.
-
Payment, total interest and payoff date for any loan, with monthly, biweekly or weekly payments.