Alternative Payment Systems, Part 4: Dwolla
Welcome to part four of my multi-part series comparing alternative payment systems to the PayPal X Platform and each other. Part one introduced Amazon’s Flexible Payments Service, part two discussed Facebook Credits, and part three focused on Google Checkout.
This time we’re going to examine the Dwolla platform (@dwolla) for sending and receiving cash. We’ll look at some of Dwolla’s claims for consumer and merchant advantages, then we’ll switch gears and look at Dwolla from a developer perspective. We’ll discuss the Dwolla APIs and what you can do with them. We will conclude with a look at how the Dwolla platform compares with the PayPal X Platform and solutions.
Introduction to Dwolla
The Dwolla homepage contains an introductory video that’s worth watching to get a feel for what they’re offering (I couldn’t find an embed option so you’ll need to click here and then play the video near the top of the page if you’d like to see it for yourself). The key claim in their description of their system is that Dwolla is “the online cash option”.
Dwolla claims to be comparable to cash in that they use bank transfers to fund payments, no credit cards required. They also aim to keep transaction costs low, avoiding potentially significant (and sometimes fluctuating) credit card fees. Their “Fees” page shows a “Cost to receive money” of $0.25 USD per transaction. There are no costs to open an account, send money, make withdrawals (automatic or manual), add a bank funding option to an account, or request payment with an invoice. We’ll dig deeper into the fees involved in a later series summary article, but suffice it to say they are relatively minimal.
Dwolla calls out several key features for consumers. Among these, the system allows the payee to:
- Send money to Twitter followers and Facebook friends
- Shop online with participating merchants (more on merchant advantages below)
- Buy goods and services at participating real world merchants, too
- Access Dwolla “core features” via iPhone and Android consumer apps
- Search transaction history by transaction size or date as well as participating parties
Dwolla provides an even lengthier list of merchant advantages, stating that merchants using their system can:
- Accept payments online with a free merchant account (twenty-five cents per transaction fee still applies)
- Integrate with existing shopping cart solutions via the Dwolla APIs (more on the APIs below)
- Accept payments at physical stores including the ability to monitor incoming payments using the Dwolla Merchant iOS app
- Automatically sweep funds sent to your Dwolla account into your bank account (maintain a zero Dwolla account balance at all times if you like)
- Setup a branded, Dwolla-hosted HUB page for the quickest possible time-to-accepting-payments
- Pay other businesses for less money than mailing a check (that $0.25 per transaction fee thing again)
This YouTube video highlights both the consumer and merchant Dwolla apps in both a location-based, real world purchase scenario and a second friend-to-friend money transfer example (click here if you are unable to access the embedded video directly below).
To sum up for consumers and merchants, Dwolla aims to make payments easier and cheaper while taking a cut of the transaction costs for themselves. PayPal and others are doing similar things. So far, not a lot of new innovations compared with other payment systems. How about in the developer side of things?
Avenues for developing with the Dwolla platform
Developers should run, not walk, to the Dwolla Developer Forums. More than just a place for Dwolla development related discussions (though it is that, too), this spot on the interwebs contains links to the key technical documentation you’ll need to get started using the Dwolla APIs.
Dwolla offers two major APIs to access their underlying payments system. You can read about both of them along with other API related issues in their “Primary API Releases” forum category. Choose the one which best meets your needs. The Dwolla APIs include:
- A SOAP API – WSDL at
https://www.dwolla.com/api/API.svc?wsdl; seems to be the more mature of the two Dwolla APIs
- A RESTful API currently listed as “in a beta stage of sorts”; given that REST is a part of the One True Web Path, this is the API option that we’ll discuss in more detail below.
An aside on accessing the API documentation:
As noted above, you need to visit the “Primary API Releases” discussion category and from there click on “REST API” and “SOAP API” sticky notes to get to documentation for the Dwolla APIs. It would be a big improvement if Dwolla would offer a standalone PDF or HTML developer guide that pulls that key documentation together in one place, then linked to it prominently from a developer top level page above/outside of the forums. Digging through the forums to find API docs is very cumbersome at best; at worst, it might jettison a few developers interested in exploring what the platform can do but not willing to hunt and hunt and hunt some more for critical documentaiton. If I were a new documentation or evangelist hire at Dwolla, such a guide would be my numero uno top priority for helping developers make sense of their system and how to tie into it.
OK, enough free advice for Dwolla, just what can we do with their REST API?
Using the Dwolla REST API
authenticate– used to pass in credentials for authentication with the system
account information– you guess it, returns account holder name, address, balance, and the like
balance– the heart of things from a payments perspective
contacts– array of Dwolla, Twitter, or Facebook contacts
nearby– returns an array of geolocation objects for nearby users
register– registers a new Dwolla user account
send– send money with the receiving party paying the $0.25 transaction fee (receivers are the default fee payers in the Dwolla system)
send_assume_costs– send money with the sending party paying the $0.25 transaction fee
subscribe_notifications– used to request notification for account events such as deposits, withdrawals, and more
transactions– returns an array of transaction objects containing transaction ID, amount, date, etc.
validatepin– validates a given PIN
The Dwolla REST API page provides much more information on each of the API calls along with a very simple C# example of
Click here to read the complete article on the PayPal X Developer Network including a comparison of Dwolla to the PayPal X Platform.