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.
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. |
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"
}