It's a nice system in PHP. There are quite a few of them. Like ledger-cli [1] in C++ and emacs lisp, hledger [2] in Haskell and beancount [3] with fava [4] in python.

We used ledger-cli and beancount with fava and built automatic creation of accounting entries using machine learning and Bayesian alogrithms by analyzing bank and credit card statements. You can use powerful icsv2ledger [5], smart importer [6] and the awesome list [7] to get importers for various banks and other utilities.

[1] https://www.ledger-cli.org/

[2] https://hledger.org/

[3] http://furius.ca/beancount/

[4] https://beancount.github.io/fava/

[5] https://github.com/quentinsf/icsv2ledger

[6] https://github.com/beancount/smart_importer/blob/master/READ...

[7] https://github.com/siddhantgoel/awesome-beancount/blob/maste...

Note: corrected the entry for ledger-cli, its primarily written in C++ with some emacs lisp scripts.

I use and love ledger-cli but importing/downloading bank data is the biggest pain point.

I'm currently using ledger-autosync (https://github.com/egh/ledger-autosync) to import OFX/QFX files. For some banks it can automatically pull the data using ofxclient (https://github.com/captin411/ofxclient) but for most of my bank accounts this is broken and I need to manually download the OFX file before importing with ledger-autosync. It works OK, I wish I didn't have to do the manual download, but the simplicity of the setup is nice.

I've read of other setups using Plaid or Puppeteer to download their data. Would be interested to hear about what other people are currently using in mid-late 2019 to pull their financial data.