At Dwolla, our team has put a lot of effort into building an easy-to-use and straightforward API from the ground up.

But as we work with businesses of all types to integrate, we continue to make improvements and pick up useful tips and tricks.

Read this post to discover 5 integration tips that will make your app easier to build…

1. Build against the Sandbox to perfect your app

Every developer wants to build a stellar app, but it’s not easy. It takes time, effort, and dedication.

With Dwolla, you get a head start because it’s white-labeled by design. You get to customize the experience with your name, your branding, and your UX design. But there is still no substitute for thoughtfulness and meticulous testing.

We facilitate this by making it easy to hit every scenario and edge-case in your app. A complete replica of our production environment called the Sandbox is provided to help with your integration process. In the Sandbox, you can test and build with fake data until you’ve honed your app to perfection.

To read more about how to simulate bank transfer processing, use sentinel values and more, check out the testing resource article in our API Docs.

2. Get a Dwolla token with one call

For security purposes, Dwolla uses time-limited tokens to permit access to resources. Our API has always supported the OAuth flow for authorization in order to grant these tokens. This provides a high level of flexibility and security, but it also comes with a high complexity cost.

We’ve made getting a token a lot simpler for Dwolla customers. You can now get a token by calling a single endpoint with your key and secret.

curl -X POST -H "Accept: application/json" -H "Content-Type: application/json" -d '{
   "client_id": "CGQXLrlfuOqdUYdTcLz3rBiCZQDRvdWIUPkwasGMuGhkem9Bo",
   "client_secret": "g7QLwvO37aN2HoKx1amekWi8a2g7AIuPbD5CcJSLqXIcDOxfTrwasGMuGhkem9Bo",
   "grant_type": "client_credentials"
}' "" -v


3. Use the idempotency key ensuring you only create a resource once

If you’re moving money around, you really want to make sure that you send funds once and exactly once. Accidentally sending a transfer twice (due to a network connection issue, for example) would be a total pain and could cause a big problem.

To prevent an operation from being performed more than once, Dwolla supports passing in an Idempotency-Key header with a unique key as the value. Multiple POSTs with the same idempotency key won’t result in multiple resources being created.

Here’s what a request with an idempotency key looks like:

curl -X POST -H "Content-Type: application/vnd.dwolla.v1.hal+json" -H "Accept: application/vnd.dwolla.v1.hal+json" -H "Authorization: Bearer asdfwXTdDQFimVQOMdn9bOGHJh8KrqnFi34sugYqgrULRCb" -H "Idempotency-Key: d2adcbab-4e4e-430b-9181-ac9346be723a" -d '{
   "_links": {
       "destination": {
           "href": ""
       "source": {
           "href": ""
   "amount": {
       "currency": "USD",
       "value": "1337.00"
}' "" -v

You can read more about idempotency keys in our API docs.

Note: Idempotency keys are intended to prevent conflicts over a short period of time. Therefore, keys will expire after 24 hours.

4. Use webhooks to keep your app up to date without polling

ACH bank transfers take a bit of time to process, generally 1-6 business days (although things like Same Day ACH are helping to speed up these transfer times). So how do you know if a transfer completes successfully or fails, and when?

One solution would be to keep checking the API for updates, but who wants to do that?

Instead, you can create a webhook subscription for your application. Whenever something of note happens in our system, we’ll notify your subscribed URL about the event. You can use these webhook notifications to do additional processing in your application, send customer communications, etc.

If the webhook fails, we use a progressive retry policy to see if we can contact you at a later time. We’ll try up to eight times over 72 hours. In addition, you can retrieve information about events and our webhook attempts to notify your server of these events via the API.

You can read more about events, webhooks, and subscriptions in our API Docs.

5. Save valuable build-time, take advantage of our Dashboard & Admin

Each company that integrates with Dwolla has similar needs when it comes to their own back-end business processes: they need a way to manage the customers they add and monitor the transfers they create.

You could certainly build out your own snazzy admin portal with Dwolla’s API to track these activities. You could invest hours of design and development time. But what if you didn’t have to? After all, the best code is the code you don’t have to write.

To that end, we built the Dashboard & Admin to help customers visualize their integration, manage customers, and monitor transfers as a turnkey package.

We like to “eat our own dogfood”, as they say, so the Dashboard and Admin is built on top of the same API that Dwolla customers use every day. Better yet, we’re continually listening to feedback and working on improvements to make the Dashboard and Admin an even more useful tool.

Learn more about Dwolla, visit our developer documentation or get started today.


Stay Updated