Verify a U.S. bank account and ownership
In this tutorial, you will learn how to verify a United States bank account status and authenticate the account owner’s name. By the end of this tutorial, you will know how to:
- Verify if an account exists and is active.
- Verify if an account is likely to result in a debit return.
- Validate the account status along with the beneficiary.
- Determine the required and optional field parameters.
Before you begin
To retrieve the status of an Validation Services request, you will need the following:
- A 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.
Verify and authenticate a bank account
Validating account status evaluates a bank account and determines if the account number is in good standing. To do this call a POST
request to the v2/validations/accounts
endpoint. The following example shows the required fields for an Account verification request.
[
{
"requestId": "123e4567-e89b-12d3-a456-426614174000",
"account": {
"accountNumber": "12345",
"financialInstitutionId": {
"clearingSystemId": {
"id": "122199983",
"idType": "ABA"
}
}
},
"entity": {
"individual": {
"firstName": "Jane",
"lastName": "Abbot",
"fullName": "Jane Abbot"
}
}
}
]
The following example shows a deterministic account validation response for a single provider:
[
{
"requestId": "123e4567-e89b-12d3-a456-426614174000",
"responses": [
{
"codes": {
"verification": {
"code": 1002,
"message": "Open Valid"
},
"authentication": {
"code": 5002,
"message": "Ownership Match"
}
},
"provider": "JPMC_ACH",
"details": {
"paymentCheckContributingStatus": "Contributed",
"accountNumber": "XXXX5",
"financialInstitutionId": {
"clearingSystemId": {
"id": "122199983",
"idType": "ABA"
}
}
}
}
]
}
]
The following example shows a deterministic account validation response for multiple providers:
[
{
"requestId": "123e4567-e89b-12d3-a456-426614174000",
"responses": [
{
"codes": {
"verification": {
"code": 1001,
"message": "Open Valid"
}
},
"provider": "JPMC_ACH",
"details": {
"accountNumber": "XXXX5",
"financialInstitutionId": {
"clearingSystemId": {
"id": "122199983",
"idType": "ABA"
}
}
}
},
{
"codes": {
"authentication": {
"code": 6002,
"message": "Ownership No Match"
}
},
"provider": "EWS",
"details": {
"paymentCheckContributingStatus": "Contributed",
"accountNumber": "XXXX5",
"financialInstitutionId": {
"clearingSystemId": {
"id": "122199983",
"idType": "ABA"
}
}
}
}
]
}
]
Probabilistic account validation
The following example shows a probabilistic account validation request:
[
{
"requestId": "123e4567-e89b-12d3-a456-426614174000",
"profileName": "brie",
"account": {
"accountNumber": "61231234337",
"financialInstitutionId": {
"clearingSystemId": {
"id": "021000021",
"idType": "ABA"
}
}
},
"entity": {
"individual": {
"firstName": "George",
"lastName": "White"
}
},
"transactions": []
}
]
The following example shows a probabilistic account validation response:
[
{
"requestId": "123e4567-e89b-12d3-a456-426614174000",
"responses": [
{
"codes": {
"verification": {
"code": 1001,
"message": "Open Valid"
},
"authentication": {
"code": 5001,
"message": "Ownership Match"
}
},
"provider": "JPMC_ACH",
"details": {
"accountNumber": "XXXXXXXX337",
"financialInstitutionId": {
"clearingSystemId": {
"id": "021000021",
"idType": "ABA"
}
}
}
}
]
}
]
Successful response messages
An HTTP status of 200 indicates a successful response. The following fields indicate the result:
responseStatus
responseCode
responseMessage
Authenticate an individual or business's bank account
To validate an individual’s bank account, use the following fields:
individual.firstname
individual.lastname
To validate a business’s bank account, use the following field:
organization.name
Related
- For more information about parameters, see Account Validation parameters.
- For more information about the status responses and error codes supported by the Validation Services API, see Validation Services error response codes.
Next steps
- Learn how to perform micro-deposits.
- Learn how to verify a global account.
- Learn how to request Account Confidence Score