InsertNickHere
InsertNickHere

Reputation: 3666

Access own bank account via self-written application

I have used MS Money for several years now and due to my "coding interest" it would be great to know where to start learning the basics for programming such an application. Better to say: Its not about how to design and write an application, its about the "bank details". (Just displaying the amount of a certain bank account for the beginning would be a pleasant aim for me.).

I would like to do it in C++ or Java, since I'm used to these languages.

Will it be "too big" for a hobby project? I do not know much about all the security issues, the bank server interfaces/technique, etc.

At the first place after a "no" I need a reliable source for learning.

Upvotes: 8

Views: 13892

Answers (6)

trashgod
trashgod

Reputation: 205875

You might look into OFX4J, an implementation of the Open Financial Exchange specification, also discussed here.

Upvotes: 1

Elf King
Elf King

Reputation: 1183

The first thing to remember when trying to programmatically interact with a banking website without express written permission from the bank will MOST LIKELY be a violation of the website use agreement, and may land you in more trouble than it's worth.

Second, you DON'T want to start 'learning' programming by trying to tackle something that massive and sensitive. Not that there is anything wrong with the eventual goal, but that's a journey of a thousand leagues and you need to take your first step.

I would say start with a simple programming environment, like python, or perl. Reason, you don't have to worry about linking, libraries, code generation etc. Get used to the basics of what you want to achieve functionally, them reimplementing that in C++ or Java would be the next step.

To begin with focus on learning client-server programming.

Write a client, write a server, learn all about sockets, learn all about TCP programming,

then learning about secure socket layers (SSL) and transport layer security (TLS).

Once you've done this, try switching to C++ or Java and see if you can repeat the effect.

There are TONS of tutorials on these topics.

Once you have become used to that, learn what tools and libraries are already available to do most common things. For example libcurl is great for creating common internet application protocol clients (HTTP, HTTPS, FTP and the like).

See if you can create an interactive program that you can "log in to" using your web browser which outputs stuff in XML and formats it using cascading style sheets.

This should lead you into javascript world, where there are powerful tools such as jquery. If you mix and match these correctly, you will find that development can be a LOT of fun and quite rapid.

:-)

Happy journeying.

Upvotes: 2

Adam
Adam

Reputation: 3795

Are you looking for something mint.com-ish? From my understanding of their security policy this is how they do it: You give them your online account credentials which they give immediately to the bank and get back a "read-only" account login. They then throw away the credentials you provided and use "read-only" credentials to update your metrics every 24 hours. I don't know how they do this or if they have a special relationship with the banks, but it is possible.

Upvotes: 1

Viktor Sehr
Viktor Sehr

Reputation: 13119

I don't think many (if any) banks provides api's.

Online budget-apps in Sweden seem to rely either on exporting transactions in some excel format, or simply have you "mark all transacations in the banksystem, ctrl-c then ctrl-v in a textbox", which is then parses.

Upvotes: 0

G__
G__

Reputation: 7111

I think its quite a reasonable hobby project; start with a simple ledger and then you can add features.

A few things I would do to begin such a project:

  • Decide on an initial feature set. A good start might be just one of the ledgers/accounts - basically balancing a checkbook. Make this general enough that you can have several.
  • Design a data model. What fields will your ledger have? What restrictions on the values of each?
  • Choose technologies. What language do you want to program in? How will you persist the data? What GUI do you want - a fat client like MS money or a web app?

From there, write up some design notes if warranted and start coding!

Upvotes: 1

Angelo Genovese
Angelo Genovese

Reputation: 3398

Most of the apps I've worked with read in a file exported from the bank's website, which is relatively straight forward.

If that's the road you're looking to go down you'll need to write code to:

  • Login to the bank's website to download the file via HTTPS
  • Either get specs for the file format or reverse engineer it
  • Apply whatever business rules you choose to the resulting data

Upvotes: 9

Related Questions