← Docs

IBAN API

Checksum an IBAN. Country, bank, and account codes out.

Checksum an IBAN before you store it. You get the normalized number, the print form for display, the country, and the bank, branch, and account identifiers sitting inside it. That counts as a normal request. A string that is not an IBAN answers valid: false as a 200, never a 404.

bank and branch are codes parsed from the number, not a name. Branch is null when that country has none. This does not prove the account exists. Pass ?country= when the value has no prefix. A prefix on the value wins. SEPA membership is a country fact: GET /bloc/sepa/countries lists the members.

Validate

GET
api.parseapi.com/iban/{iban}
Checksum and structure. Country, bank, branch, and account codes
curl "https://api.parseapi.com/iban/DE89370400440532013000" \
  -H "X-API-Key: YOUR_API_KEY"
{
  "iban": "DE89370400440532013000",
  "valid": true,
  "country": "DE",
  "formatted": "DE89 3704 0044 0532 0130 00",
  "checksum": "89",
  "bank": "37040044",
  "branch": null,
  "account": "0532013000"
}
curl "https://api.parseapi.com/iban/DE89%203704%200044%200532%200130%2000" \
  -H "X-API-Key: YOUR_API_KEY"
{
  "iban": "DE89370400440532013000",
  "valid": true,
  "country": "DE",
  "formatted": "DE89 3704 0044 0532 0130 00",
  "checksum": "89",
  "bank": "37040044",
  "branch": null,
  "account": "0532013000"
}
curl "https://api.parseapi.com/iban/hello" \
  -H "X-API-Key: YOUR_API_KEY"
{
  "iban": "HELLO",
  "valid": false,
  "country": null,
  "formatted": null,
  "checksum": null,
  "bank": null,
  "branch": null,
  "account": null
}
curl "https://api.parseapi.com/iban/89370400440532013000?country=DE" \
  -H "X-API-Key: YOUR_API_KEY"
{
  "iban": "DE89370400440532013000",
  "valid": true,
  "country": "DE",
  "formatted": "DE89 3704 0044 0532 0130 00",
  "checksum": "89",
  "bank": "37040044",
  "branch": null,
  "account": "0532013000"
}

Response fields

iban
Normalized IBAN, uppercase, no spaces. null when empty
valid
Checksum and structure match the country
country
ISO 3166-1 alpha-2 from the prefix, or null when it is not an IBAN country
formatted
Print form in groups of four, for display. null when invalid
checksum
The two check digits as a string, keeping a leading zero
bank
Bank identifier parsed from the number, not a name. null when length is wrong
branch
Branch identifier when that country has one. null when it does not, or length is wrong
account
Account identifier, the rest of the number after bank and branch

Questions? Email