IBAN Analyzer

App · 3 actions

Check IBANs and find the bank behind them. Check one IBAN or a whole payment file at once (the check digits, the length and the layout for its country) and get back the bank's name, BIC (SWIFT code), address and city for more than 60 countries, whether the country is in SEPA, and a plain-words reason when an IBAN is wrong. No account or API key required.

Actions

ActionWhat it does
Check an IBANCheck that an IBAN is a real one before you pay it: its check digits, its length and its layout for the country it is from.
Check several IBANsCheck a whole list of IBANs in one step (a payment file, a supplier list, a column from a spreadsheet) and get back each result, with its bank where known, plus the counts to branch on.
List supported countriesList every country IBAN Analyzer checks IBANs for, with the two-letter code an IBAN from there starts with and whether it also returns bank details there.

Check an IBAN

Check that an IBAN is a real one before you pay it: its check digits, its length and its layout for the country it is from. For more than 60 countries it also returns the bank's name, BIC (SWIFT code), address and city, and it says whether the country is in SEPA. When the IBAN fails, the answer says why in plain words. No API key required.

Inputs

IBANibantextRequired
The IBAN to check. Paste it however it was written: spaces, hyphens and lower case are all fine, and it is tidied up before it is sent.

Outputs

One IBAN and everything IBAN Analyzer reports about it.

account_numbertext
The domestic account number inside the IBAN, for example '0532013000'. Null when the IBAN is invalid.
bankobject
The bank the IBAN belongs to. Every field is null when IBAN Analyzer holds no record of it.
bank_codetext
The bank's own domestic code as it sits inside the IBAN, for example '37040044'. Null when the IBAN is invalid.
checksum_validtrue/false
Whether the IBAN's two check digits match the rest of it. This is what catches a mistyped or swapped character.
country_codetext
The two-letter code of the country the account is held in, for example 'DE'. Null when the IBAN does not name a country.
country_nametext
The country's name, for example 'Germany'.
format_validtrue/false
Whether the letters and digits are laid out the way its country's IBANs are.
ibantext
The IBAN with spaces and punctuation removed and letters upper cased: the electronic form, and the one to store.
iban_formattedtext
The same IBAN in groups of four, the way it is written on paper: 'DE89 3704 0044 0532 0130 00'.
length_validtrue/false
Whether the IBAN is the right length for its country (22 characters for Germany, 18 for Denmark).
problemtext
Why the IBAN failed, in plain words, ready to show a person. Null when it is valid.
sepa_countrytrue/false
Whether the country is in SEPA, the Single Euro Payments Area, so the account can receive a SEPA transfer or direct debit. Null when the country is unknown.
validtrue/false
True when the IBAN passed every check: its check digits, its length and its layout for the country it is from.
Example output
{
  "account_number": "0532013000",
  "bank": {
    "address": null,
    "bic": "COBADEFFXXX",
    "city": "K\u00f6ln",
    "found": true,
    "name": "Commerzbank",
    "postal_code": "50447"
  },
  "bank_code": "37040044",
  "checksum_valid": true,
  "country_code": "DE",
  "country_name": "Germany",
  "format_valid": true,
  "iban": "DE89370400440532013000",
  "iban_formatted": "DE89 3704 0044 0532 0130 00",
  "length_valid": true,
  "problem": null,
  "sepa_country": true,
  "valid": true
}

Check several IBANs

Check a whole list of IBANs in one step (a payment file, a supplier list, a column from a spreadsheet) and get back each result, with its bank where known, plus the counts to branch on. A bad IBAN comes back as a row saying what is wrong, not as a failed step, and the invalid ones are gathered into their own list. Up to 50 at a time. No API key required.

Inputs

IBANsibanslistRequired
The IBANs to check, up to 50 in one step. Each one counts towards the free limit of 60 checks an hour, though an IBAN listed twice is only checked once. Anything that fails (a mistyped digit, or a cell that is not an IBAN at all) comes back as a row saying so rather than failing the whole step.

Outputs

all_validtrue/false
True when every IBAN is valid: the single flag to branch on before releasing a payment run.
countnumber
How many rows the step returned.
invalid_countnumber
How many of them are not valid.
invalid_ibanslist
Just the IBANs that are not valid: the list to put in front of a person.
resultslist
One result per IBAN, in the order they were given. An entry that is not an IBAN at all gets a row too, with every check false and the reason in 'problem', so the rows line up with the list that was sent.
valid_countnumber
How many of them are valid.
valid_ibanslist
Just the IBANs that are valid, in the order given.
Example output
{
  "all_valid": false,
  "count": 2,
  "invalid_count": 1,
  "invalid_ibans": [
    "DE89370400440532013001"
  ],
  "results": [
    {
      "account_number": "0532013000",
      "bank": {
        "address": null,
        "bic": "COBADEFFXXX",
        "city": "K\u00f6ln",
        "found": true,
        "name": "Commerzbank",
        "postal_code": "50447"
      },
      "bank_code": "37040044",
      "checksum_valid": true,
      "country_code": "DE",
      "country_name": "Germany",
      "format_valid": true,
      "iban": "DE89370400440532013000",
      "iban_formatted": "DE89 3704 0044 0532 0130 00",
      "length_valid": true,
      "problem": null,
      "sepa_country": true,
      "valid": true
    },
    {
      "account_number": null,
      "bank": {
        "address": null,
        "bic": null,
        "city": null,
        "found": false,
        "name": null,
        "postal_code": null
      },
      "bank_code": null,
      "checksum_valid": false,
      "country_code": "DE",
      "country_name": "Germany",
      "format_valid": true,
      "iban": "DE89370400440532013001",
      "iban_formatted": "DE89 3704 0044 0532 0130 01",
      "length_valid": true,
      "problem": "The check digits do not match the rest of the IBAN, so a character is probably mistyped.",
      "sepa_country": true,
      "valid": false
    }
  ],
  "valid_count": 1,
  "valid_ibans": [
    "DE89370400440532013000"
  ]
}

List supported countries

List every country IBAN Analyzer checks IBANs for, with the two-letter code an IBAN from there starts with and whether it also returns bank details there. Use it to check a country is covered before building a workflow around it. This does not count towards the hourly limit. No API key required.

Inputs

Countryquerytext
Only countries whose name contains this text, or whose two-letter code is exactly this. Not case sensitive. Leave it empty for all of them.
Only countries with bank detailsbank_details_onlytrue/false
Return only the countries where IBAN Analyzer also returns the bank's name and BIC. Off by default.Default: false.

Outputs

countnumber
How many countries matched.
countrieslist
The countries that matched, by name A to Z.
Example output
{
  "count": 1,
  "countries": [
    {
      "bank_details_available": true,
      "code": "DK",
      "name": "Denmark"
    }
  ]
}

On this page