Quickstarts
LinkMoney API
Aggregator Guides
FinSight API
Resources
Privacy
Developer Account
Microdeposit Verification
While Link Money’s automatic verification works for most use-cases, some users will prefer to manually verify their bank accounts. This guide describes the steps for initiating and verifying a user’s account manually through Microdeposits. For more information on automatic verification, see
Getting Started
Link Money uses an additional portal called flow
to allow developers to initiate and verify microdeposits for users who wish to manually verify their accounts. This guide assumes that you have already followed the Link Money Quickstart Guide.
Following this guide, you will:
- Initiate a microdeposits verification request.
- Grab and save the microdeposit ID from the Link Money callback data.
- Verify a microdeposits request and pull verification data.
What Are Microdeposits?
Microdeposits are a series of three small transactions (2 deposits and one withdrawal) of unspecified amounts that are sent to an account via a user-entered routing and account number pair. To initiate a verification, users must provide the routing and account number of the account they want verified. To complete the verification, the user must enter the correct amounts for each microdeposit that was made to their account. After they have completed these steps, verification data will be available for their account.
1. Open the Gateway with the Microdeposit Flow
To start a micro-deposit verification, you may open the Link Money Gateway as you ordinarily do. You must provide one additional parameter, flow
, which must be set to initiateMicroDeposits
. This will force the Link Money Gateway to automatically open the Microdeposit verification flow.
let linkMoneyGatewayUri = `https://linkmoney-gateway-dev.fingoal.com/api/authenticate?token={YOUR_TOKEN}&flow=initiateMicroDeposits`;
<iframe src=linkMoneyGatewayUri></iframe>
As the Initiate Microdeposit screen appears, you will be required to enter the Routing Number and Account Number.
Once the data is entered, the next screen appears showing that verification has started. As soon as the user hits the close button, the Link Money Gateway will emit the microDepositId, completedFlow and events as a response.
2. Capture the Callback Data from the Gateway.
When the user is finished entering their account and routing number into the gateway, Link Money will emit a microDepositId
which you must save. This numeric ID will be required to open the gateway during the verification step. We recommend preserving the microDepositId
in your datastore, as several days can elapse between the initialization and verification steps in the microdeposit flow.
window.addEventListener('message', function(event) {
if (event.origin !== 'https://linkmoney-gateway-webapp-dev.herokuapp.com') {
return;
}
const messageAsString = String(event.data).replace("event ", "").trim();
const messageAsJson = JSON.parse(messageAsString);
const { events, microDepositId, completedFlow } = messageAsJson;
// preserve the microDepositId
}, false);
3. Allow the User to Commence the Verification Flow
Link Money is not notified when the user’s account has received microdeposits. We recommend re-engaging the user after 3 - 5 days, when the deposits will have certainly dropped into the user’s account. By re-opening the Link Money Gateway with the flow
parameter set to verifyMicroDeposits
and the microDepositId
from step 2, the verification step can be commenced.
let linkMoneyGatewayUri = `https://linkmoney-gateway-dev.fingoal.com/api/authenticate?token={YOUR_TOKEN}&flow=verifyMicroDepositsµDepositId={YOUR_USERS_MICRODEPOSIT_ID}`;
<iframe src=linkMoneyGatewayUri></iframe>
At this point, if the verification is successful, you can pull the verified account data from Link Money API’s Verification Endpoints.
4. Retrieve the Verified Account
Once the steps above are completed and the user has successfully confirmed their account, you can fetch detailed account data from the Link Money API, including the account number and the routing number of the verified user.
To get detailed verified account data, pass in a providerAccountId
query parameter, which corresponds the item_id
returned in the events
object from the previous step. You will also have to authenticate this request, but you can use the same token you created when opening the linking portal.
Request
const axios = require("axios");
const baseUrl = "https://linkmoney-dev.fingoal.com/v1/yodlee/verification";
const response = await axios.get(`${baseUrl}?providerAccountId=${YOUR_ITEM_ID}`, {
headers: {
Authorization: `Bearer ${YOUR_TOKEN}`
}
);
const { verification } = response;
// process the verification from here.
Responses
Status Code: 200
{
"verification": [
{
"accountId": 22469592,
"verificationDate": "2023-06-16T17:03:41Z",
"verificationType": "CHALLENGE_DEPOSIT",
"account": {
"accountNumber": "<accountNumber>",
"accountType": "<accountType>",
"bankTransferCode": {
"id": "<bankTransferCode/id>",
"type": "ROUTING_NUMBER"
},
"userClassification": "<userClassification>"
},
"verificationStatus": "INITIATED | DEPOSITED | SUCCESS | FAILED",
"providerAccountId": 14283240,
"verificationId": 11309188
}
]
}
Status Code: 400
{
"errorMessage": "string",
"errorCode": "string",
"referenceCode": "string"
}
Sandbox Accounts for Microdeposits Testing
Link Money offers the following account / routing number pairs for testing your application’s microdeposits flow. When the Verify Microdeposits screen appears, the correct deposit amounts will always be 0.05 and 0.15. Keep in mind that it can take at least 5 minutes for the verification step to be ready in the Link Money Gateway.
Account Number | Routing Number |
16441 | 999988181 |
16442 | 999761191 |
18769 | 999999992 |
16445 | 999999921 |
16446 | not applicable |
16447 | not applicable |
16477 | 999678831 |
16486 | 999991181 |
16487 | 999998281 |