Is there an API to get bank transaction and bank balance? [closed]
Asked Answered
B

3

182

I'm using CHASE bank. (Also Bank of America) and I want to get my bank transactions and my balance if I can. Is there an API for that? in PHP or JAVA? If so, please let me know how to get them.

Blatman answered 1/9, 2011 at 11:31 Comment(6)
I doubt your bank exposes an API to their financial data, but if you want to be sure, ask them.Idiopathy
It's actually quite common. Most companies get their financial statements electronically, not on paper.Lode
Getting data electronically does not automatically mean there is an API. Also read this threadIdiopathy
Point taken, should have added unlikely to be open to individuals.Idiopathy
plaid.com/docs/#long-tail-institutionsZipporah
old question, that I think hasn't been answered properly yet. I stumbled upon teller.io that might provide a solution, unclear about their cost yet.Postoperative
D
128

Just a helpful hint, there is a company called Yodlee.com who provides this data. They do charge for the API. Companies like Mint.com use this API to gather bank and financial account data.

Also, checkout https://plaid.com/, they are a similar company Yodlee.com and provide both authentication API for several banks and REST-based transaction fetching endpoints.

Drucill answered 5/10, 2011 at 14:9 Comment(13)
Thanks, i was interested in how apps like mint and pageonce do it. Anyone know if there is anything free to chase. I want to create an open source app. So paying for an api would not be an optionFranglais
You could tell the users that the project requires that they pay for their own API license. That's completely understandable.Annal
It's better if you can do it for free and keep the service free as well if you're wanting to go the open source route. Mint provides free service by using your financial data to allow banks to target you with ads. I think the answer left by user1319829, below, is the best approach. Did you end up finding a working solution for yourself (OP) and if so, what'd you do?Cluff
I spoke with yodlee over the phone. Alot of their "APIs" are just worker processes they run in the background that screen scrapes your bank data. This is why some accounts on Mint are unreliable. The rep also mentioned that Mint no longer uses Yodlee and they switched to a proprietary software that intuit developed. Also, the startup cost for yodlee is $10,000 dollars a year. Not very afforable if you are trying to build an application for yourself. I suggest writing your own screen scaper and making an API out of that data collected, or use the CSV export the bank provides.Tearful
You can get access to their API as an indy dev. solutions.yodlee.com/APIDeveloperInquiryForm.htmlCabbage
Synapse seems to be offering this as well: synapsepay.com/productPeloquin
I'm really not down with passing off my banking credentials to a third-party service provider. Banks need to get with the program and offer read-only API keys for specific accounts.Quarter
@glebot, wow you get them to share that, cool.Avent
By screen scraper, you mean an app that goes to the webpage, logs in, and gets the data, then shows it to you in your app?Inseverable
Any best replacement for PLAID? Pls suggest....Valente
teller.io is also an alternate product which in many ways is better than Plaid.Hayrack
is mint.com plaid.com supports indian banks?Twentyfourmo
This is a neat BoA web-scraper from github: github.com/eshaffer321/BankofAmerica-Web-ScraperMarceline
J
107

I use GNU Cash and it uses Open Financial Exchange (ofx) http://www.ofx.net/ to download complete transactions and balances from each account of each bank.

Let me emphasize that again, you get a huge list of transactions with OFX into the GNU Cash. Depending on the account type these transactions can be very detailed description of your transactions (purchases+paycheques), investments, interests, etc.

In my case, even though I have Chase debit card I had to choose Chase Credit to make it work. But Chase wants you to enable this OFX feature by logging into your online banking and enable Quicken/MS Money/etc. somewhere in your profile or preferences. Don't call Chase customer support because they know nothing about it.

This service for OFX and GNU Cash is free. I have heard that they charge $10 a month for other platforms.

OFX can download transactions from 348 banks so far. http://www.ofxhome.com/index.php/home/directory

Actualy, OFX also supports making bill payments, stop a check, intrabank and interbank transfers etc. It is quite extensive. See it here: http://ofx.net/AboutOFX/ServicesSupported.aspx

Jackjackadandy answered 22/10, 2012 at 3:58 Comment(6)
I have code that used to work with Chase, but I just pulled it out of mothballs yesterday and while it works will all my other financial institutions it no longer works with Chase for some odd reason (just returns an unspecified error, doesn't even get OFX XML back...)Sorehead
For future visitors trying to connect with GnuCash, I found some answers to new issues. 1. You have to edit the 'header version' from 102 to 103. 2. It is probably necessary to enter a Client UID along with your username. This can be a GUID without the dashes. 3. GnuCash does not provide you the error message that goes along with the error code 200 for signon (followed by 15500 'not signed in'). It says you need to check Chase's Secure Message Center to confirm the app.Habitant
George Baily's answer proved to be the most helpful. Basically, certain banks (Chase included) provide an endpoint that you can use to download your banking information using a simple XML-like protocol called OFX. There are a few python etc libraries that wrap this communication for you. The one that ended up working for me was 'ofx-ba-tfb.py' (just google for it) after I added CLIENTUID to the sign-on section, changed protocol from 102 to 103, and authorized my client in 'Secure Messages' after the first run of the script, but I'm sure there are more libs like ofxclient etc.Erikaerikson
@Erikaerikson Any chance you can share the Chase code that works for you in a gist or something? I am confused about where to add the CLIENTUID in ofx-ba-tfb.pyGoldagoldarina
@Erikaerikson nevermind. I figured it out. Ultimately though I started using ofxclient and was successfully able to pull my Chase cc data. This thread helped a lot in making the chase CLIENTUID process work with ofxclient: github.com/captin411/ofxclient/issues/19Goldagoldarina
@Goldagoldarina Glad it worked for you. For other who might be reading this thread - ofx-ba-tfb comes with a file called client.py. That file had a bunch of sections that generate headers for the communication.CLIENTUID needs to be added to the headers in the function called '_signOn'. 102 should be changed to 103 in the function called '_header'.Erikaerikson
F
14

Also check out the open financial exchange (ofx) http://www.ofx.net/

This is what apps like quicken, ms money etc use.

Franglais answered 24/1, 2012 at 16:59 Comment(3)
That is not an API to retrieve bank transactions and balances. It's a format that one can use for banking transaction (presentation layer) but not for pulling banking transactions.Apologia
Im not saying its an api, but i researched the topic before, and there were very few viable options. my research led me to ofx.net as a possible solution to my problem, as expanded on by user1319829Franglais
This is an old answer, but just to clarify, the OFX Specification documents the file format (as Buhake says) but also a network protocol for clients to interact with an OFX server. OFX4J is a free implementation of both, for instance.Midstream

© 2022 - 2024 — McMap. All rights reserved.