IBAN validation

Last changes: 10-30-2023

The IBAN validation checks an IBAN based on specific criteria including length, country code, format, checksum, structure and SEPA country recognition.

The following components of the IBAN are checked:

  • Country code - verifies if the country code submitted is representing a valid country.
  • Length - verifies if the IBAN length is correct for the specific country.
  • checksum - verifies that the checksum part of the IBAN is plausible towards the remainder of the IBAN.
  • Structure -  validates the structure of the IBAN.

In case the IBAN is valid, the following data is returned: IBAN, country code, check whether the country is part of SEPA (Single Euro Payment Area), account number, sort code and check sum.

Perform IBAN Validation

The following section will describe the procedure and results of an IBAN validation. To perform the IBAN validation, provide IBAN number.

IBAN validation request

Path:

GET {baseURL}/validate-iban?{IBAN}

Header:

Content-Type: application/json
Accept-Language: en-US

https://{baseURL}/validate-iban?iban=DE89370400440532013000

IBAN verification Response 200

Status Code:

200 (OK)

Header:

Content-Type: application/json
Accept-Language: en-US

{
  "validationResult": true,
  "validationDetails": {
    "countryCode": true,
    "length": true,
    "checksum": true,
    "structure": true
  },
  "ibanDetails": {
    "iban": "DE89370400440532013000",
    "countryCode": "DE",
    "sepaCountry": true,
    "accountNumber": "0532013000",
    "sortCode": "37040044",
    "checksum": "89"
  }
}

If the IBAN is verified, the response gives additional information about the IBAN.

"iban" IBAN number requested.
"countryCode" Country code in ISO 3166-1 alpha-2 standard.
"sepaCountry" Boolean value indicating whether country participates in SEPA - Single Euro Payment Area.
"accountNumber" Bank Account Number extracted from the IBAN.
"sortCode" Domestic bank identifier / sort code of the bank (e.g. BLZ = Bankleitzahl in Germany or Code Banque & Code Guiche in France).
"checksum" Checksum extracted from the IBAN.

IBAN validation data model

Field Mandatory Description Type Length
validationResult Yes Indicates whether the provided IBAN is valid. boolean -
countryCode No Check if the value provided as country code is a valid ISO country code. boolean -
length No IBAN length is correct for a specific county. boolean -
checksum No Last two digits checksum matches the calculated value. boolean -
structure No IBAN conforms to the correct formatting of its country. For certain countries, there might be additional rules governing the structure of the IBAN, such as specifying which characters can appear in specific positions. This check verifies that the structure rules are followed. boolean -
iban No The IBAN number received in the request. Pattern: ^[A-Z]{2}[0-9]{2}[A-Z0-9]+$ example: DE89370400440532013000 string 34
sepaCountry No Indicates if country provided in IBAN participates in SEPA boolean -
accountNumber No The account number portion of the IBAN string 20
sortCode No Domestic bank identifier / sort code of the bank (e.g. BLZ = Bankleitzahl in Germany or Code Banque & Code Guiche in France) string 10
SepaSchemeSupport No Indicates SEPA services available for this bank. object -
creditTransfer No Indicates if SEPA credit transfer is supported. boolean -
directDebit No Indicates if SEPA direct debit core is supported. boolean -
b2bDirectDebit No Indicates if SEPA direct debit B2B is supported. boolean -

IBAN checker will always return the validationResult as

  • true = IBAN valid
  • false = IBAN invalid

Other fields are only populated if recognized in the context given, otherwise they are omitted.

IBAN validation Response 400

Status Code:

400 (Invalid input)

Header:

Content-Type: application/json
Accept-Language: en-US

{
  "message": "string"
}

IBAN verification Response 401

Status Code:

401 (UNAUTHORIZED: No valid API key provided.)

Header:

Content-Type: application/json
Accept-Language: en-US

{
  "message": "string"
}

IBAN verification Response 403

Status Code:

403 (FORBIDDEN: The API key doesn't have permissions to perform the request.)

Header:

Content-Type: application/json
Accept-Language: en-US

{
  "message": "string"
}