Most IBAN rejections come from a handful of preventable errors: wrong length, failed check digits, stray characters, and confusing the national format with the IBAN. Here's each one and how to fix it.

The most common IBAN mistakes

1. Wrong length

Each country has one exact IBAN length (Germany 22, France 27, Norway 15). Copy-paste often drops or duplicates a character. Fix: count the characters and compare against the country format table.

2. Failed check digits

A single mistyped digit breaks the mod-97 checksum. This is the check digits doing their job: retype carefully or re-copy from the source. Details: check digits explained.

3. Spaces, dashes and invisible characters

IBANs are displayed in groups of four for readability, but some systems choke on spaces: and copy-paste from PDFs can smuggle in non-breaking spaces. Fix: strip all whitespace before submitting; our validator normalizes automatically.

4. Letter/digit confusion

O vs 0, I vs 1, B vs 8: especially in scanned documents. French and Italian IBANs legitimately contain letters, which makes this worse. When in doubt, verify against the bank's own display.

5. Using the national number instead of the IBAN

Submitting a BBAN (sort code + account number) where the IBAN is expected. Fix: convert with the IBAN calculator first.

6. Using test IBANs in production

Generated test values are format-valid by design: which is exactly why they must never reach real payment flows. They are not checked against live directories and can coincidentally match real identifiers.

Troubleshoot in the order the checks run

First compare the country prefix with the bank-issued source. Next count the compact characters, excluding presentation spaces. Then inspect the national pattern and international checksum. This order prevents spending time on checksum arithmetic when a character is already missing.

SymptomLikely causeUseful next step
Wrong lengthMissing final group or leading zeroCopy the complete bank-issued value
Invalid charactersPunctuation, OCR error or wrong fieldCompare with the original document
Checksum failureOne or more mistyped charactersVerify every character; do not guess a correction
Local pass, payment rejectionAdditional bank, account or scheme checksRead the payment service’s error and contact the bank
Spreadsheet changes valueIdentifier stored as numeric dataImport and export the field as text

A failure does not identify the incorrect digit

MOD-97 tells you the complete string is inconsistent; it does not tell you which character is wrong. Changing the two check digits until the number passes can conceal an error in the underlying account component. A mathematically consistent number can still identify the wrong recipient.

Do not confuse a country pattern with all banking rules

A local validator can check the number of letters and digits and still omit national account checks or current bank-code lookups. Some payment services perform those extra checks. A generated sample can therefore be accepted by a browser tool and rejected by a banking integration without either result being contradictory.

For developers: preserve the original input

Keep the entered text available when displaying an error. Normalize recognized presentation spaces and letter case consistently, but do not replace digits or erase arbitrary characters to force a pass. Store identifiers as strings and avoid a global rule that assumes every IBAN has the same length.

Include valid and invalid fixtures in regression tests, including an alphanumeric national component. Show a distinct message for an unsupported country instead of claiming that every unrecognized value is a nonexistent account.

Sources and scope

Swift: national IBAN formats and registration authority.

Examples and test matrices are explanatory fixtures, not receiving instructions. This page covers format checks and software testing. It does not verify account ownership or provide a guarantee that a payment will succeed.

Technical notes updated 8 October 2026. Read the editorial policy. Send a correction.