Getting Started

You'll first want to familiarize yourself with Plaid Link, a drop-in
integration for the Plaid API that handles input validation, error
handling, and multi-factor authentication.

Your customers will use Link to authenticate with their financial institution
and select the depository account they wish to use for ACH transactions. From
there, you'll receive a Plaid access_token, allowing you to leverage real-time
balance checks and transaction data, and a Dwolla processor_token, which
allows you to move money via Dwolla's ACH API without ever handling an account
or routing number.

Instructions

Step 1: Set up your Plaid and Dwolla accounts

You'll need accounts at both Plaid and Dwolla in order to use the Plaid Link + Dwolla integration. You'll also need to enable your Plaid account for the Dwolla integration.

Step 2: Get your public_key

You have three different API keys

a non-sensitive, public identifier that is used to initialize Plaid Link

secretclient_id

private identifiers that are required for accessing any financial data

these should never be shared in client-side code

Your public_key is a less privileged version of your client_id and
secret. It simply associates accounts you create using Plaid Link with
your client_id. All Plaid API requests must be made using your private client_id and secret.

Step 3: Integrate with Plaid Link

Integrating with Link is easy. All it takes is a few lines of client-side
JavaScript and a small server-side handler to exchange the Link public_token for a Plaid access_token and a Dwolla processor token.

You can either trigger the "Institution Select" view, a general purpose view that lists all Plaid-supported institutions, or trigger a particular
institution's login form. See below:

The institutions property will be populated with all supported institutions
for a given product. That is, the list of institutions will be different for
auth and transactions.

Step 4: Write server-side handler

The Link module handles the entire onboarding flow securely and quickly but does
not actually retrieve account data for a user. Instead, the Link module returns
a public_token and an account_id (a property on the metadata object) via
the onSuccess callback.

This public_token must be exchanged for a Plaid access_token using the
/item/public_token/exchange API endpoint. Once you have the access_token
for the Item, you'll create a Dwolla processor_token. You'll send this
token to Dwolla and they will use it to securely retrieve account and
routing numbers from Plaid.