Move funds between two different bank accounts belonging to a single Verified Customer, e.g. for savings applications that move funds between a Customer’s checking and savings accounts.
Choose a Customer type and create a verified Customer record
Attach a source and destination funding source to the Customer record
Fetch the available funding sources
Send funds from the Customer's checking account to the Customer's savings account
verified
status in order to be eligible to transact. In order
to verify the identity of the individual or business creating a Dwolla
Customer account, you will need to pass information including, but not limited
to, social security number (SSN), address, date of birth, and/or Employer
Identification Number (EIN).Parameter | Required | Type | Description |
---|---|---|---|
firstName | yes | string | Individual’s legal first name. |
lastName | yes | string | Individual’s legal last name. |
yes | string | Customer’s email address. | |
type | yes | string | Type of identity verified Customer. Value of personal for individual. |
address1 | yes | string | Street number, street name of individual’s physical address. |
address2 | no | string | Apartment, floor, suite, bldg # of individual’s physical address. |
city | yes | string | City of individual’s physical address. |
state | yes | string | Two-letter US state or territory abbreviation code of individual’s physical address. |
postalCode | yes | string | Customer’s US five-digit ZIP or ZIP + 4 code. |
dateOfBirth | yes | string | Customer’s date of birth. Must be 18 years of age with format of YYYY-MM-DD . |
ssn | yes | string | Last four-digits of individual’s social security number. |
201
HTTP response with an empty response body. You can reference the Location header to retrieve a link that represents the created Customer resource. We recommend storing the full URL for future use, as it will be needed for actions such as attaching a bank or correlating that are triggered for the user in the Dwolla system.
ipAddress
parameter. This enhances fraud detection and tracking.customer_created
and customer_verified
webhook immediately after the resource has been created.
verified
status upon initial Customer creation. In production, you may run into an instance where more information is needed from your end user in order for Dwolla to fully verify their identity. Other statuses your Customer may be placed in include, retry
, document
, deactivated
, or suspended
. For more information on these statuses, refer to our developer resource article.
balance
is a Funding
Source that can be utilized like a “wallet” for holding a stored value of
funds. The Dwolla balance is made available for Customers that have fully
verified
their identity within Dwolla.Bank Addition Method | Will the bank be verified? | Required Information |
---|---|---|
API - Account & Routing Number | Optional - With Microdeposits | Bank Account and Routing Number |
Dwolla + Open Banking | Yes | Online banking credentials |
Drop-in components | Optional - With Microdeposits | Bank Account and Routing Number |
Dwolla + Secure Exchange solution | Yes | Online banking credentials |
Other Approved Third-party Provider | Yes | Variable |
customer_funding_source_added
and customer_funding_source_verified
immediately following the request to Dwolla to add a funding source using Open Banking.
checking
account, you will want to repeat the same steps outlined above to add the customer’s savings
account as a funding source as well.
200
HTTP response with the details of the funding sources. After retrieving the funding sources, we recommend storing the full URL for future use as it will be referenced when creating the transfer to this user’s bank account.
Source
- Your Customer’s Checking Bank Funding SourceDestination
- Your Customer’s Savings Bank Funding Sourceme-to-me
funds flow, you will need to know that there are two parts to a transfer,
_links
parameter.
Parameter | Required | Type | Description |
---|---|---|---|
_links | yes | object | A _links JSON object describing the desired source and destination of a transfer. Reference the Source and Destination object to learn more about possible values for source and destination. |
amount | yes | object | An amount JSON object. Reference the amount JSON object to learn more. |
clearing
to specify the processing timing
for the transfer, or correlationId
to help correlate transfers
from end-to-end. The object facilitator-fee
isn’t supported for
this funds flow. For more information on all available transfer request
parameters, check out our API reference documentation.customer_bank_transfer_created
immediately after the transfer resource has been created. This denotes that the first part of the transfer has been initiated from the checking bank funding source to the Balance funding source.
customer_bank_transfer_completed
webhook when the status of the first part of the transfer has changed from pending
to processed
. The second part of the transfer is then automatically initiated from the Balance funding source to the savings bank funding-source which triggers another customer_bank_transfer_created
webhook. Repeat simulate bank transfer processing to simulate bank transfer processing again. Once the transfer has cleared into the final destination bank funding source, you will receive another customer_bank_transfer_completed
webhook denoting that the transfer is now complete.
pending
to processed
to a destination funding source. However, if you want to verify the status of a transfer at any given point in time, you can make a call to the API to retrieve the transfer by its unique id.