Programmable Payments Infrastructure

How your users connect a bank account and move money.

Moving Money in 3 Steps

Send, collect or facilitate electronic payments within your application.

  • Create a Customer

    Customize the onboarding flow to only ask for the information you need from new users.
  • 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 electronic 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

Customize the onboarding flow to only ask for the information you need from new users.
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.

Innovative Companies Are Programming Their Payments

Implement a Modern and Trusted Payments API

Reporting, compliance and security infrastructure 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.