Genory
Banking formats

IBAN Formats by Country: Lengths, Structure and Examples

Compare 24 national IBAN formats, understand the parts that change between countries, and learn how to read an account identifier without guessing what it proves.

A German IBAN has 22 characters. A Dutch one has 18, and a French one has 27. That difference is expected, but it can be confusing when you are checking an invoice, building a payment form or preparing an international customer record. The useful question is not whether an IBAN looks like yours. It is whether it follows the format for its own country.

Read the common parts before the national details

The first two characters are the country code. The next two are international check digits. The remaining part, called the BBAN, follows national rules. Some BBANs contain only digits; others include letters. An IBAN can therefore be perfectly legitimate even when a letter appears well beyond the country prefix.

Bars compare registered IBAN lengths: Norway 15, Netherlands 18, Germany 22 and France 27 characters.
Selected registered lengths: Norway 15, Netherlands 18, Germany 22 and France 27 characters. Spaces are excluded; length does not measure security.

For a recipient, the practical rule is simple: copy the identifier exactly from the bank’s receiving instructions. For a developer, the implication is different: a single national input mask is not enough for an international form. Select the appropriate country specification before evaluating the national part. If you are new to these terms, start with what an IBAN is.

IBAN length and BBAN format by country

The reference below uses the project’s SWIFT-derived registry data. The official reference is the SWIFT IBAN Registry, Release 103, September 2026. The table includes frequently encountered European formats and selected formats elsewhere. SWIFT is the registration authority for the international standard; consult its current registry for other jurisdictions and subsequent changes.

In the pattern column, n means digits, a means letters and c means letters or digits. The number before the exclamation mark gives the exact field length: 4!a10!n means four letters followed by ten digits. These patterns describe the BBAN only; add the two country letters and two international check digits to obtain the full IBAN.

Country Prefix IBAN length BBAN pattern
Austria AT 20 5!n11!n
Belgium BE 16 3!n7!n2!n
Czechia CZ 24 4!n16!n
Denmark DK 18 4!n9!n1!n
Finland FI 18 3!n11!n
France FR 27 5!n5!n11!c2!n
Germany DE 22 8!n10!n
Greece GR 27 3!n4!n16!c
Ireland IE 22 4!a6!n8!n
Italy IT 27 1!a5!n5!n12!c
Malta MT 31 4!a5!n18!c
Netherlands NL 18 4!a10!n
Norway NO 15 4!n6!n1!n
Poland PL 28 8!n16!n
Portugal PT 25 4!n4!n11!n2!n
Romania RO 24 4!a16!c
Spain ES 24 4!n4!n1!n1!n10!n
Sweden SE 24 3!n16!n1!n
Switzerland CH 21 5!n12!c
United Kingdom GB 22 4!a6!n8!n
Brazil BR 29 8!c5!n10!n1!c1!c
Saudi Arabia SA 24 2!n18!c
Turkiye TR 26 5!n1!n16!c
United Arab Emirates AE 23 3!n16!n

Three examples that explain the differences

Germany: a numeric national part

The German pattern is DE + two check digits + eight bank-code digits + ten account-number digits. Its total length is 22. Leading zeros belong to the identifier. Converting the account segment to a number and then back to text can shorten it, even though the original bank instructions were correct.

Netherlands: letters identify the bank

The Dutch pattern is NL + two check digits + four bank-identification letters + ten account-number digits. Its total length is 18. A rule that accepts only digits after position four would incorrectly reject it. This is a useful counterexample when someone suggests “just remove every letter except the country code.”

France: more than a bank code and account number

The French BBAN contains five bank digits, five branch digits, an eleven-character alphanumeric account segment and two national check digits. Together with the country code and international check digits, the total is 27. The final national check digits have a different role from the international digits near the beginning.

German BBAN: 8 bank digits and 10 account digits. Dutch: 4 bank letters and 10 account digits. French: 5 bank digits, 5 branch digits, 11 account characters and 2 national check digits.
The German, Dutch and French BBANs use different field layouts. The shared country/check prefix is separate from these national fields.

The lesson is to read the structure, not infer it from a visually convenient group. Printed IBANs are often grouped in fours, but those spaces need not align with the underlying bank, branch or account fields. Splitting a displayed number at each space is therefore not a reliable way to extract banking components.

Country prefix, bank location and payment currency

An IBAN prefix belongs to a registered account-numbering format. It is not a reliable shortcut for a person’s residence, nationality or the currency of a proposed transaction. Keep those questions separate in a form: a customer’s address country and an account’s IBAN prefix need not be the same.

Some territories use another country’s registered format. Genory’s country selection can explain supported territory-to-format relationships, but an interface label should not be treated as permission to replace the letters inside an IBAN. Use the value issued by the bank. Changing the prefix changes the identifier and its checksum calculation.

For example, a business may ask to be paid in euros into an account whose prefix differs from your own country. The prefix alone cannot tell you whether the account supports the intended currency or payment route. Ask the recipient for receiving instructions and check the bank’s payment options. Our SEPA transfer explanation covers that separate payment question.

What to do when a form says the length is wrong

Three-step format troubleshooting: compare bank-issued details, remove only allowed display spacing, then check the matching country format.
Check the source, remove permitted display spacing, then apply the matching country format. Never add or remove meaningful account characters to silence an error.
  1. Compare with the original. Reopen the bank-provided details rather than relying on a cropped screenshot or a forwarded fragment.
  2. Check display formatting. Spaces may be removed by the form. A pasted label such as “IBAN:” is not part of the value.
  3. Read the country prefix. Compare the length with that country’s specification, not with your domestic account format.
  4. Keep meaningful characters. Do not delete letters or leading zeros, and do not add padding to someone else’s account details.
  5. Ask about the actual rejection. A provider may not support the destination even when the identifier has the right structure.

Suppose a field expects 22 characters but the recipient gives you an 18-character Dutch IBAN. Adding four zeros would not fix the account. The useful investigation is whether the form mistakenly assumes a domestic length, whether you selected the wrong payment route, or whether its country support is limited. A good error message distinguishes those cases.

Formatting helps people read an identifier. It should never silently change which account that identifier describes.

For developers: keep display, storage and checks separate

Store the normalized identifier as text, preserving every meaningful letter and zero. Display spacing can be applied when rendering it. Document exactly which cleanup operations your application accepts; consistent rules matter across browser forms, mobile entry and file imports. Avoid aggressive cleanup that turns malformed input into an apparently acceptable number without telling the user.

Keep country specifications in one maintained dataset rather than copying lengths into several components. In tests, include a short numeric format, a format with bank letters and an alphanumeric account segment. This small variety can reveal assumptions that dozens of nearly identical domestic samples would miss. The test IBAN checklist provides a practical starting matrix.

Distinguish three coverage claims in your interface: registered format known, national validation implemented, and bank reference information available. Those capabilities do not automatically arrive together. If a tool can check the international structure but lacks a domestic algorithm, explain that boundary instead of presenting a stronger result than it performed.

Common questions about national IBAN formats

Do all countries use IBANs?

No. A missing country in this selected table is not evidence either way: it may simply be outside the selection. Check the official registry and the receiving bank’s instructions. Never construct a new IBAN for a country or account that does not use one.

Can I calculate my IBAN from a domestic account number?

Use your bank’s own account details or official conversion service. Domestic conversion may have institution-specific rules; the Deutsche Bundesbank’s IBAN rules explain why German conversion is not always a simple concatenation. A demonstration of check-digit arithmetic is not a substitute for those receiving instructions.

Are spaces and lowercase letters errors?

They are often display or entry differences that a form can normalize, depending on its documented rules. Unsupported punctuation and lookalike characters are a different problem. Review the exact input rather than assuming every nonstandard-looking character can safely be removed.

Does the right length mean the IBAN is valid?

No. Length is one check alongside the country prefix, permitted character positions and international checksum. Additional national checks may apply. Our IBAN validation article explains those layers; even a passing result does not prove that a real account exists.

Where can I check a value or make a practice example?

Use the IBAN validator to inspect supported format checks and the IBAN generator for clearly labelled test data. Keep practice values away from actual payment instructions. For a real transfer, the account details must come from the intended recipient and their bank.

Tools for this guide