Create a funding source for an account #

This section details how to add a bank account and a Virtual Account Number, or VAN, to a Dwolla Master Account.

To add a bank account as a Funding Source, you provide the account number and a routing number. A Virtual Account Number, or VAN, is a way to add a funding source by providing one number that acts as both account number and routing number.

VANs can be utilized outside of the Dwolla Platform to route ACH transactions both to and from a Dwolla Balance. Because a VAN behaves as a route to a Dwolla Balance, the only customers eligible to create a VAN funding source are the following:

Typically, a bank account that you add to a Dwolla Master Balance will have a status of “unverified”. In order to transfer money to and from your bank or credit union account to and from Dwolla Master Balance, you will need to verify ownership of the account. However, when you create a VAN, it will have a status of verified by default.

Bank #

HTTP request - bank funding source #

POST https://api.dwolla.com/funding-sources

Request parameters - bank funding source #

ParameterRequiredTypeDescription
_linksconditionalobjectA _links JSON object containing an exchange link relation. See example bash request and response below.
accountNumberyesstringThe bank account number.
routingNumberyesstringThe bank account's routing number.
bankAccountTypeyesstringType of bank account: checking or savings.
nameyesstringArbitrary nickname for the funding source.
channelsnoarrayAn array containing a list of processing channels. ACH is the default processing channel for bank transfers. Acceptable value for channels is: "wire". e.g. “channels”: [ “wire” ]. A funding source (Bank Account) added using the wire channel only supports a funds transfer going to the bank account from a balance. Note: channels is a premium feature that must be enabled on your account and is only available to select Dwolla customers.

HTTP status and error codes - bank funding source #

HTTP StatusCodeMessage
400ValidationErrorDuplicate funding source or validation error.
400InactiveExchangeThe Exchange was removed or disabled.
400InvalidExchangeTokenThe exchange token is not valid to perform this operation. Either the token is expired, invalid, or the products permissions to the token are invalid or expired.
403ForbiddenNot authorized to create funding source.

Request and response - bank funding source #

JavaScript
// Using dwolla-v2 - https://github.com/Dwolla/dwolla-v2-node
var requestBody = {
  routingNumber: "222222226",
  accountNumber: "123456789",
  bankAccountType: "checking",
  name: "My Bank",
};

dwolla
  .post("funding-sources", requestBody)
  .then((res) => res.headers.get("location")); // => 'https://api-sandbox.dwolla.com/funding-sources/04173e17-6398-4d36-a167-9d98c4b1f1c3'

Request and response - using an exchange resource #

JavaScript
// Using dwolla-v2 - https://github.com/Dwolla/dwolla-v2-node
var requestBody = {
  _links: {
    exchange: {
      href: "https://api-sandbox.dwolla.com/exchanges/6bc9109a-04fd-49b6-ace6-ca06fd282d65",
    },
  },
  bankAccountType: "checking",
  name: "Jane Doe’s Checking",
};

dwolla
  .post("funding-sources", requestBody)
  .then((res) => res.headers.get("location")); // => 'https://api-sandbox.dwolla.com/funding-sources/375c6781-2a17-476c-84f7-db7d2f6ffb31'

Virtual Account Number #

HTTP request - VAN funding source #

POST https://api.dwolla.com/funding-sources

Request parameters - VAN funding source #

ParameterRequiredTypeDescription
nameyesstringArbitrary nickname for the funding source.
typeyesstringDenotes that this is a virtual funding source being created (VAN). Value must be virtual.
bankAccountTypeyesstringValue must be checking. VANs with a bankAccountType of savings are not currently available.

HTTP status and error codes - VAN funding source #

HTTP StatusMessage
403Virtual account numbers are not enabled for this account.

Request and response - VAN funding source #

JavaScript
// Using dwolla-v2 - https://github.com/Dwolla/dwolla-v2-node
var requestBody = {
  name: "My First VAN",
  type: "virtual",
  bankAccountType: "checking",
};

dwolla
  .post("funding-sources", requestBody)
  .then((res) => res.headers.get("location")); // => 'https://api-sandbox.dwolla.com/funding-sources/04173e17-6398-4d36-a167-9d98c4b1f1c3'

Test in the Sandbox for free today.

Use sandbox environment to test API requests.

Get API Keys
2022 All Rights Reserved
Financial institutions play an important role in our network.

All funds transfers made using the Dwolla Platform are performed by a financial institution partner, and any funds held in a Dwolla Balance are held by a financial institution partner. Learn more about our financial institution partners.