Perform micro-deposits
In this tutorial, you will learn how to perform micro-deposits. By the end of this tutorial, you will know how to:
- Validate the account status based on actual transactions.
- Validate the account status and confirm owner’s access based on actual transactions.
- Understand the test types for micro-deposits.
- Understand required and optional parameters for each micro-deposit test type.
Before you begin
To retrieve a validation services request status, 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.
Callback
To enable receiving micro-deposit responses, you need to register your callback URL.
Validate account status using micro-deposits
This service uses low-dollar-value transactions to validate the accounts requested by the client. There are two types of tests for micro-deposits:
Penny test flow
Verify account status using the penny test.
- The client initiates a validation request with Account Validation Services (AVS).
- AVS waterfalls the request through multiple data sources for a validation response.
- If the initial data sources do not validate the request, AVS forwards the request to the micro-deposit services for further verification.
- Micro-deposit services initiate a few dollar-value transactions with the requested bank account. The client is informed with a real-time response when the request moves to micro-deposit services for further verification.
- The client receives a callback response within 5 days, indicating the system is “Ready for Validation”.
Challenge test flow
A challenge test is used to validate the account status (verification) and confirm the owner’s access to the account.
- The client initiates a validation request with AVS.
- AVS waterfalls the request through multiple data sources for a validation response.
- If the initial data sources do not validate the request, AVS forwards the request to micro-deposit services for further verification.
- Micro-deposit services initiate a few dollar-value transactions with the requested bank account. The client is informed with a real-time response when the request moves to micro-deposit services for further verification.
- The client receives a callback response within 5 days, indicating the system is “Ready for Validation”.
- The client resends the initial validation request and two deposit amounts to AVS.
- The client receives a real-time response with the verification and access confirmation.
Example request and response for a penny test
The Account status validation process evaluates a bank account to determine 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": "223e4567-e89b-12d3-a456-426614174000",
"profileName": "verificationauth",
"account": {
"accountNumber": "12345",
"financialInstitutionId": {
"clearingSystemId": {
"id": "122199983",
"idType": "ABA"
}
}
},
"entity": {
"individual": {
"firstName": "Jane",
"lastName": "Abbot",
"fullName": "Jane Abbot"
}
},
"transactions": []
}
]
You will receive a successful response containing the acknowledgement for the penny test.
[
{
"requestId": "223e4567-e89b-12d3-a456-426614174000",
"responses": [
{
"codes": {
"verificationMicroDeposit": {
"code": 8906,
"message": "Initiated"
}
},
"provider": "MICRODEPOSITS"
}
]
}
]
You will receive a successful response containing the callback for the penny test validation.
[
{
"requestId": "10082023-TEST-MD-0001",
"profileName": "verificationauth",
"responses": [
{
"codes": {
"verificationMicroDeposit": {
"code": 1006,
"message":"Open Valid"
}
},
"provider": "MICRODEPOSITS",
"details" : {
"providerResponse" : {
"retry-count" : 0,
"md-notification" : "Validation Complete"
}
}
}
]
}
]
Example request and response for challenge test
Account status validation uses a challenge test to validate the account status by verifying the owner’s access to the account. 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": "223e4567-e89b-12d3-a456-426614174000",
"profileName": "verificationauth",
"account": {
"accountNumber": "12345",
"financialInstitutionId": {
"clearingSystemId": {
"id": "122199983",
"idType": "ABA"
}
}
},
"entity": {
"individual": {
"firstName": "Jane",
"lastName": "Abbot",
"fullName": "Jane Abbot"
}
},
"transactions": [
{
"context": "DEPOSIT",
"amount": {
"amount": 0.03,
"currency": "USD"
}
},
{
"context": "DEPOSIT",
"amount": {
"amount": 0.14,
"currency": "USD"
}
}
]
}
]
You will receive a successful response containing the challenge test acknowledgement.
[
{
"requestId": "223e4567-e89b-12d3-a456-426614174000",
"profileName": "verificationauth",
"responses": [
{
"codes": {
"verificationMicroDeposit": {
"code": 1006,
"message": "Open Valid"
},
"authenticationMicroDeposit": {
"code": 8006,
"message": "Access Confirmed"
}
},
"provider": "MICRODEPOSITS"
}
]
}
]
You will receive a "Ready for Validation” response for your challenge test.
[
{
"requestId": "10082023-TEST-MD-0001",
"profileName": "verificationauth",
"responses": [
{
"codes": {
"verificationMicroDeposit": {
"code": 8906,
"message":"Initiated"
}
},
"provider": "MICRODEPOSITS",
"details" : {
"providerResponse" : {
"md-notification" : "Ready for validation”,
"retry-count" : 0
}
}
}
]
}
]
Example request and response for challenge test
The Account status validation process evaluates a bank account to determine 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",
"profileName": "verificationauth",
"account": {
"accountNumber": "123456789",
"financialInstitutionId": {
"clearingSystemId": {
"id": "223344556",
"idType": "ABA"
}
}
},
"entity": {
"individual": {
"firstName": "George"
"lastName": "White"
}
}
"transactions": [
{
"context":"DEPOSIT",
"amount": {
"amount": 0.01,
"currency": "USD"
}
},
{
"context":"DEPOSIT",
"amount": {
"amount": 0.18,
"currency": "USD"
}
}
]
}
]
You will receive a validation response for your challenge test.
[
{
"requestId": "10082023-TEST-MD-0001",
"responses": [
{
"codes": {
"verificationMicroDeposit": {
"code": 1006,
"message":"Open Valid"
},
"authenticationMicroDeposit": {
"code": 8006,
"message":"Access Confirmed"
}
},
"provider":"MICRODEPOSITS"
}
]
}
]
Micro-deposit service details
To incorporate a challenge request into the micro-deposit request, include required fields, plus the following fields.
transactions.context
transactions.amount
transactions.currency
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 request Account Confidence Score.