Overview #

When you create a transfer using the Dwolla API, there are various steps involved in the life cycle of the transfer from the moment of its creation to when it finishes processing. When the funds move through each step in the cycle, various events are created in Dwolla that record the change, and help us identify which step a transfer is in. These events trigger webhooks which developers can subscribe to in order to be notified about any changes to a resource. There are specific webhooks you can expect to receive based on your funds flow and the Customer types involved in a transfer. Use this interactive tool to guide you through the various transfer scenarios in Dwolla, and their life cycles.

Key Terminology: #

  • Dwolla Balance - The Dwolla Balance is a funding-source type in the Dwolla Platform that can be utilized like a virtual “wallet” to hold funds in. The Dwolla Balance is automatically made available to Verified Customer types, as well as the Master Account.
  • Funded-transfer - funded-transfer is a link returned when retreiving a transfer which points to the transfer that is further ahead in the overall transfer life cycle. funded-transfer is a unique transaction created to route funds to the destination user and/or payment account.
  • Funding-transfer - funding-transfer is a link returned when retrieving a transfer which points to the transfer that is further behind in the overall transfer life cycle. funding-transfer is a unique transaction created to route funds from the source user and/or payment account to the destination user.

Use Correlation ID to query transactions #

The correlation ID is a string value that can be attached to a transfer resource which can be used for traceability between Dwolla and your application. An example of how to pass in a correlation id and how to search for a transaction using the correlationId query search parameter can be found in the code snippets below. When a correlation ID has been sent with a transfer, Dwolla will preserve it throughout the entire transfer life cycle.

Create a transaction using a correlation ID

Example request and response
var requestBody = {
  _links: {
    source: {
      href: "https://api-sandbox.dwolla.com/funding-sources/0004a5e9-d053-46e9-af1f-f4123439138c",
    destination: {
      href: "https://api-sandbox.dwolla.com/funding-sources/f14130f1-c613-406c-98c7-8402abdc3fa6",
  amount: {
    currency: "USD",
    value: "1.00",
  correlationId: "8a2cdc8d-629d-4a24-98ac-40b735229fe2",

  .post("transfers", requestBody)
  .then((res) => res.headers.get("location")); // => 'https://api-sandbox.dwolla.com/transfers/93f78ae0-1f47-ec11-8139-dab70b2f4ba0'

Search for a Customer’s list of transactions using the correlation id

Example request and response
var customerUrl =

  .get(`${customerUrl}/transfers`, { correlationId: 123 })
  .then((res) => res.body._embedded["transfers"]);

Interactive Transfer Lifecycle #

Select a funds flow
Sender Type
Select Sender Type
Sender Source
Select Sender Source
Receiver Type
Select Receiver Type
Receiver Destination
Select Receiver Destination

Test in the Sandbox for free today.

Use sandbox environment to test API requests.

Get API Keys
2023 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.