Skip to main content

Transfers

The Transfers resource in the Dwolla API enables you to programmatically move funds between accounts. Transfers represent the movement of money from a source (such as a bank or Dwolla balance/wallet) to a destination, and support a variety of use cases—including: pay-ins, pay-outs, facilitating payments between users and enabling transfers between a user’s own accounts (me-to-me). With the Transfers resource, you can initiate, track, and manage payments, handle cancellations, and view detailed transfer statuses and metadata. This resource is central to orchestrating payments, providing transparency and control over the flow of funds in your application.

Transfer resource

Source and destination types

Source types
Destination types

amount JSON object

Facilitator fee JSON object

The facilitator fee is a feature allowing for a flat rate amount to be removed from a payment as a fee, and sent to the creator of the Dwolla application. The fee does not affect the original payment amount, and exists as a separate Transfer resource with a unique transfer ID. Within a transfer request you can specify an optional fees request parameter, which is an array of fee objects that can represent many unique fee transfers. The fees array is supported on both ACH transfers and Instant Payments transfers (those using a processingChannel.destination of instant or real-time-payments).

Facilitator Fee Overview

For more information on collecting fees on payments, reference the facilitator fee resource article.

Facilitator fee example:

clearing JSON object

The clearing object is used in tandem with our expedited transfer feature. This object does not need to be included if not using expedited transfers. Source specifies the clearing time for the source funding source involved in the transfer, and can be used to downgrade the clearing time from the default of Next-day ACH or to upgrade it to Same-day ACH debit. Destination specifies the clearing time for the destination funding source involved in the transfer, and can be used to upgrade the clearing time from the default of Standard ACH to Same-day ACH.
The clearing request parameter is a premium feature available for Dwolla customers in the Scale pricing tier. Enabling Next-day ACH and Same-day ACH requires additional Dwolla approvals before getting started. Please contact sales or your account manager for more information on enabling this feature.

Clearing examples:

Standard debit and Same-day credit (when Next-day is enabled)
Next-day debit and Same-day credit (when Next-day is enabled)
Same-day debit and Same-day credit
Same-day debit and Standard credit

achDetails and addenda object

Note: This feature is only supported for business Customer records.
The addendum record is used to provide additional information to the payment recipient about the payment. This value will be passed in on a transfer request and can be exposed on a Customer’s bank statement. Addenda records provide a unique opportunity to supply your customers with more information about their transactions. Allowing businesses to include additional details about the transaction—such as invoice numbers—provides their end users with more information about the transaction in the comfort of their own banking application.
achDetails object
addenda object

achDetails with addenda example:

rtpDetails and fedNowDetails objects

Note: Instant Payments (RTP and FedNow) is a premium feature available for Dwolla customers. Enabling Instant Payments requires additional Dwolla approvals before getting started. Please contact Sales or your account manager for more information on enabling this account feature.
When retrieving a transfer from the API, the response will contain either an rtpDetails object or a fedNowDetails object depending on which payment network was used:
  • rtpDetails - Included when the transfer was sent via TCH’s RTP Network
  • fedNowDetails - Included when the transfer was sent via FRB’s FedNow Service
Both objects have an identical structure and contain network-specific identifiers that appear once the credit entry clears into the destination bank account. Refer to our Instant Payments developer concept article to learn more about initiating Instant Payment credit transfers.
When creating a transfer, use instantDetails (recommended) or rtpDetails in your request payload to pass remittance data. The fedNowDetails object only appears in API responses and cannot be used in transfer creation requests.
rtpDetails / fedNowDetails object
destination object

rtpDetails example (RTP Network response):

fedNowDetails example (FedNow Service response):

instantDetails object (request only)

The instantDetails object is the recommended way to provide remittance data when initiating an Instant Payment transfer. This object can be used in transfer creation requests regardless of whether the payment ultimately routes via RTP or FedNow.
For backward compatibility, you can also use rtpDetails in transfer creation requests. Both instantDetails and rtpDetails are functionally equivalent for request payloads. However, we recommend using instantDetails.
instantDetails object
destination object

instantDetails example: