Plaid is a financial technology company based in San Francisco. The company builds a technology platform, which enables applications to connect with users’ bank accounts. Plaid focuses on enabling consumers and businesses to interact with their bank accounts, check balances, and make payments through financial technology applications.
Dwolla is a United States-only e-commerce company that provides an online payment system and mobile payments network.
For that we are Using Plaid + Dwolla to authenticate the user, getting account details, getting transaction details for cross-checking the details provided by the user and finally transferring the money.
How Plaid works??


By selecting a bank and submitting the bank credentials, we will get ‘public_token’ which is a short-lived token that can be exchanged for an ‘access_token’.
response = client.Item.public_token.exchange(public_token)
The above code is used for the exchange of ‘access_token’.
‘Access_token’ is a unique token to access the data of the user like Transactions, Loans, Available balance and other things.

The above code is an example of retrieving data from the products of ‘Plaid’.
Along with that, Plaid has a partnership with various ‘Payment Gateways’ like Stripe, Dwolla, Modern Treasury and some others. So we can directly use the ‘Bank token’ provided by Plaid to access the features and products of these Payment gateways.
For more information, Check out: https://plaid.com/docs/
How Dwolla works??
Using the Bank Token provided by Plaid, we need to create a user account under the Dwolla’s Main account where we can charge the account, transfer money to the bank accounts.


The response of the above code will be like this:
{
"processor_token": "processor-sandbox-0asd1-a92nc",
"request_id": "[Unique request ID]"
}
The processor token can be used in place of account number to generate funding source in ‘Dwolla’.
After creating a user in ‘Dwolla’, we can pass the token provided by ‘Plaid’ to generate funding source.
