Financial Aggregation Software

Worth checking https://teller.io for legacy banks (or just for inspiration)

Alas - using teller means that I’ll be giving security credentials to third parties. One of the key reasons for me to develop my application is to avoid doing that :slight_smile:.

1 Like

I can almost completely guarantee you that giving security credentials to a third party would be more secure than attempting to do it on your own.

2 Likes

Ben - would you mind explaining a little further? Passwords can be stored using standardised encryption (with the key itself encrypted using a password) - I’m sure many people on this forum use tools like KeePass to manage their unique passwords for each website. Online banking pages can be scraped over HTTPS - so this will be no less secure than a web browser (arguably it’ll be more secure - the user won’t be able to click “continue anyway”!). The plan is for all of this to happen on the users local machine - the only web requests will be to bank websites over HTTPS (and possibly to GitHub to check for updates - still thinking about it).

I’d definitely recommend you look at something like Electron, rather than using a Java applet.

1 Like

Will that work? My reason for using Java is because I get hit by CORS when scraping online banking using JavaScript - I’m assuming I’ll have the same issue with Electron?

How would this be different from, say, Moneyhub or similar existing services?

Simplifying slightly, but Electron would be to JavaScript what Swing is to Java i.e. a means of building your UI. Anything you could do with Node (think server-side code) you could do with Electron.

Probably best to go with whatever language you’re most familiar. I think scraping will be challenging whichever you choose. Using a headless browser might bring you more luck than simply trying to scrape HTML. I think Teller actually resorted to reverse-engineering the respective mobile apps because this was less fragile.

MoneyHub stores your security credentials in their database. If that database gets hacked you’re exposed to unlimited liability to fraud committed using your security credentials. I plan to encrypt your credentials (think KeePass - I don’t intend to roll my own crypto or anything crazy like that!) and keep them on your computer, only sharing them with your bank.

I’ve edited my OP to clarify my thoughts on tech stack - I certainly wasn’t going to develop my UI using swing! Basically the sole purpose of Java is to provide secure storage (handle encryption / decryption of credentials) and an API on localhost for legacy banks (whose online banking interfaces I’d need to scrape - I’ve run into CORS issues using pure JavaScript, but Python seems to work fine).

I don’t have too many concerns about scraping - I’ve managed it successfully using Python, and I think I’ll be able to port my code / logic over to another language fairly easily.

This sounds like YNAB (You Need A Budget) prior to them switching from a single-purchase locally run software model to a ‘cloud based’ subscription model. I still use YNAB 4 daily as my budgeting software across Windows and Android. At the moment, Transactions are entered either manually (for Mondo, which basically has no desktop presence at all at the moment) or for my other accounts by exporting transaction lists in a standard format.

If you’ve got some tech skills - the set up looks pretty simple - it might be worth checking out this app :eyes:

1 Like

I’ve got a compilers exam tomorrow so I’m not going to look at YNAB right now - but I suspect you’re right.

I intend for my application to automatically import data from online banking (by screen scraping - I’ve already had a fair degree of success) - so no more signing in and exporting as CSV.

I gave it a try, but it looks like its intended for the newer YNAB version: setup requires a username and password, which YNAB4 does not have, and following the ‘deploy guide’ just ends up with an error on Heroku and nothing happening on the YNAB end after adding the webhook to Monzo.

1 Like

Maybe look at importing the MiData format, as that is standardised across all UK banks.

Perhaps - although I imagine I’ll use CSV export, because the redaction of data from MiData limits the analysis opportunities.

It is designed for nYNAB yes. YNAB4 has no internet presence, so it’s impossible to integrate with it (other than just using a CSV)

1 Like

I thought it might be fiddling with the .budget file in Dropbox, but I guess not.

In the years that YNAB4 has been out, i dont think anyone has been able to work out a way to write to it. There are lots of libraries for reading, but none for writing.

HI, just trying to get this software working with the CA and YNAB. I think I almost have it, save of this error:

2017-11-12T17:03:48.866908+00:00 app[web.1]: ERROR:settings:Couldnt find this account: Monzo

I am assuming that the variable MONZO_YNAB_ACCOUNT is the name of the account within YNAB that the software looks to import into?

Any reason you can think off why this may be chucking out an error?