Overview - Dwolla Developer Portal

Funding Sources

The Funding Sources resource represents payment accounts that can be used to send and/or receive funds. Funding sources are relational to either a Dwolla Main Account or Customer and can be used to reference details on a payment account.

Funding source types

The three funding source types available with a Dwolla integration include a bank, and the Dwolla balance account. Type bank represents any bank account attached as a funding source to Account and Customer resources. Type balance represents the Dwolla Balance made available to Account and Verified Customer resources.

Bank funding source

Funding sources of type bank include an additional attribute, bankAccountType, denoting the type of the bank account being attached. The bank account types currently supported by Dwolla include checking, savings, general-ledger and loan.

Balance funding source

The Dwolla Balance can be utilized as a digital “wallet”, storing USD funds for the Customer or Account with Dwolla’s financial institution partners. Additionally, the Dwolla Balance can be pre-loaded with funds for quicker outgoing ACH transfers to destination funding sources. To get a more in-depth overview of the Dwolla Balance, including functionality and other benefits, check out our developer resource article or view our webinar.

Funding source links

Link Description
self URL of the funding source resource.
customer GET this link to retrieve details of the Customer.
remove POST to this link to remove the funding source from the Customer.
balance (Verified Customer only) GET this link to retrieve the amount available in the balance of the Customer’s Balance funding source.
transfer-from-balance (Verified Customer only) if this link exists, the Customer can transfer funds from their balance.
transfer-to-balance (Verified Customer only) if this link exists, funds can be transferred to the Customer’s balance.
transfer-send If this link exists, the Customer can send funds to another Customer.
transfer-receive The Customer can receive funds from another Customer.
initiate-micro-deposits POST to this link to initiate micro-deposits on an unverified funding source.
verify-micro-deposits Micro-deposits have completed to this funding source and are eligible for verification. POST to this link with the verify micro-deposit amounts and complete bank funding source verification.
failed-verification-micro-deposits Micro-deposits attempts have failed due to too many failed attempts. Remove the bank and re-add to attempt verification again.

Funding source resource

Parameter Description
id The funding source unique identifier.
status Possible values are unverified or verified. Determines if the funding source has completed verification.
type Type of funding source. Possible values are bank or balance.
bankAccountType An attribute for bank funding sources that determines the type of account. Possible values are checking, savings, general-ledger or loan.
name Arbitrary nickname for the funding source.
created ISO-8601 timestamp for when the funding source was created.
balance An optional object that includes value and currency parameters. value is a string value for the amount available and currency is a string value currency code. Only returned for a Dwolla API Customer account balance.
removed Determines if the funding source has been removed. A boolean true if the funding source was removed or false if the funding source is not removed.
channels List of processing channels. ACH is the default processing channel for bank transfers. Possible values are ach, real-time-payments or wire.
bankName The financial institution name. This value is generated from its routing number by Dwolla when a funding source is created; it cannot be specified manually.
iavAccountHolders An optional object that includes optional selected and other parameters. selected, a string with the account holder name(s) on file with the financial institution for the IAV selected account. other, a list of strings with name(s) of other accounts on file. Only returned for a Customer that added a bank using Dwolla IAV, and if names are returned for the selected bank account.
fingerprint Fingerprint is an optional unique identifying string value returned for funding sources of type bank. This attribute can be used to check across all Dwolla API Customers if two bank accounts share the same account number and routing number. Removing a funding source does not remove the fingerprint.

Funding source resource example

{
    "_links": {
        "self": {
            "href": "https://api-sandbox.dwolla.com/funding-sources/fc84223a-609f-42c9-866e-2c98f17ab4fb",
            "type": "application/vnd.dwolla.v1.hal+json",
            "resource-type": "funding-source"
        },
        "customer": {
            "href": "https://api-sandbox.dwolla.com/customers/241ec287-8d7a-4b69-911e-ffbea98d75ce",
            "type": "application/vnd.dwolla.v1.hal+json",
            "resource-type": "customer"
        }
    },
    "id": "fc84223a-609f-42c9-866e-2c98f17ab4fb",
    "status": "verified",
    "type": "bank",
    "bankAccountType": "checking",
    "name": "Your Account #1 - CHECKING",
    "created": "2017-08-16T20:06:34.000Z",
    "removed": false,
    "channels": [
        "ach",
        "real-time-payments"
    ],
    "bankName": "SANDBOX TEST BANK",
    "iavAccountHolders": {
        "selected": "account holder",
        "other": [
          "Jane Doe",
          "GeneriCompany LLC"
        ]
    },
    "fingerprint": "4cf31392f678cb26c62b75096e1a09d4465a801798b3d5c3729de44a4f54c794"
}