This project provides custom ofxstatement plugins for these dutch financial institutions:
- DEGIRO trader platform, The Netherlands, CSV (https://www.degiro.nl/)
- ICSCards, The Netherlands, PDF (https://icscards.nl/)
- ING Bank, The Netherlands, CSV (https://www.ing.nl/)
- KNAB Online Bank, The Netherlands, CSV (https://www.knab.nl/)
- ASN Bank, The Netherlands, CSV (https://www.asnbank.nl/)
ofxstatement
is a tool to convert a proprietary bank statement to OFX
format, suitable for importing into programs like GnuCash or Beancount. The
plugin for ofxstatement parses the bank statement and produces a common data
structure, that is then formatted into an OFX file.
The PDF is converted using the pdftotext utility.
This is a quick start guide meant for users on a Windows 10 platform.
These are the steps:
1. Install Miniconda for Python 3.x
Type Anaconda in the search box next to the Windows Start icon in the bottom left of your screen and click the Anaconda Prompt (Miniconda3). A command line box will open now with (base) as the prompt.
In the command line box type "conda create -n ofxstatement":
(base) conda create -n ofxstatement
Please note that (base) is the command prompt, not a command to type.
4. Switch to the ofxstatement environment and show the installed packages (should be empty the first time)
(base) activate ofxstatement
(ofxstatement) conda list
(ofxstatement) conda install python
(ofxstatement) where pip
This should show something like C:\Users%USERNAME%\Miniconda3\envs\ofxstatement\Scripts\pip.exe
(ofxstatement) pip install ofxstatement-dutch
Only if you need to read PDF files (ICSCards for example):
(ofxstatement) conda install -c conda-forge poppler
Now a small test to see everything works if you have a KNAB CSV file:
(ofxstatement) ofxstatement convert -t nl-knab "<CSV file>" -
The dash (-) at the end of the command ensures that the OFX output will be sent to the terminal and not to a file. The double quotes are needed for files with spaces in its name like "Knab transactieoverzicht spaarrekening XXXXXXXX - 2020-01-01 - 2020-05-01.csv".
Please remember to always start the Anaconda prompt and to activate the ofxstatement environment first before launching ofxstatement itself, since it is only installed in that Conda environment.
You may create a shortcut to combine both. The target of your shortcut should be something like:
C:\Windows\System32\cmd.exe /k C:\Users\%USERNAME%\Miniconda3\condabin\activate.bat ofxstatement
Please continue with the "Usage" section below.
This section is meant for people who do not want to follow the "Installation using Miniconda (minimal conda)" section above.
For converting PDFs you have to install the poppler library first, see pdftotext.
$ pip install ofxstatement-dutch
$ git clone https://github.com/gpaulissen/ofxstatement-dutch.git
$ pip install -e .
This package depends on ofxstatement with a version at least 0.6.5. This version may not yet be available in PyPI so install that from source like this:
$ git clone https://github.com/gpaulissen/ofxstatement.git
$ pip install -e .
To run the tests from the development version you can use the py.test command:
$ py.test
You may need to install the required test packages first:
$ pip install -r test_requirements.txt
This shows the all installed plugins, not only those from this package:
$ ofxstatement list-plugins
You should see at least:
The following plugins are available:
...
nl-degiro DEGIRO trader platform, The Netherlands, CSV (https://www.degiro.nl/)
nl-icscards ICSCards, The Netherlands, PDF (https://icscards.nl/)
nl-ing ING Bank, The Netherlands, CSV (https://www.ing.nl/)
nl-knab KNAB Online Bank, The Netherlands, CSV (https://www.knab.nl/)
nl-asn ASN Bank, The Netherlands, CSV (https://www.asnbank.nl/)
...
The DEGIRO files do not only contain money statements but also the whole security transaction history. This tool just emits the money statements coming from or going to your associated (other) bank account. To be more specific the deposits (description like "Storting" or "iDEAL storting") and transfers ("Terugstorting"). Maybe in the future the security transaction will be emitted too, but currently ofxstatement only processes money information.
See also the section configuration below.
Use something like this:
$ ofxstatement convert -t <configuration name> <file>.csv <file>.ofx
Use something like this:
$ ofxstatement convert -t nl-icscards <file>.pdf <file>.ofx
Or you can convert the PDF yourself and supply the text as input:
$ pdftotext -layout <file>.pdf <file>.txt
$ ofxstatement convert -t nl-icscards <file>.txt <file>.ofx
Use something like this:
$ ofxstatement convert -t nl-ing <file>.csv <file>.ofx
Use something like this:
$ ofxstatement convert -t nl-knab <file>.csv <file>.ofx
Use something like this:
$ ofxstatement convert -t nl-asn <file>.csv <file>.ofx
For DEGIRO you need to set an account id, since the statement files do not contain account information.
$ ofxstatement edit-config
This is a sample configuration (do not forget to specify the plugin for each section):
[degiro:account1]
plugin = nl-degiro
account_id = account1
[degiro:account2]
plugin = nl-degiro
account_id = account2
See the Changelog (CHANGELOG.md).