Skip to main content

Validate a global account

In this tutorial, you will learn how to validate a global bank account.

  • Validate a personal account via provider SurePay
  • Validate a business account via provider SurePay
  • Validate a personal bank account via provider SurePay or provider Kinexys Liink
  • Validate a business account via provider Kinexys Liink

Before you begin

To validate a global bank account, you will need the following:

  • registered and fully onboarded Developer Account on the J.P. Morgan Payments Developer Portal.
  • An active project that provides you with the credentials to make a request.
  • A configured callback API and anregistered callback URL to receive responses from Kinexys Liink.

Validate a personal account via provider SurePay

To validate a personal account using Provider SurePay, the account holder's name and account identifiers are required. Refer to Account Validation country list for country-specific requirements. To validate a personal account, call a POST request to the v2/validations/accounts endpoint. The following example shows the required fields for a personal account validation request. 

Example POST v2/validations/accounts request
Json
[
  {
    "requestId": "123e4567-e89b-12d3-a456-426614174000",
    “profileName”: “globalaccountvalidation”,
    "account": {
      "accountNumber": "DE33500105171834492216",
      "financialInstitutionId": {
        "clearingSystemId": {
          "id": "DE33500105171834492216",
          "idType": "IBAN"
        },
        "postalAddress": {
          "country": "DE"
        }
      },
      "accountNumberType": "IBAN"
    },
    "entity": {
      "individual": {
        "firstName": "Jane",
        "lastName": "Doe"
          }
        ]
      }
    }
  }
]

Sample response 

The following example shows a successful response for a personal account validation request. 

Sample response: Validate personal account via provider SurePay
Json
[
  {
    "requestId": "123e4567-e89b-12d3-a456-426614174000",
    "responses": [
       {
            "codes": {
                "verification": {
                    "code": 1011,
                    "message": "Open Valid"
                },
                "authentication": {
                    "code": 5011,
                    "message": "Ownership Match"
                }
            },
            "provider": "SUREPAY_IBAN",
            "details": {
"providerResponse": {
            "result": {
              "resultType": "MATCH",
              "account": {
                "status": "ACTIVE"
              }
            }
          }
        }
      }
    ]

Validate a business account via provider SurePay

To validate a business account using Provider SurePay, the business account holder name and business account identifiers are required. Refer to Account Validation Country List for country-specific requirements. o validate a business account, call a POST request to the v2/validations/accounts endpoint. 

Example POST v2/validations/accounts request
Json
[
  {
    "requestId": "123e4567-e89b-12d3-a456-426614174000",
    “profileName”: “globalaccountvalidation”,
    "account": {
      "accountNumber": "DE76500105178569136743",
      "financialInstitutionId": {
        "clearingSystemId": {
          "id": "DE76500105178569136743",
          "idType": "IBAN"
        },
        "postalAddress": {
          "country": "DE"
        }
      },
      "accountNumberType": "IBAN"
    },
    "entity": {
      "organization": {
        "name": "Dummy Organization Inc"
          }
        ]
      }
    }
  }
]

Sample response 

The following example shows a successful response for a business account validation request. 

Sample response: Validate a business account via provider SurePay
Json
[
  {
    "requestId": "123e4567-e89b-12d3-a456-426614174000",
    "responses": [
       {
            "codes": {
                "verification": {
                    "code": 1011,
                    "message": "Open Valid"
                },
                "authentication": {
                    "code": 5011,
                    "message": "Ownership Match"
                }
            },
            "provider": "SUREPAY_IBAN",
            "details": {
"providerResponse": {
            "result": {
              "resultType": "MATCH",
              "account": {
                "status": "ACTIVE"
              }
            }
          }
        }
      }
    ]
  }
]

Validate a personal account via provider Kinexys Liink

To validate a personal account via provider Kinexys Liink, the account holder's name and account identifiers are required. Refer to Account Validation country list for country-specific requirements. Call a POST request to the v2/validations/accounts endpoint. 

Sample request: Validate a personal account via provider Kinexys Link
Json
[
  {
    "requestId": "123e4567-e89b-12d3-a456-426614174000",
    “profileName”: “globalaccountvalidation”,
    "account": {
      "accountNumber": "DE33500105171834492216",
      "financialInstitutionId": {
        "clearingSystemId": {
          "id": "DE33500105171834492216",
          "idType": "IBAN"
        },
        "postalAddress": {
          "country": "DE"
        }
      },
      "accountNumberType": "IBAN"
    },
    "entity": {
      "individual": {
        "firstName": "Jane",
        "lastName": "Doe"
          }
        ]
      }
    }
  }
]

Standard synchronous response

The following example shows a standard synchronous response returned immediately after a successful personal account validation request.

Example: POST v2/validations/accounts request
Json
[
  {
    "requestId": "123e4567-e89b-12d3-a456-426614174000",
    "responses": [
      {
        "codes": {
          "verification": {
            "code": 8904,
            "message": "Initiated"
          },
          "authentication": {
            "code": 8904,
            "message": "Initiated"
          }
        },
        "provider": "JPMC_LIINK_CONFIRM",
        "details": {
          "providerResponse": {
            "refId": "8bbe2b5c-577b-461a-90dd-2df96e978edb"
          }
        }
      }
    ]
  }
]

Standard asynchronous response

The following example shows a standard asynchronous response that is returned when the validation request is processed in the background and the results are delivered later. 

Example asynchronous callback response
Json
[
  {
    "requestId": "123e4567-e89b-12d3-a456-426614174000",
    "responses": [
       {
            "codes": {
                "verification": {
                    "code": 1004,
                    "message": "Open Valid"
                },
                "authentication": {
                    "code": 5004,
                    "message": "Ownership Match"
                }
            },
            "provider": "JPMC_LIINK_CONFIRM",
            "details": {
                "providerResponse": {
                    "acctStatus": "AC00",
                    "NmMatch": "FULL_MATCH"
                }
            }
        }
    ]
  }

Validate a business account via provider Kinexys Liink

To validate a business account via provider Kinexys liink, the account holder name and account identifiers are required. Refer to Account Validation country list for country-specific requirements. 

Sample request

Call a POST request to the v2/validations/accounts endpoint.

Sample Request: Validate a business account via provider Kinexys Link
Json
[
  {
    "requestId": "123e4567-e89b-12d3-a456-426614174000",
    “profileName”: “globalaccountvalidation”,
    "account": {
      "accountNumber": "DE76500105178569136743",
      "financialInstitutionId": {
        "clearingSystemId": {
          "id": "DE76500105178569136743",
          "idType": "IBAN"
        },
        "postalAddress": {
          "country": "DE"
        }
      },
      "accountNumberType": "IBAN"
    },
    "entity": {
      "organization": {
        "name": "SUREPAY_IBAN"
          }
        ]
      }
    }
  }
]

Standard synchronous response

The following example shows a standard synchronous response returned immediately after a successful business account validation request.

Example asynchronous callback response
Json
[
  {
    "requestId": "123e4567-e89b-12d3-a456-426614174000",
    "responses": [
       {
            "codes": {
                "verification": {
                    "code": 1004,
                    "message": "Open Valid"
                },
                "authentication": {
                    "code": 5004,
                    "message": "Ownership Match"
                }
            },
            "provider": "JPMC_LIINK_CONFIRM",
            "details": {
                "providerResponse": {
                    "acctStatus": "AC00",
                    "NmMatch": "FULL_MATCH"
                }
            }
        }
    ]
  }

Standard asynchronous response

The following example shows a standard asynchronous response that is returned when the business account validation is processed in the background and the results are delivered later. 

Json
[
  {
    "requestId": "123e4567-e89b-12d3-a456-426614174000",
    "responses": [
       {
            "codes": {
                "verification": {
                    "code": 1004,
                    "message": "Open Valid"
                },
                "authentication": {
                    "code": 5004,
                    "message": "Ownership Match"
                }
            },
            "provider": "JPMC_LIINK_CONFIRM",
            "details": {
                "providerResponse": {
                    "acctStatus": "AC00",
                    "NmMatch": "FULL_MATCH"
                }
            }
        }
    ]
  }

Next steps