IBAN Validation
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 Payments Area), account number, sort code and check sum.
Base URLs
SANDBOX | PRODUCTION | |
---|---|---|
API Base URL | https://ibanchecker.cons.shared.upcf.jpmmps.com/api/v1 | https://ibanchecker.shared.upcf.jpmmps.com/api/v1 |
Merchant Key | Provided by Product Solutions Specialist | Provided by Customer Relationship Manager |
API Authentication Key | Provided by Product Solutions Specialist | Provided by Customer Relationship Manager |
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
POST /iban/validate/iban
Headers
Content-Type: application/json
Accept-Language: en-US
Body
{
"validationRequest": {
"iban": "DE89750500000000123456"
}
}
IBAN verification Response 200
Status Code
200 (OK)
Header
Content-Type: application/json
Accept-Language: en-US
Body
{
"validationRequest": {
"iban": "DE89750500000000123456"
},
"validationResult": {
"isValidIban": true,
"validationDetails": {
"countryCode": true,
"length": true,
"checksum": true,
"structure": true
},
"ibanDetails": {
"iban": "DE89750500000000123456",
"countryCode": "DE",
"sepaCountry": true,
"accountNumber": "0000000123456",
"sortCode": "75050000",
"checksum": "97"
}
}
}
If the IBAN is verified, the response gives additional information about the IBAN.
Value | Explanation |
---|---|
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. Bankleitzahl in Germany or Code Banque & Code Guiche in France. |
checksum | Checksum extracted from the IBAN. |
Other fields are only populated if recognized in the context given, otherwise they are omitted.
IBAN validation data model
Field | Mandatory | Description | Type | Length |
---|---|---|---|---|
validationRequest | Yes | Contains the queried values. | Object | - |
validationRequest.iban | Yes | The IBAN number to be checked in the request. Pattern: [A-Z]{2}[0-9]{2}[a-zA-Z0-9]{1,30} e.g. DE89750500000000123456 | String | 34 |
validationResult | Yes | - | Object | - |
validationResult.isValidIban | Yes | Indicates whether the provided IBAN is valid. | Boolean | - |
validationResult.validationDetails | No | Check if the value provided as country code is a valid ISO country code. | Object | - |
validationResult.validationDetails.countryCode | Yes | - | Boolean | - |
validationResult.validationDetails.length | No | IBAN length is correct for a specific country. | Boolean | - |
validationResult.validationDetails.checksum | No | Last two digits checksum matches the calculated value. | Boolean | - |
validationResult.validationDetails.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 which specific numbers/characters appear in specific positions. This field verifies that the number/letter pattern is correct. | Boolean | - |
validationResult.ibanDetails | No | The IBAN number received in the request. Pattern: [A-Z]{2}[0-9]{2}[a-zA-Z0-9]{1,30} e.g. DE89750500000000123456 | Object | - |
validationResult.ibanDetails.iban | No | The IBAN number received in the request. | String | 34 |
validationResult.ibanDetails.countryCode | No | ISO 3166-1 country provided in IBAN participates in SEPA. | String | 2 |
validationResult.ibanDetails.sepaCountry | No | Indicates if country provided in IBAN participates in SEPA. | Boolean | - |
validationResult.ibanDetails.accountNumber | No | The account number portion of the IBAN. | String | - |
validationResult.ibanDetails.sortCode | No | Domestic bank identifier / sort code of the bank e.g. Bankleitzahl in Germany or Code Banque & Code Guiche in France. | String | 8 |
validationResult.ibanDetails.sepaSchemeSupport | No | Indicates if SEPA schemes available for this bank. | Object | - |
validationResult.ibanDetails.creditTransfer | No | Indicates if SEPA credit transfer is supported. | Boolean | - |
validationResult.ibanDetails.directDebit | No | Indicates if SEPA direct debit is supported. | Boolean | - |
validationResult.ibanDetails.b2bDirectDebit | No | Indicates if SEPA B2B direct debit is supported. | Boolean | - |
IBAN verification Response 400
Status Code
400 (Invalid Input)
Header
Content-Type: application/json
Accept-Language: en-US
Body
{
"message": "string"
}
IBAN verification Response 401
Status Code
401 (Authentication/No valid API key provided)
Header
Content-Type: application/json
Accept-Language: en-US
Body
{
"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
Body
{
"message": "string"
}