Last fall we released our White Label bank transfer solution for businesses and nonprofits looking to streamline their ACH payouts. Within your own application or online portal, Dwolla White Label puts a powerful ACH payments platform behind your brand and logo.
The white label solution allows you to transfer funds seamlessly, from customer on-boarding to how your businesses name is displayed on your customer’s bank statement.
While managing the role as payment originator, Dwolla provides a simple, easy-to-implement bank transfer API to power your payments and help you manage risk, fraud, and compliance.
When implementing Dwolla’s white label payout solution, there are three major components that require different levels of verification to get going:
- The creation of a customer record
- The association of a funding source with that customer record
- The transfer of funds between linked accounts
To test the API requests, you’ll want to first create a sandbox account.
Creating a Customer Record
Once you’ve set up a testing account, you’ll begin by creating a customer record, which requires at least a full name and email address for each user you’d like to transfer funds to. Once the customer record is created, you will find the customer object URL in the location header.
Pro tip: To enhance Dwolla’s ability to monitor fraud, we strongly recommend providing the IP address of the end-user accessing your app as the ipAddress parameter.
Here’s what the request and response should look like:
Connect a funding source
Once you’ve successfully created a customer record, the next step is to associate a funding source. This step calls for three additional pieces of information, so funds can automatically be sent to this customer record:
- Bank account
- Routing number
- Account type (ie. government, nonprofit, business)
All information provided in this step is securely stored with Dwolla.
Subscribe to Webhooks
In order to transfer funds between your account and the customer record, you’ll first set up webhooks to notify your customer when an event occurs. To create these webhooks, start by creating a client access token and use the credentials provided.
Once you’ve generated this token, continue on to creating the webhook subscription. Start by calling the webhook-subscriptions endpoint with your callback URL.
Now that you’ve made your subscription, Dwolla will send webhook notifications to the provided URL. Responses take about 20 seconds to deliver after the event has occurred, but if you miss one, no worries—8 delivery attempts are executed over the course of 72 hours. An example webhook is shown below.
Transfer funds from account to account
The final step in this process is creating a transfer from your account to a customer. To do so, you’ll need the information for the bank account that sources the funds and the customer to which the funds will go.
The transfer of funds is a three-step process. In short you will follow these steps:
- Fetch a list of available funding sources using the List Funding Sources (Account) endpoint.
- Create a transfer by specifying the account’s funding source as the source and the customer as the destination.
- Check the transfer status by referring to its ID.
Once this action is complete, a receipt of a webhook will indicate a change. This can be used as a trigger to communicate with the customer, sending an email with an update on the status of funds.
Above we’ve provided a quick breakdown of what the integration process looks like with our white labeled bank transfers solution. To get the full guide, visit our developer portal.
If you’re interested in learning more about Dwolla’s powerful payments tools and API, reach out to an integration specialist.
We'll help you design your ideal payments experience. A Dwolla representative will reach out to you within one business day. There was an error and your the form was not submitted.
Interested in improving your payouts process?
We'll help you design your ideal payments experience.
A Dwolla representative will reach out to you within one business day.
There was an error and your the form was not submitted.