Ask AI or search...
Get API Keys

Create a funding source for an account #

This section details how to add a bank account to a Dwolla Master Account.

To add a bank account as a Funding Source, you provide the account number and a routing number.

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.

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 #

Raw
POST https://api-sandbox.dwolla.com/funding-sources
Content-Type: application/vnd.dwolla.v1.hal+json
Accept: application/vnd.dwolla.v1.hal+json
Authorization: Bearer pBA9fVDBEyYZCEsLf/wKehyh1RTpzjUj5KzIRfDi0wKTii7DqY
{
    "routingNumber": "222222226",
    "accountNumber": "123456789",
    "bankAccountType": "checking",
    "name": "My Bank"
}

...

HTTP/1.1 201 Created
Location: https://api-sandbox.dwolla.com/funding-sources/04173e17-6398-4d36-a167-9d98c4b1f1c3

Request and response - using an exchange resource #

Raw
POST https://api-sandbox.dwolla.com/funding-sources
Content-Type: application/vnd.dwolla.v1.hal+json
Accept: application/vnd.dwolla.v1.hal+json
Authorization: Bearer pBA9fVDBEyYZCEsLf/wKehyh1RTpzjUj5KzIRfDi0wKTii7DqY
{
  "_links": {
    "exchange": {
      "href": "https://api-sandbox.dwolla.com/exchanges/6bc9109a-04fd-49b6-ace6-ca06fd282d65"
    }
  },
  "bankAccountType": "checking",
  "name": "Jane Doe - Checking"
}

HTTP/1.1 201 Created
Location: https://api-sandbox.dwolla.com/funding-sources/AB443D36-3757-44C1-A1B4-29727FB3111C
Test in the Sandbox for free today.
Use sandbox environment to test API requests.
Get API Keys
2024 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.