Dwolla Developers Logo
Back
API Reference
  • SDK Support
    Drop-in Components
    Authorization
    Root
    Accounts
    Customers
    Knowledge-based Authentication (KBA)
    Beneficial Owners
    Documents
    Funding Sources
    Transfers
    OverviewInitiate a transferRetrieve a transferList and search transfers for a customerList fees for a transferRetrieve a transfer failure reasonCancel a transferCreate an on-demand transfer authorization
    Mass payments
    Labels
    Events
    Webhook subscriptions
    Webhooks
CommunityOpen in new tabChangelog
Get API Keys
CommunityOpen in new tabChangelog
JavaScript
Get API Keys

Transfers #

A transfer represents money being transferred from a source to a destination. Transfers are available for the Customer and Account resources.

LinkDescriptionselfURL of the transfer.sourceGET this link to retrieve the Customer that was the source of the transfer.destinationGET this link to retrieve the Customer that was the destination of the transfer.source-funding-sourceGET this link to retrieve the funding source that was the source of the transfer.destination-funding-sourceGET this link to retrieve the funding source that was the destination of the transfer.cancelPOST to this link to cancel the transfer (A bank transfer is cancellable up until 4pm CT on that same business day if the transfer was initiated prior to 4pm CT. If a transfer was initiated after 4pm CT, it can be cancelled before 4pm CT on the following business day.)feesGET this link to retrieve the facilitator fees associated with the transfer.

Transfer resource #

ParameterDescriptionidTransfer unique identifier.statusEither processed, pending, cancelled, or failed.amountAn amount JSON object. See below.createdISO-8601 timestamp.metadataA metadata JSON objectclearingA clearing JSON object.achDetailsAn achDetails JSON object. See below.rtpDetailsAn rtpDetails JSON object. See below.correlationIdA string value attached to a transfer resource which can be used for traceability between Dwolla and your application.individualAchIdA unique string value matching the value on bank line related to the transfer. Appears when the debit entry clears out of the bank. The individual identifier for that ACH entry.processingChannelA processingChannel JSON object that contains a key-value pair with a string key and string value of destination and real-time-payments.
bash
{
  "_links": {},
  "_embedded": {},
  "id": "string",
  "status": "string",
  "amount": {
    "value": "string",
    "currency": "string"
  },
  "created": "string",
  "metadata": {
    "key": "value"
  },
  "clearing": {
    "source": "standard",
    "destination": "next-available"
  },
  "achDetails": {
    "source": {
      "addenda": {
          "values": [
              "string"
          ]
      },
      "traceId": "string"
    },
    "destination": {
      "addenda": {
          "values": [
              "string"
          ]
      },
      "traceId": "string"
    }
  },
  "rtpDetails": {
    "destination": "string"
    "networkId": "string"
  },
  "correlationId": "string",
  "individualAchId": "string",
  "processingChannel": {
    "destination": "real-time-payments"
  }
}

Source and destination types #

Source types
Source TypeURIDescriptionFunding sourcehttps://api.dwolla.com/funding-sources/{id}A bank or balance funding source.
Destination types
Destination TypeURIDescriptionFunding sourcehttps://api.dwolla.com/funding-sources/{id}Destination of an Account or verified Customer's own bank or balance funding source. OR A Customer's bank funding source.

amount JSON object #

ParameterRequiredTypeDescriptionvalueyesstringAmount of money. If the entered amount has more than two decimal places, Dwolla will automatically round it to the nearest even integer using Banker's Rounding.
Maximum limit: Default transaction limits based on Customer type or custom transaction limits as defined in the services agreement with Dwolla.
Minimum limit: \$0.01.currencyyesstringPossible values: USD

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.

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

ParameterDescription_linksContains a charge-to JSON object with a link to the associated source or destination Customer resource.amountAmount of fee to charge. An amount JSON object. See above

Facilitator fee example:

bash
"fees": [
  {
    "_links": {
      "charge-to": {
        "href": "https://api-sandbox.dwolla.com/customers/d795f696-2cac-4662-8f16-95f1db9bddd8"
      }
    },
    "amount": {
      "value": "4.00",
      "currency": "USD"
    }
  }
]

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.

Info
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.
ParameterRequiredTypeDescriptionsourcenostringRepresents a clearing object for debits into the Dwolla network.
Possible values: standard, next-available
standard - Used to downgrade the clearing time of debits from the default of Next-day ACH (if enabled) to Standard ACH.
next-available - Used to upgrade the clearing time of debits to Same-day ACH.destinationnostringRepresents a clearing object for credits out of the Dwolla network to a bank funding source.
Possible values: next-available
next-available - Used to upgrade the clearing time of credits to Same-day ACH.

Clearing examples:

Standard debit and Same-day credit (when Next-day is enabled)
bash
"clearing": {
  "source": "standard",
  "destination": "next-available"
}
Next-day debit and Same-day credit (when Next-day is enabled)
bash
"clearing": {
  "destination": "next-available"
}
Same-day debit and Same-day credit
bash
"clearing": {
  "source": "next-available",
  "destination": "next-available"
}
Same-day debit and Standard credit
bash
"clearing": {
  "source": "next-available"
}

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
ParameterRequiredTypeDescriptionsourcenoobjectRepresents information that is sent to a source/originating bank account along with a transfer. Include information within this JSON object for customizing details on ACH debit transfers. Can include an addenda JSON object.destinationnoobjectRepresents information that is sent to a destination/receiving bank account along with a transfer. Include information within this JSON object for customizing details on ACH credit transfers. Can include an addenda JSON object.
addenda object
ParameterRequiredTypeDescriptionaddendanoobjectAn addenda object contains a values key where its value is an array containing a single string addenda value. Addenda record information is used for the purpose of transmitting transfer-related information from a business.
Addenda value must be less than or equal to 80 characters and can include spaces.
Acceptable characters are: a-Z, 0-9, and special characters - _ . ~ ! * ' ( ) ; : @ & = + $ , / ? % # [ ].
Transfers must be sent to/from a business entity's bank to guarantee addenda delivery.

achDetails with addenda example:

bash
"achDetails": {
  "source": {
    "addenda": {
      "values": ["ABC123_AddendaValue"]
    }
  },
  "destination": {
    "addenda": {
      "values": ["ZYX987_AddendaValue"]
    }
  }
}

rtpDetails object #

Note: This is available as part of RTP®, a premium feature available for Dwolla customers. Enabling RTP® does require additional Dwolla approvals before getting started. Please contact Sales or your account manager for more information on enabling this account feature.

The rtpDetails object is used to provide additional information to the payment recipient about their RTP® credit transfer. This value will be passed in on an RTP® credit transfer request to the recipient’s bank account.

Refer to our Real-time Payments developer concept article to learn more about initiating an RTP® credit transfer.

rtpDetails object
ParameterRequiredTypeDescriptiondestinationnoobjectRepresents information that is sent to a destination/receiving bank account along with an RTP® credit transfer. Include information within this JSON object for customizing details on RTP® credit transfers. Contains a key-value pair for remittanceData.
destination object
ParameterRequiredTypeDescriptionremittanceDatanostringContains a string value. Used for the purpose of transmitting RTP® transfer-related information to the recipient's bank account.
RTP® remittance data value must be less than or equal to 140 characters and can include spaces.

rtpDetails example:

bash
"rtpDetails": {
  "destination": {
    "remittanceData": "ABC_123 Remittance Data"
  }
}

Test in the Sandbox for free today.

Use sandbox environment to test API requests.

Get API Keys
2021 All Rights Reserved

Dwolla

  • About
  • Blog
  • Pricing
  • Contact Sales
  • Terms of Service
  • Privacy Policy
Financial institutions play an important role in our network.

Dwolla, Inc. is the operator of a software platform that communicates user instructions for funds transfers to our financial institution partners.

Dwolla is an agent of Veridian Credit Union. All ACH and Wire transfers are performed by Veridian Credit Union. Your Dwolla Balance, if any, is held in one or more pooled holding accounts held by Veridian Credit Union. These funds may not be eligible for share insurance by the National Credit Union Share Insurance Fund.

Sponsorship and Settlement of Push-to-Debit payment services provided by MetaBank®, N.A.
Push-to-Debit payments are typically available within 30 minutes.

Real-Time Payments are performed by Cross River Bank, which holds funds on behalf of the Receiver of such transactions in one or more pooled custodial accounts. These funds are not subject to FDIC pass-through deposit insurance.