Skip to main content

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

SANDBOXPRODUCTION
API Base URLhttps://ibanchecker.cons.shared.upcf.jpmmps.com/api/v1https://ibanchecker.shared.upcf.jpmmps.com/api/v1
Merchant KeyProvided by Product Solutions SpecialistProvided by Customer Relationship Manager
API Authentication KeyProvided by Product Solutions SpecialistProvided 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)
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.

ValueExplanation
ibanIBAN number requested.
countryCodeCountry code in ISO 3166-1 alpha-2 standard.
sepaCountryBoolean value indicating whether country participates in SEPA - Single Euro Payment Area.
accountNumberBank Account Number extracted from the IBAN.
sortCodeDomestic bank identifier / sort code of the bank e.g. Bankleitzahl in Germany or Code Banque & Code Guiche in France.
checksumChecksum extracted from the IBAN.

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

IBAN validation data model

FieldMandatoryDescriptionTypeLength
validationRequestYesContains the queried values.Object-
validationRequest.ibanYesThe IBAN number to be checked in the request. Pattern: [A-Z]{2}[0-9]{2}[a-zA-Z0-9]{1,30} e.g. DE89750500000000123456String34
validationResultYes-Object-
validationResult.isValidIbanYesIndicates whether the provided IBAN is valid.Boolean-
validationResult.validationDetailsNoCheck if the value provided as country code is a valid ISO country code.Object-
validationResult.validationDetails.countryCodeYes-Boolean-
validationResult.validationDetails.lengthNoIBAN length is correct for a specific country.Boolean-
validationResult.validationDetails.checksumNoLast two digits checksum matches the calculated value.Boolean-
validationResult.validationDetails.structureNoIBAN 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.ibanDetailsNoThe IBAN number received in the request. Pattern: [A-Z]{2}[0-9]{2}[a-zA-Z0-9]{1,30} e.g. DE89750500000000123456Object-
validationResult.ibanDetails.ibanNoThe IBAN number received in the request.String34
validationResult.ibanDetails.countryCodeNoISO 3166-1 country provided in IBAN participates in SEPA.String2
validationResult.ibanDetails.sepaCountryNoIndicates if country provided in IBAN participates in SEPA.Boolean-
validationResult.ibanDetails.accountNumberNoThe account number portion of the IBAN.String-
validationResult.ibanDetails.sortCodeNoDomestic bank identifier / sort code of the bank e.g. Bankleitzahl in Germany or Code Banque & Code Guiche in France.String8
validationResult.ibanDetails.sepaSchemeSupportNoIndicates if SEPA schemes available for this bank.Object-
validationResult.ibanDetails.creditTransferNoIndicates if SEPA credit transfer is supported.Boolean-
validationResult.ibanDetails.directDebitNoIndicates if SEPA direct debit is supported.Boolean-
validationResult.ibanDetails.b2bDirectDebitNoIndicates 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"
}