Understanding Dwolla Transfer Types

I’ve been referencing my last entry on Customer Types frequently since I published it so I thought another one focused on Transfer Types would be helpful. Customer Types, broadly speaking, define who owns, or will own an asset. Transfer types are the ways in which those assets are transferred. 

Each value type has a settlement or clearing path that I’m going to reference as a transfer type. It’s a way to transfer ownership between 2 Customer Types.

Here is how I think about this:

  • Value
    • ValueType  (USD)
      • Currency
        • ($)
          • TransferType
            • Account to Account
            • ACH
            • Same Day ACH
            • Wire
            • Push to Card
            • Pull from Card
            • RTP

The whole notion of Customer Types is driven by the need for a person, business, or thing to be the owner of a value type. When sending money from me to you, the ownership chain begins with me, and it ends with you. Value has an owner so the presence of a customer type in the Dwolla architecture is always implied.

A transfer type is just the way a form of value is transferred between customer types.

Transfers are easy if you stick to the basics

Each transfer has a source, a destination, and a transfer type.

You probably know by now how much I like the concept of building blocks. Here are the building blocks of a transfer 🙂

Leveraging the building blocks

To keep things simple, each Transfer has as source (where the transfer comes from) and destination (where the transfer goes).

The building blocks are already in the API to support just about any funds flow you’d want to build. Here are the simple order of instructions for sending money from a VCR (customer type) to a RO (customer type), which implies it’s going directly into the ROs attached bank account using ACH (transfer type).

Source VCR, TransferType ACH, Destination RO

The Dwolla team has done an excellent job at abstracting a lot of the other complexities involved in bank transfers so you can focus on the important stuff.

Applications built on Dwolla are predominately using ACH, Same Day, and Wire, and account to account transfers. The platform also supports unique transfers like this one:

Source VCR1, TranferType Account to Account, Destination VCR2

Doing an ACH transfer between those two accounts doesn’t make much sense and could take a few days. You might as well use the real-time transfer that has no cost. If you start daisy chaining real-time transactions like this across accounts and even applications things get really interesting.

The sending and receiving Customer Type will define the available transfer types you can use when initiating a transaction. In time I imagine we’ll need to add a listing of available transfer types to each customer record but that’s not available in the API today that I’m aware of.

Breaking down each transfer type a bit

Here are the transfer types to know well when using the Dwolla API.

  • Account to account – Realtime
  • Regular ACH – 1 to 3 business days
  • Same Day ACH – Same business day
  • Wire – realtime after it’s reconciled

There are other transfer types that you could build in but they are not directly supported by Dwolla as of my typing this. Push to card in realtime is coming online soon but I’ve left it off the list because it’s not live today.

Testing as a developer

The Dwolla resources for postman are solid and I’d suggest giving those a run.

You can test in the sandbox or just launch right to production.