Overview of Bank Data APIs

Companies of all shapes and sizes have been built using bank transaction data, including Mint, Wisely, LevelMoney. I recently researched a number of Bank Data APIs, which allow thirdparty services to request bank transaction data from their users. The services I looked into were Yodlee, Intuit and Plaid, each utilizing some combination of direct bank access and bank website scraping to gather transaction data. While not a comprehensive report, here’s an overview of what I found.

The Data
At its core, the data provided by each API is very similar, although some go the extra mile to categorize transactions and in Plaid’s case confirm the exact location of a transaction (coupled with a nice feature of providing the Factual id of the merchant). The most important data fields you’ll certainly receive are:

  • Date
    The posted date of the transaction, unfortunately this means it may be the day after, or in some cases several days after when the transaction actually occured. Note, you won’t receive the “time of day”.
  • Amount
  • Descriptor
    String of text, usually set by merchant that identifies the transaction. one such descriptor I received for a local business was “ARTESANO SAN FRANCISCO, CA #000”

The Connection
Prior to accessing bank transaction data, some form of the following connection dance will be required between end-user, thirdparty service and bank data API.


*MFA = Multi-Factor Authentication, some banks will require a user to provide more than just their username and password (e.g. answer to a secret question).

Established in 1999, Yodlee is the longest running Bank Data API that I found and offers support for the largest number of financial institutions (“99% of banks in the US”). Many banks actually use Yodlee to power financial management products, providing Yodlee with direct access to data, versus having to scrap the data from banking websites.

Yodlee provides two types of APIs, Aggregation API for accessing bank data and Instant Account Verification API for quickly verifying that a user is in fact the owner of a bank account they specified, thus speeding up a companies ability to send a user money.

  • Development Access
    Free for 30 days after signing up here. A key limitation is that on the development account is that you can’t add additional “members” (Yodlee lingo), meaning you have to connect banks to one of the 5 test users/members they configure for you. In practice this means you can only tracks transactions for five different people and are unable to call the “add member” endpoint.
  • Documentation
    Poor. Prepare to be frustrated since the naming and terminology used is confusing (e.g. “site” and “container” are two key ambiguous terms). The “Test Drive” feature can get you out of trouble if you dig into the request and response data and looking at source of sample apps is key.
  • Bank (Financial Institution) Coverage
    Excellent. It’s actually almost too good, duplication can be a problem (several departments of “well fargo” listed separately for example). Non US banks supported, although I didn’t evaluate that coverage in depth.
  • Pricing
    Expensive (prepare to negotiate). Contracts are made up of three parts, initiation fee (list of ~$5k), usage ($0.70 per connected account per month, comes down with volume) and monthly minimums. Shortest term to hope for is 1 year.
  • Production Access
    Involved. Definitely going to require a number of phone calls.

Needs no introduction, well known for it’s Quicken services and acquired Mint years ago. The API most relevant to this article is the Customer Account Data API. Didn’t spend as much time evaluating Intuit APIs due to testing challenges, which may be indicative of integration challenges.

  • Development Access
    Open registration although more involved than Yodlee.
  • Documentation
    Poor. They provide an API Explorer but it failed to work when I was testing, Intuit were aware of the problem but no movement on a fix.
  • Bank (Financial Institution) Coverage
    Excellent, appears to be very similar to Yodlee but merits more investigation.
  • Pricing
    $1000 monthly minimum appears to be standard, pricing based on usage (number of connected accounts) and additional categorization can be requested. This categorization allegedly makes it easier to understand user spending. Pricing summary here.
  • Production Access
    Allude to a thorough audit of implementation being required. No information on how involved this really is.

The newest player in the space and as of this writing still in private beta. One could think of Plaid as the Stripe of Bank Data APIs, as in they are trying to drastically improve the state of APIs in the space. Plaid staff were very friendly and helpful and their site is a joy to reference compared to Yodlee and Intuit. Plaid’s newness can be seen in their financial institution coverage numbers but hopefully they can continue to improve on that front.

  • Development Access
    Private beta so email requesting access required.
  • Documentation
    Excellent. Breath of fresh air compared to Yodlee and Intuit.
  • Bank (Financial Institution) Coverage
    As of writing 7 banks supported, although they are larger US banks. Full list can be retrieved here (call working as of writing).
  • Pricing
    Still in private beta but by all accounts it should be very competitive. I suspect it’ll be completely volume based without the annoying contract terms or minimums.
  • Production Access
    Still in private beta but imagine it’ll be more straight forward than existing players.

Parting Thoughts
It’s encouraging to see innovation happening when it comes to accessing bank data but magically customer experiences remain difficult. The connection dance can be complicated for an end user and if bank credentials change, the end user will have to reconnect their financial institutions (perhaps good for security).

It appears that direct access to Visa, Mastercard and American Express is possible for more established players and that may be the correct path forward, I haven’t found specifics on that type of integration but one would hope it would provide more real time data.

I hope this reports proves helpful and please feel free to contact me if you’d like to discuss anything further.

The elegant art of not giving a shit →

Funny and accurate read:

"Giving a shit does not necessarily mean you’re doing anything useful, but it makes it seem like you are. It feels like there’s some kind of justice that you’re getting closer to with every moment you give a shit. But that’s not true, because giving a shit, by itself, is only thinking — and thinking has little use aside from figuring out what to do.”

Thanks for sharing moustache

Fantastic day laying hardwood floors with http://tbyrneconstruction.com. Audio entertainment was listening to Ireland beat France to win the Six Nations.

Helped put up new stairs and prepare for new wall on latest http://tbyrneconstruction.com job site. Perfect Saturday morning with my brother.

2013: Lived in New York, Berlin and returned to San Francisco. Learned to appreciate just how good hobo life is. Started an amazing new adventure with Crowdtilt. Roll on 2014…

Happy Christmas Everyone!

Great start to weekend, my magician general contractor brother mounted a TV and installed a custom made floating shelf for me. End product is amazing (even hid Apple TV using velcro). http://tbyrneconstruction.com for all your construction needs :)

Genius. Every Crowdtilt meeting room has a 30 minute hourglass, efficient meetings live here.

Great run to start Thanksgiving.

Fantastic time watching the Seahawks win today. Great to catch up with so many friends.