Developer Tools· 5 min read

IBAN Validator: Mod-97 Checksum for Bank Account Numbers

Validate IBAN format and checksum for 30+ SEPA countries — get country detection, formatted output, and instant results in your browser.

By EasyDevTools Team Last updated: 2026-08-24

Why IBAN validation prevents failed international payments

An incorrect IBAN in a cross-border payment means the transfer bounces, fees are deducted anyway, and the funds may take days to return to the sender's account. In SEPA (Single Euro Payments Area) countries, the IBAN is the primary account identifier — there is no separate account number and sort code. Get one digit wrong and the payment fails silently, leaving both parties chasing a phantom transaction.

The IBAN structure encodes the country code, two check digits, and the domestic bank account number into a single string of up to 34 characters. The mod-97 checksum at positions 3 and 4 catches single-digit errors and most transpositions — the same class of errors that the Luhn algorithm catches for credit card numbers. But unlike Luhn, the IBAN checksum also involves converting letters to numbers (A=10, B=11, and so on through Z=35), which makes manual calculation error-prone.

This validator accepts IBANs with or without spaces, strips the formatting, verifies the expected length for 30+ SEPA countries, runs the mod-97 checksum, and returns the country code and a cleanly formatted IBAN with grouped four-character blocks. It runs entirely in your browser — no server, no API, no data transmission.

See it in action

SEPA country IBAN lengths

CountryCodeIBAN lengthExample format
GermanyDE22 charsDE89 3704 0044 0532 0130 00
FranceFR27 charsFR76 3000 6000 0112 3456 7890 189
SpainES24 charsES91 2100 0418 4502 0005 1332
ItalyIT27 charsIT60 X054 2811 1010 0000 0123 456
NetherlandsNL18 charsNL91 ABNA 0417 1643 00
BelgiumBE16 charsBE68 5390 0754 7034
AustriaAT20 charsAT61 1904 3002 3457 3201
United KingdomGB22 charsGB29 NWBK 6016 1331 9268 19

How to validate an IBAN

Type or paste the IBAN into the input field — spaces between character groups are accepted

Click Validate to run the format and checksum checks

Review the result: valid or invalid, the detected country code, and the formatted IBAN with standard four-character grouping

Copy the formatted IBAN for use in payment forms or accounting software

How to confirm the validator is working

Test with a known-valid German IBAN: `DE89 3704 0044 0532 0130 00` should pass. Then change any digit — for example, change the 8 to a 9 — and confirm the validator rejects it. Test the country length check by entering a valid-checksum IBAN with the wrong number of digits for its country code. Finally, paste an IBAN without spaces and verify that the formatted output adds the standard grouping.

Common mistakes in IBAN handling

Removing spaces and storing the raw string without reformatting — the grouped format is easier for humans to read and verify

Assuming a valid checksum means the account exists — mod-97 confirms the IBAN is well-formed, not that the bank or account is real

Truncating long IBANs to fit database columns — some IBANs are up to 34 characters and must be stored in full

Confusing the IBAN check digits with the account number — positions 3 and 4 are the checksum, not part of the domestic account number

Edge cases in IBAN validation

Non-SEPA IBANs still pass the mod-97 checksum if it is correct, but the length validation may flag them because the tool only has expected lengths for 30+ SEPA countries. The algorithm itself is universal — any valid IBAN worldwide will pass the mod-97 check regardless of whether its country is in the length lookup table. IBANs containing lowercase letters are normalized to uppercase before processing.

Who uses an IBAN validator

Accounts payable teams verifying supplier IBANs before executing international wire transfers

Fintech developers adding real-time IBAN validation to payment onboarding forms

Freelancers receiving cross-border payments who want to confirm their own IBAN is correctly formatted before sharing it

Compliance officers checking that collected IBANs match the expected country for anti-money-laundering reviews

Frequently asked questions

Q: Which countries are supported?

A: 30+ SEPA countries with their expected IBAN lengths. The mod-97 checksum works for any IBAN worldwide, but length validation is country-aware for the supported set.


Q: What is the mod-97 algorithm?

A: Move the first 4 characters (country code and check digits) to the end of the string. Convert all letters to numbers (A=10, B=11, through Z=35). The resulting integer must have a remainder of 1 when divided by 97.


Q: Does it verify that the bank account actually exists?

A: No — only the format and checksum. Real verification that the account is active and belongs to the stated holder requires a bank directory lookup or a confirmation transfer.


Q: Is my IBAN uploaded to any server?

A: No. Validation happens entirely in your browser with no data transmission.


Q: What if my country is not in the supported list?

A: The mod-97 checksum still runs and will correctly validate any well-formed IBAN. Only the country-specific length check is limited to the 30+ supported SEPA countries.


Q: Why are IBANs formatted with spaces?

A: The standard format groups IBANs into blocks of 4 characters for readability. This makes it easier for humans to verify the number and reduces transcription errors.

Validate your IBAN now

Check any international bank account number with the IBAN Validator. For related validators, see the Email Validator, Credit Card Validator, or ISBN Validator.

Need help using this tool?

Read our complete IBAN Validator tutorial for step-by-step guidance.

Ready to try the tool?

No accounts. No uploads. No limits. Start now.