Dwolla Developers Logo
API DocsOpen in new tabChangelog
Get API Keys
API DocsOpen in new tabChangelog
Get API Keys

Bank Funding Source #

There are many different ways for a Customer to add a bank account on Dwolla’s platform. Choosing the approach that is ideal for your application depends on a number of factors, such as speed and/or user experience. As you think about the different method(s) to attach a bank account, you will need to consider which one best suits the use case of your business’ application.

Bank Addition

Adding a bank account to a Customer account. If a business wants to allow for adding but not require verifying the bank account, the funding source will remain in an unverified status and will only be allowed to receive funds.

Bank Verification

Verifying a bank account. This step is required before a Customer can send funds using their Customer account. This can be accomplished either (1) at the time the bank account is added, using Instant Account Verification or a Third-party Provider, or (2) after attaching a bank by verifying it with microdeposits.

Bank Account Types #

Dwolla supports traditional checking and savings accounts to be added and verified by default. Other supported account types include loan and general-ledger, the use of which require review and approval by Dwolla.

The table below details a high level overview of the different methods supported by Dwolla for adding a bank funding source.

Bank Addition MethodAutomatic Verified Status (i.e. Eligible to Send Funds)Information RequiredU.S Bank CoverageSupported Bank Account TypesOther featuresDwolla APINoBank Account Number,
Routing number100%Checking,
General LedgerOptional bank verification with MicrodepositsDwolla.jsNoBank Account Number,
Routing number100%Checking,
General LedgerTokenized data,
Optional bank verification with MicrodepositsDwolla.js + IAVYesOnline banking credentials~85%Checking,
SavingsFlexible CSS stylingDwolla + Plaid integrationYesOnline banking credentials~85%Checking,
SavingsTokenized integrationOther Approved Third-party ProviderYes, if part of third party offeringVariableVariableVariableVariable

As you decide on the various methods for adding a funding-source, a good thing to keep in mind is that a transfer between two parties requires the sending party to have a verified bank account. Bank account verification prior to sending funds is required by the ACH network.

Bank Addition + Verification methods #

Add a Bank via the API and verify using Microdeposits #

The use case: I want to add a U.S. bank account by supplying an account and routing number. The bank will be unverified until microdeposits are initiated and verified.

This is commonly implemented for receive-only “payout” use cases where users are receiving funds, but not sending.

Tell me more Using the Dwolla API you can add an unverified funding source to a Customer as well as your Master Account. Additionally, you can manually add an unverified bank funding source to your Master Dwolla Account or your end users directly from the Dwolla Dashboard.

An example form UI component to present to your users.

Ready to build? Adding a bank with the Dwolla API is easy. Take a look at our documentation to learn more about this process. After adding a bank via the API, you can leave it unverified if you will only be sending funds to it. If you or your user will be sending funds from the bank account, you can verify it using microdeposits.

Check our step-by-step guide on verifying a bank using microdeposits.

Dwolla.js #

Dwolla.js is a JavaScript library with the primary function of securely transmitting sensitive data (bank account number and routing number) from your application’s front-end to Dwolla without it passing through your server. When you attach a bank account to a Customer, use dwolla.js and let Dwolla help reduce your retention of sensitive data. Additionally, Dwolla.js includes routing number validation built into the library to help prevent invalid routing numbers from being entered. Add a Bank with dwolla.js

The use case: I want my end users to attach a bank using their account and routing number with the added security of a tokenized implementation. I do not need the bank to be in a verified status, but may choose to utilize the microdeposits verification method, if needed.

This is commonly implemented for businesses that are paying out to this bank account.

Tell me more Much like adding a bank funding source via the Dwolla API, you will need to build your own form to gather end user details such as the Customer’s account and routing numbers. You will also generate a Dwolla funding-sources-token to pass this information back to Dwolla in a secure manner. Additionally, dwolla.js has built-in validation that will trigger an error if any of the required fields are invalid.

Ready to build? Find out how to generate a Dwolla funding-sources-token and utilize the dwolla.js function to add a bank account.

Check our step-by-step guide on adding a bank funding-source using dwolla.js.

Add and Verify a Bank with Dwolla.js + Instant Account Verification (IAV) #

The use case: I want my user to add and instantly verify a bank using their online banking credentials.

Tell me more Dwolla.js + IAV allows you to generate an iframe that collects your Customers’ online banking credentials for bank account verification. This method provides a list of CSS classes available for styling certain elements of the IAV flow. These elements can be easily customized to match the look and feel of your application and are included within the options JavaScript object in the dwolla.iav.start function. You can specify one or multiple stylesheets within the stylesheets attribute. By default, the elements within your specified container are responsive to any change in screen size.

Instant Account Verification allows your Customer to add and verify their bank using their online bank credentials

Ready to build? Find out how to generate a Dwolla iav-token and initiate IAV for your Customer.

Check our step-by-step guide on adding and verifying a bank funding-source using dwolla.js + IAV

Dwolla + Plaid Integration #

The use case: I want my user to add a bank via Plaid using their online banking credentials. I want to extend my application’s relationship with Plaid that allows me to check a user’s bank account balance and retrieve other verifiable information, such as a bank’s account and routing number.

Tell me more With the Dwolla + Plaid partnership, you can utilize a token generated via the Plaid API to create a verified bank funding-source in Dwolla. This allows you to leverage the Plaid user interface for a seamless Customer experience. Plaid will require you to go through their onboarding process prior to going live in production with them. We recommend if you’re already integrating with Dwolla, to consider reaching out to Plaid in parallel for direction on their go-live process. When utilizing this integration, please note that only the Plaid Sandbox and Production environments are supported by Dwolla at this time. The Plaid Development environment is not supported by Dwolla.

Illustrating the Plaid bank auth flow

Ready to build? Check out our guide for a walkthrough and to get started with this integration.

Check our step-by-step guide on adding and verifying a bank funding-source using the Dwolla + Plaid integration.

Other Considerations #

While these methods of bank addition and bank verification are fine to use separately, know that you are not limited to a single option. For instance, when you are using Plaid to verify Customers’ bank accounts, there may be financial institutions not supported by Plaid. Implementing a fallback method is always an option (e.g. microdeposits). You are also not limited to these four methods. If you want to utilize a different third-party provider to verify a bank account before adding it to your Dwolla Customer, we can support providers who meet the requirements and are approved by the Dwolla team.

Have a different preferred bank authentication provider you want to use? Reach out to our team to learn more on getting approved.

Wrap-up #

Much like choosing the correct Customer type, considering and choosing the bank addition methods in your application will have a large impact in the functionality of your integration with Dwolla. From the functionality of verifying a bank account, to the preference in user experience, each method provides its own offerings to ensure your application can provide the desired level of service to your end-users.

Test in the Sandbox for free today.

Use sandbox environment to test API requests.

Get API Keys
2021 All Rights Reserved


  • About
  • Blog
  • Pricing
  • Contact Sales
  • Terms of Service
  • Privacy Policy
Financial institutions play an important role in our network.

Dwolla, Inc. is the operator of a software platform that communicates user instructions for funds transfers to our financial institution partners.

Dwolla is an agent of Veridian Credit Union. All ACH and Wire transfers are performed by Veridian Credit Union. Your Dwolla Balance, if any, is held in one or more pooled holding accounts held by Veridian Credit Union. These funds may not be eligible for share insurance by the National Credit Union Share Insurance Fund.

Sponsorship and Settlement of Push-to-Debit payment services provided by MetaBank®, N.A.
Push-to-Debit payments are typically available within 30 minutes.

Real-Time Payments are performed by Cross River Bank, which holds funds on behalf of the Receiver of such transactions in one or more pooled custodial accounts. These funds are not subject to FDIC pass-through deposit insurance.