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
| Action | What it does |
|---|---|
| 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. |
| 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. |
| 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. |
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
- IBAN
ibantextRequired - 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
- IBANs
ibanslistRequired - 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
- Country
querytext - 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 details
bank_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"
}
]
}