Integrating Plaid

Many FinTechs already leverage Plaid to aggregate their users' bank transactions. Hurdlr lets you build directly on top of your Plaid integration, using your API keys.

1. How it works

Through Hurdlr's Plaid integration, your user's transactions are pulled into Hurdlr as soon as Plaid makes them available. All of those transactions are then run through Hurdlr's proprietary algorithms, which leverage the user's business type, accountant best practices, and the behavior of similar businesses within the Hurdlr app's 700k+ users.

That data can then be instantly leveraged throughout Hurdlr's APIs, which include expense categorization, tax categorization, financial statements, tax estimates, tax reporting, tax filing, and many other features.

You can also quickly and easily embed Hurdlr's white-labelled UI into your product, which automatically leverages the data from your Plaid integration.

2. Creating a Plaid Team

If you haven't already done so, you should create a Plaid account, and then create a Team for your app. Additionally, in your Plaid Dashboard, in the Link Customization Settings, be sure to enable the Account Select functionality.

3. Securely sharing your Plaid keys

In your Plaid Dashboard, to view your API keys, click on Team Settings -> Keys. Contact us directly at [email protected] for instructions on how to securely share your Plaid keys.

Our API team will confirm once your keys are live in the Hurdlr API, so you can quickly move onto the next step.

4. Plaid Link (new implementation)

If your product does not yet implement Plaid's Link component, which allows your users to link their bank accounts, the Hurdlr SDK "new implementation" allows you to do so quickly and easily. The steps outlined below will not only render Plaid's Link UX but also take care of forwarding webhooks to the Hurdlr API so that Hurdlr will automatically ingest/categorize all transactions without any additional labor required from your team:

a. Initialize the Hurdlr SDK

b. Add the following line of JS to be ran once after Hurdlr.init({...}):

Hurdlr.renderPlaidLink(successCallback, exitCallback);

c. When the user successfully links a bank, the successCallback will be invoked, and no additional actions need to be taken. For informative/logging purposes, the successCallback will contain a single integration object representing the new Plaid Item that was linked.

d. When the user does not successfully link a bank, the exitCallback will be invoked. Hurdlr takes care of the error handling, however for informative/logging purposes, the exitCallback will contain an error object representing the Plaid Error. This argument will be null if the user exited Plaid Link on their own without error.

📘

Maximize activation

As a best practice, to ensure the highest activation rate for your users, Hurdlr recommends invoking the above UX during your product's onboarding flow. Linking a bank account is very highly correlated with long-term retention rates.

5. Plaid Link (existing implementation)

Alternatively, if your product already incorporates Plaid Link, then you can easily connect your Plaid Items to the Hurdlr API via the following "existing implementation" steps:

a. In your existing Plaid Link Flow implementation, you will ultimately receive an access_token. To associate that access_token with your user's Hurdlr account, simply POST that access token to the /plaidAccessToken endpoint:

curl \
  --request POST \
  --url https://sandbox.hurdlr.com/rest/v5/banks/plaidAccessToken \
  --header 'Authorization: Bearer ${access_token}' \
  --header 'Content-Type: application/json' \
  --data '{
    "plaidAccessToken": "${plaid_access_token}"
  }'

The above POST call can be repeated for as many institutions as needed by your user.

b. When your user links their bank accounts via your Plaid Link flow, you will receive Plaid webhooks on your own server. Once you receive those webhooks on your server, to ensure the data available to you is automatically kept up to date, you should forward those webhooks to the Hurdlr API.

Item webhooks and Transaction webhooks from Plaid's "sandbox" environment should be forwarded directly from your server to https://webhook.sandbox.hurdlr.com/plaid. For the "production" environment, they should be forwarded to https://webhook.prod.hurdlr.com/plaid.

Contact us directly at [email protected] for help in verifying that the webhooks are forwarding correctly.

6. Next Steps

After your user has linked their accounts in the Embeddable User Interface or after you POST the user's Plaid access_token to the Hurdlr API, Hurdlr will automatically begin ingesting transactions from the user's linked accounts. All of Hurdlr's Expense Tracking features will immediately become available to your user, both in the Embeddable User Interface and via API.

Whether you are building your own UX from scratch or have some existing functionality that you are looking to enhance, the Hurdlr API team is here to help. Don't hesitate to email us at [email protected], and we would be glad to help you create and complete the best next steps for your product and vision.