Wesabe makes Financial Data available programmatically
Wesabe has just done what I've been trying to convince banks to do for years. They're making financial data available via a simple POX (Plain Old XML) API. A year ago I did a POX API for Corillian products that Patrick and I presented at TechEd 2006, but it only for whatever single financial institutions chose to install it.
How does Wesabe do it? Your bank probably uses a funky SGML format (that I've talked about before; I was the OFX Vendor Committee Chair for a bit) called OFX that is not only obscure, but difficult and no fun.
Microsoft Money and Quicken, as well as some others, download OFX from your bank into their local storage. Unfortunately, neither Money nor Quicken makes the downloaded data available programmatically, which is one of the reasons I've stopped using both of them them.
You can upload your transaction details to Wesabe on your own, but you can also install their Account Uploader. It's Wesabe's small OFX Client of their own that runs in the background on your computer. It downloads OFX and uploads to their servers. Then they make the aggregated data available (as of today) via a POX (they say REST) XML API. Kind of like the quickie diagram at right (Thanks Paint.NET!)
So, over lunch I did a quick C# library (with my two high-school interns, Eric and Shady) to access their API. It's up here at Google Code if you want start expanding it. If anyone wants to take over, be a member, whatever, put your Google Code username in the comments and I'll add you. What I added just does the account download and is separated into a lib and a command line client.
I did add a couple of things like a check to make sure that when you talk to them via SSL that you are actually talking to them and not a man in the middle:
public class wesabe_rest { static wesabe_rest() { ServicePointManager.ServerCertificateValidationCallback = ValidateServerCertificate; } // The following method is invoked by the RemoteCertificateValidationDelegate. public static bool ValidateServerCertificate( object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { if (sslPolicyErrors == SslPolicyErrors.None && certificate.Subject ==
@"CN=www.wesabe.com, OU=Thawte SSL123 certificate,
OU=Go to https://www.thawte.com/repository/index.html,
OU=Domain Validated, O=www.wesabe.com") return true; Console.WriteLine("Certificate error: {0}", sslPolicyErrors); // Do not allow this client to communicate with unauthenticated servers. return false; }
I also did the XML work via XmlSerializer, because I'm still a fan. The Wesabe guys didn't include a schema, but I suggested it strongly. You can too over in the Wesabe API Developer's Group (Free Wesabe login needed, with no obligation to upload anything financial).
For those of you who commented on my post on Quicken and Money, I noticed that a lot of you use Excel and other tools to get at your data. The Wesabe API will let you get transaction data in 5 formats, one of which being XLS. For example:
This resource is also available in OFX, OFX2, QIF, CSV, and XLS formats:
GET /accounts/show/<account id>.ofx GET /accounts/show/<account id>.ofx2 GET /accounts/show/<account id>.qif GET /accounts/show/<account id>.csv GET /accounts/show/<account id>.xls
By changing the extension you get a different file. Apparently all this Wesabeness works in 30 countries, so it's not specific to US Dollars or US institutions.
It's early, sure, but it's a slick idea and it can potentially help you unlock your financial lock and allow you do any number of cool things with it. One of the things that has impressed me so far with Wesabe is their openness to feedback. You can even call their CEO directly. He's got phone hours and a number published on their site and you can call and talk to him personally, seven days a week. That's so cool. I like it when people dig their jobs.
About Scott
Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.
About Newsletter
I wasn't clear...I'll update the post.
Wesabe does not allow for input of cash transactions.
I have e-mailed them directly and indicated that I would be willing to swear off Quicken and provide them a monthly fee (rather than the annual Quicken update) if only they would let me punch in my cash transactions. That was 3 months ago, they have not responded, so I can safely assume that this is still the case.
But hey, great idea, really neat cutting-edge website, but they're really missing something pretty basic. They can't understand that people still do things that are not electronically traceable. What good are my "Grocery" reports if I paid for some of my groceries in cash? How can I "balance" my chequebook if I don't get any data until in the cheque clears? These are pretty fundamental use cases.
Actually, maybe it would be good if Google bought them, then maybe they'd fill in the gaps. But I wouldn't count on it, Google Spreadsheets was available for months without a chart feature and when the chart feature came it didn't have y-axis scaling ('cause that's not important OR easy to implement).
It's the API that excites me, not the consumer facing part of Wesabe. Until web apps can become *faster* than their desktop counterparts they don't much interest me, unless they're something that actually benifits from being connected, such as highrise or basecamp.
Gates VP, we do in fact allow you to add cash transactions by hand. I wrote about our addition of the feature here: http://blog.wesabe.com/index.php/2007/06/09/new-feature-cash-accounts/
I agree that this was a gap in what we offer, and that there are others. We're adding features often, and we try to do them roughly in the order requested.
I'm sorry that you never got a response to the support email. We fell behind in support email for a while, but we now have a full-time user advocate/support/documentation person, who's been keeping up with responses and clearing out the backlog.
Eddie, I also agree about loans and investment accounts, and we'll add those as soon as possible.
Shawn, I'm glad to hear that the API is worthwhile. If there are more methods or other features you'd like for the API, please let us know.
Thanks to all for the great comments.
Marc Hedlund
Wesabe
I'm another who'd love to be added to the google code project: username=toddwprice
I thought about creating my own app for managing my finances (having tried Money, Quicken, and Mvelopes) but this exact piece was missing.
I would like to be added to the google code project
username: brandonkilheffer
I started exploring wesabe over the weekend and so far I have been impressed.
user: mikepmunroe -at- gmail
Can you please tell me how you managed this diagram in Paint.NET. I am toying with it for the first time and can neither find a tool or plugin that will allow me to create such a sweet diagram. I would love to replace Visio but can only guess that such objects are not available through Paint.Net....Am I crazy?
Thanks for the info Scott
Comments are closed.