OFXStatement plugin for dutch financial institutions like DEGIRO, ICSCards, ING and KNAB.

ofx, banking, statement, beancount, degiro, ing, icscards, knab
pip install ofxstatement-dutch==1.3.2



This project provides custom ofxstatement plugins for these dutch financial institutions:

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.

Installation using Miniconda (minimal conda)

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

2. Start the Anaconda prompt

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.

3. Create an ofxstatement environment

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

5. Install Python in this environment

(ofxstatement) conda install python

6. Verify the location of pip

(ofxstatement) where pip

This should show something like C:\Users%USERNAME%\Miniconda3\envs\ofxstatement\Scripts\pip.exe

7. Install ofxstatement-dutch

(ofxstatement) pip install ofxstatement-dutch

8. (optional) Install the Poppler library

Only if you need to read PDF files (ICSCards for example):

(ofxstatement) conda install -c conda-forge poppler

9. Test the installation

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".

10. Launching ofxstatement

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.

Using pip

$ pip install ofxstatement-dutch

Development version from source

$ 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


Show installed plugins

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/)


DEGIRO trader platform

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

ING bank

Use something like this:

$ ofxstatement convert -t nl-ing <file>.csv <file>.ofx

KNAB Online Bank

Use something like this:

$ ofxstatement convert -t nl-knab <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):

plugin = nl-degiro
account_id = account1

plugin = nl-degiro
account_id = account2

Change history

See the Changelog (CHANGELOG.md).