By: Dwolla,

This blog post comes from Devangelist, David Stancu. Check out his work on GitHub or hit him up at Awesome IT

building tools, blocks

Here at Dwolla, we are building an innovative way to move money via the ACH network. However, thinking differently poses a challenge: we need to also create unique solutions that are best suited to our mission-critical objectives. How can we do this in a time effective manner while still reaching all of our goals? The answer lies in open source software.

API V2 and SDK Support

The Dwolla API team took a very data-centric approach in their decision to use the Swagger ecosystem. This lets our internal engineering team focus on the API’s data and behavior first before forcing them to make considerations with regards to implementation. After they were finished, the Developer Relations team was handed the task of designing end-user SDKs for this version of the API (aka ‘V2’).


As the Developer Relations’ engineering lead, I researched the Swagger ecosystem and quickly came across the swagger-codegen project, which would use templates to generate end user SDKs in over 10 languages for any API modeled in accordance to the Swagger Spec. I immediately cloned the project and attempted to generate some SDKs for a few languages popular with Dwolla developers; namely, Ruby, Python, PHP, and Java.

There were a variety of problems with generating SDKs using swagger-codegen. To highlight a few:

Problems Shouldn’t Discourage

It is easy to see why it may have been more simple for me to just say, “well, this is going to be hell to fix, I’ll just write the SDKs individually myself.” I thought this same thing, but after taking a step back, there was no good reason as to why I couldn’t use the building blocks available to me. The strategy was to review, fix, and improve more than it was to reinvent.

Developers often feel intimidated when they read another person’s code—and even more so when they have to use that code for their own production purposes.

Even very good changes can be scary at first.

Doing two good things at once

As a developer, your problem may feel unique unto yourself, but that does not mean that the problem doesn’t share components with solutions being attempted by others. Simply put, if something is useful for you it may be useful for many. By submitting fixes to the swagger-codegen project I’ve helped not only Dwolla but the other organizations using this software.

Swagger-CodeGen Quote

For example, OAuth is one of the most popular authorization standards for RESTful services. By adding support to this project for OAuth to certain languages, I enabled that software to help more people than it did before—it’s about community

It’s an interesting time for programmers in the workplace. The ‘open source movement’ has produced a smarter developer; one that is not afraid to look around, ask questions and share their knowledge. This “intellectual crowdsourcing” is essential to writing robust, stable and well-audited software—and this is what we do at Dwolla every day.

Excited by what we’re talking about? Head over to our developer portal and play around.

Interested in how your business could be utilizing Dwolla within your platform or application? Reach out to our sales team.

Financial institutions play an important role in the Dwolla network.

Dwolla, Inc. is an agent of Veridian Credit Union and Compass Bank and all funds associated with your account in the Dwolla network are held in pooled accounts at Veridian Credit Union and Compass Bank. These funds are not eligible for individual insurance, including FDIC insurance and may not be eligible for share insurance by the National Credit Union Share Insurance Fund. Dwolla, Inc. is the operator of a software platform that communicates user instructions for funds transfers to Veridian Credit Union and Compass Bank.