gitwtfhub

wtf is enablebanking-to-ofx?

afwassysteem/enablebanking-to-ofx — explained in plain English

Analysis updated 2026-05-18

1PythonAudience · generalComplexity · 2/5Setup · moderate

TL;DR

A Python script that downloads your bank transactions through the Enable Banking API and converts them into OFX files ready to import into GnuCash.

Mindmap

mindmap
  root((Enablebanking-to-ofx))
    What it does
      Fetches bank transactions
      Writes OFX files
      Deduplicates imports
    Tech stack
      Python
      Enable Banking API
    Use cases
      Import into GnuCash
      Track PSD2 banks
      Migrate from GoCardless
    Audience
      Personal finance users
      GnuCash users

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Import transactions from any PSD2-connected European bank into GnuCash without manual entry.

REASON 2

Automatically deduplicate transactions across repeated runs so your books stay clean.

REASON 3

Migrate an existing setup from the older GoCardless version of this script to Enable Banking.

REASON 4

Run the tool in Dutch or English depending on your preference.

What's in the stack?

Python

How it stacks up

afwassysteem/enablebanking-to-ofx0xustaz/streamgatea-bissell/unleash-lite
Stars111
LanguagePythonPythonPython
Setup difficultymoderatehardhard
Complexity2/54/54/5
Audiencegeneraldeveloperresearcher

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · moderate Time to first run · 30min

Requires registering a free Enable Banking application and linking your bank accounts before the script can read them.

No license information is provided in the README.

Wtf does this do

This is a Python script that fetches your bank transactions through the Enable Banking API and writes them out as OFX files, a format that finance software such as GnuCash can import directly. It works with any bank connected through Enable Banking, which covers most European banks under PSD2 rules, and it comes with both Dutch and English instructions and menus. To get started you install the Python requirements, copy an example settings file, and then register a free application on the Enable Banking website. That registration gives you a private key file and an application ID, both of which go into your local settings. Because Enable Banking only allows an application to read accounts you have linked to it in advance, you also need to log into the Enable Banking control panel and link each bank account you want the script to read before running it. Once set up, running the script lets you pick a bank from a list of favorites or search for any supported bank by country. The first time you use a new bank, you log in through a link in your browser and paste the resulting URL back into the terminal, after which the connection is remembered locally so you will not need to repeat that step for around ninety days. The first import for an account pulls ninety days of history by default, and every run after that only fetches new transactions, checking transaction IDs so nothing gets imported twice. Finished files land in an output folder, one OFX file per account. The project also supports people migrating from an older version of the script that used a different provider called GoCardless, automatically backing up old connection data and asking you to relink each bank once. The README notes that PSD2 rules typically limit how often you can request account data, so the script should not be run too frequently, and that your settings file and private key contain sensitive information that should never be committed to version control. The full README is longer than what was shown.

Yoink these prompts

Prompt 1
Help me install this script and set up my .env file with an Enable Banking application ID and private key.
Prompt 2
Walk me through linking a bank account in the Enable Banking control panel so this script can read it.
Prompt 3
Explain how the deduplication and 90 day history import works in this project.
Prompt 4
Show me how to switch the script's language between Dutch and English.

Frequently asked questions

wtf is enablebanking-to-ofx?

A Python script that downloads your bank transactions through the Enable Banking API and converts them into OFX files ready to import into GnuCash.

What language is enablebanking-to-ofx written in?

Mainly Python. The stack also includes Python.

What license does enablebanking-to-ofx use?

No license information is provided in the README.

How hard is enablebanking-to-ofx to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is enablebanking-to-ofx for?

Mainly general.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.