Micro Deposits

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 Instant Account Verification (IAV)Instant Account Verification (IAV). For getting started with the Link Money Gateway, see the Link Money Quickstart.

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:

  1. Initiate a microdeposits verification request.
  2. Grab and save the microdeposit ID from the Link Money callback data.
  3. 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.

image

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.

image

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&microDepositId={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.

image
image

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