Streamline Your Payment Flows From End to End With Virtual Account Numbers. Sign Up to Access!

Modern Payments Platform

Enabling innovators to program their payments with scalable and reliable technology.

Moving Money in 3 Steps

Send, collect or facilitate digital payments within your application.

  • Create a Customer

    Onboard a customer to receive funds or verify their identity for full functionality.
  • Attach a Funding Source

    Without storing any sensitive data, attach a bank account or debit card.
  • Initiate a Transfer

    Initiate a payment and move funds from the source account to the destination account.
Create a Customer
POST https://api-sandbox.dwolla.com/customers HTTP/1.1
Content-Type: application/vnd.dwolla.v1.hal+json
Accept: application/vnd.dwolla.v1.hal+json
Authorization: Bearer 0Sn0W6kzNicvoWhDbQcVSKLRUpGjIdlPSEYyrHqrDDoRnQwE7Q
{
  "firstName": "Caroline",
  "lastName": "Johnson",
  "email": "caroline.johnson@yahoo.com",
  "ipAddress": "99.99.99.99"
}

Moving Money in 3 Steps

Send, collect or facilitate digital payments within your application.

Create a Customer
POST https://api-sandbox.dwolla.com/customers HTTP/1.1
Content-Type: application/vnd.dwolla.v1.hal+json
Accept: application/vnd.dwolla.v1.hal+json
Authorization: Bearer 0Sn0W6kzNicvoWhDbQcVSKLRUpGjIdlPSEYyrHqrDDoRnQwE7Q
{
  "firstName": "Caroline",
  "lastName": "Johnson",
  "email": "caroline.johnson@yahoo.com",
  "ipAddress": "99.99.99.99"
}

Create a Customer

Onboard a customer to receive funds or verify their identity for full functionality.
Attach a Funding Source
POST https://api-sandbox.dwolla.com/customers/c2126144-9f8f-4dd8-84c2-fba78828c526/funding-sources HTTP/1.1
Content-Type: application/vnd.dwolla.v1.hal+json
Accept: application/vnd.dwolla.v1.hal+json
Authorization: Bearer 0Sn0W6kzNicvoWhDbQcVSKLRUpGjIdlPSEYyrHqrDDoRnQwE7Q
{
  "routingNumber": "021000021",
  "accountNumber": "9876543210",
  "bankAccountType": "checking",
  "name": "Chase Checking"
}

Attach a Funding Source

Without storing any sensitive data, attach a bank account or debit card.
Initiate a Transfer
POST https://api-sandbox.dwolla.com/transfers HTTP/1.1
Accept: application/vnd.dwolla.v1.hal+json
Content-Type: application/vnd.dwolla.v1.hal+json
Authorization: Bearer 0Sn0W6kzNicvoWhDbQcVSKLRUpGjIdlPSEYyrHqrDDoRnQwE7Q
{
  "_links": {
    "source": {
      "href": "https://api-sandbox.dwolla.com/funding-sources/2abc3cb7-d548-410d-ba1b-b9b95ef42400"
    },
    "destination": {
      "href": "https://api-sandbox.dwolla.com/funding-sources/75d94e67-1c83-4602-b26a-09322632a942"
    }
  },
  "amount": {
    "currency": "USD",
    "value": "900.00"
  }
}

Initiate a Transfer

Initiate a payment and move funds from the source account to the destination account.

Implement a Modern and Trusted Payments API

Reporting, compliance and security features built-in.

Validated

Controls that are continuously tested internally and externally.

Configurable

Easily connect bank accounts and move money.

Scalable

Millions of users depend on the reliability of Dwolla’s API.

Developer-Friendly

Integrate and move money with three easy endpoints.

Innovative Companies Are Programming Their Payments

Wanting to Learn More?

View Our Pricing Plans