To check an IBAN, verify four things: the country code is in the IBAN registry, the length matches that country exactly, the structure follows the national format, and the two check digits pass the mod-97 algorithm. The fastest way is a free online IBAN validator: paste the IBAN and get an instant result.

Four ways to check whether an IBAN is valid

Method 1: Online validator (fastest)

  1. Copy the IBAN from the invoice or email.
  2. Paste it into our IBAN validator.
  3. Read the result: valid means format + checksum passed; invalid tells you exactly what failed (wrong length, bad checksum, unknown country).

This checks format only: it cannot confirm the account exists. For large payments, still confirm details with the recipient through a second channel.

Method 2: Manual mod-97 check

  1. Move the first 4 characters to the end.
  2. Convert letters to numbers (A=10, B=11 … Z=35).
  3. Compute the number mod 97. If the remainder is 1, the IBAN is valid.

Example: DE89370400440532013000 → rearranged and converted → mod 97 = 1 ✓. Full walkthrough: check digits explained.

Method 3: Ask your bank

Banks validate against their own directories and can additionally confirm the account holder name (Confirmation of Payee / Verification of Payee in some countries). Use this before first-time large transfers.

Method 4: API validation (for apps)

If you process IBANs at scale, validate server-side with a library or API on every submission: client-side checks are for UX, server-side checks are for safety.

Common reasons an IBAN fails

  • Spaces or typos from copy-paste: retype carefully.
  • Wrong length: each country has an exact length (see the table).
  • Old domestic number: some invoices still show pre-IBAN national formats.
  • Fake/test IBAN: generated test values are not verified against real bank accounts.

Use a documented example to understand the result

The German example DE89370400440532013000 passes our local country, length, BBAN-pattern and international-checksum checks. Changing only the check digits to 88 makes it fail. Removing the final character makes the length wrong before the checksum is considered.

Spaces in the printed version are just grouping. A form can normalize DE89 3704 0044 0532 0130 00 into the compact version without changing the identifier. Do not treat a bank statement’s four-character groups as separate fields.

Understand the level of assurance

CheckWhat it answersWhat it does not answer
Country and lengthDoes this match a supported national layout?Was the account issued?
BBAN character patternAre letters and digits in the expected positions?Do all national check rules pass?
MOD-97Are the international check digits consistent?Is the recipient genuine?
Bank or recipient verificationService-dependent directory or name checksA universal guarantee of payment success

If a check fails

Compare the input against the original account details, character by character. Look for missing leading zeroes, a cropped final group, or confusion between letters and digits. Do not remove meaningful letters from an alphanumeric account component. If the original still fails, ask the account holder or bank to confirm the complete value.

Do not calculate replacement check digits as a way to “repair” real receiving details. That can produce a well-formed identifier for a different account component. Corrections should come from the bank-issued source.

Before sending money

Confirm the beneficiary and account details through a trusted channel, particularly when bank details have changed. Use your bank’s payee verification service where available and investigate mismatch warnings. Our browser tool is useful for formatting and troubleshooting; it does not search a live bank directory, confirm account ownership or assess fraud.

In software tests, document whether a case is expected to pass local validation or a provider’s sandbox. A generated number can pass the first and fail the second because the provider requires its own approved test identifiers.

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.