POST /bank

Bank API

Validate an IBAN. Identify the bank when known.

Try it

Response/bank/DE89370400440532013000

Run a lookup to see the response.

1M requests · $20/mo.

Get started

Make your first request.

One key works across the APIs. Copy a request in your language and get JSON back.

curl "https://api.parseapi.com/bank" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  --data-raw '{"iban":"GB56HBUK40116200000001"}'
// Example response · 200
{
  "iban": "GB56HBUK40116200000001",
  "valid": true,
  "country": "GB",
  "formatted": "GB56 HBUK 4011 6200 0000 01",
  "bank": "HBUK",
  "bank_name": "HSBC UK Bank plc",
  "bic": "HBUKGB4B",
  "checks": {
    "input": "passed",
    "country": "passed",
    "length": "passed",
    "structure": "passed",
    "checksum": "passed",
    "national": "not_supported"
  },
  "issues": []
}

API referenceSDKsKeys and authentication

Every response field

Response fields

ibanstring or null
ASCII letters uppercased, Unicode whitespace and ASCII hyphens removed. Invalid characters remain visible. null when empty
validboolean
Country length, BBAN structure, ISO MOD-97, and supported national BBAN checks. See the Bank reference for national-check scope
checksobject
Validation stages in order. States are open strings: passed, failed, not_checked or not_supported. Missing prerequisites remain not_checked
checks.inputstring
Allowed input characters
checks.countrystring
Recognized country prefix, optionally supplied by the country hint
checks.lengthstring
Country-specific IBAN length
checks.structurestring
Country-specific BBAN structure
checks.checksumstring
ISO MOD-97 check digits
checks.nationalstring
Supported national BBAN check. not_supported means no applicable check; it does not invalidate the IBAN
issuesarray
First blocking finding, or an empty array when applicable checks pass. Independent of HTTP errors and directory coverage
issues[].fieldstring
Input to correct: iban or country. Open string
issues[].codestring
Stable issue code. Open string; see Bank reference for current codes
issues[].messagestring
Plain-text correction advice
countrystring or null
ISO 3166-1 alpha-2 from the prefix, or null when it is not an IBAN country
formattedstring or null
Print form in groups of four, for display. null when invalid
bankstring or null
Bank identifier parsed from the number, not a name. null when length is wrong
bank_namestring or null
Matching institution name from published bank-code sources. Independently null when unknown or ambiguous
bicstring or null
BIC from the same published sources. null when unsourced or missing

Deep fields

deep.checksumstring or null
The two check digits as a string, keeping a leading zero
deep.branchstring or null
Branch identifier when that country has one. null when it does not, or length is wrong
deep.accountstring or null
The remaining BBAN after bank and branch, including national suffixes where present. Not a reconstructed domestic account
deep.directoryobject
Directory evidence only when a lookup ran. Omitted otherwise; it does not identify why a field is null
deep.directory.editionstring
Edition fingerprint matching the downloadable coverage artifact
deep.directory.countrystring
Directory country after resolving a territory alias
deep.directory.matchstring
Whole-row match: bank, branch, prefix or none. No field borrowing across rows

Build with Bank

All tutorials →

QUESTIONS

Which countries can I validate IBANs from?
Structure and ISO checksum checks for 101 countries and territories, plus supported national BBAN checks. Matching directory records provide bank names in 100 countries and territories and BICs in 100. A null bank_name or bic does not mean the IBAN is invalid. See /docs/bank for national-check scope.
What if it is not an IBAN?
valid: false as a 200. checks shows which stage failed and issues explains what to correct. The iban echo preserves invalid characters.
What are bank and branch?
bank is the code parsed from the number. Optional deep adds branch and account decomposition plus checksum digits, included on every plan. bank_name and bic stay in core and are null when unknown or ambiguous.
Which countries have bank names and BICs?
The directory table above shows bank-name and BIC fields by country, with notes for individual banks. Each field comes from a matching bank record. A missing or ambiguous match returns null without changing the checksum result.
Can I skip the country prefix?
Pass country= and we fill it. A prefix already on the value wins.
Does this prove the account exists?
No. We check structure, the ISO checksum, and supported national BBAN checks. Bank details identify a matching directory record. These checks do not establish account existence, ownership, or payment acceptance.
Is the country in SEPA?
GET /bloc/sepa/countries lists the members on every plan. Paid country detail also includes deep.blocs.
What about spaces?
Unicode whitespace and ASCII hyphens are removed, and ASCII letters are uppercased. Other punctuation, symbols and Unicode lookalikes fail the input check. formatted carries a valid IBAN in groups of four.

Check one number in the IBAN checker. Format, checksum, and available bank details.