Skip to main content

Tool to convert proprietary bank statement to OFX format, suitable for importing to GnuCash

Project description

https://github.com/kedder/ofxstatement/actions/workflows/test.yml/badge.svg?branch=master https://coveralls.io/repos/kedder/ofxstatement/badge.png?branch=master http://www.mypy-lang.org/static/mypy_badge.svg https://img.shields.io/badge/code%20style-black-000000.svg

Ofxstatement is a tool to convert proprietary bank statements to OFX format, suitable for importing into personal accounting systems like GnuCash or homebank. This package provides a command line tool to run: ofxstatement. Run ofxstatement -h for more help. ofxstatement works under Python 3 and is not compatible with Python 2.

Rationale

Most internet banking systems are capable of exporting account transactions to some sort of computer readable format, but few support standard data formats, like OFX. On the other hand, personal accounting systems such as GnuCash support standard formats only, and will probably never support proprietary statement formats of online banking systems.

To bridge the gap between them, this ofxstatement tool was created.

Mode of Operation

The ofxstatement tool is intended to be used in the following workflow:

  1. At the end of each month, use your online banking service to export statements from all of your bank accounts in a format known to ofxstatement.

  2. Run ofxstatement on each exported file to convert it to OFX. Shell scripts or a Makefile may help to automate this routine.

  3. Import the generated OFX file into your personal accounting system.

Installation and Usage

Before using ofxstatement, you have to install a plugin for your bank (or write your own!). Plugins are installed as regular python packages, with easy_install or pip, for example:

$ pip3 install ofxstatement-lithuanian

Note that ofxstatement itself will be installed automatically this way. After the installation, the ofxstatement utility will be available.

Users of Ubuntu and Debian operating systems can install ofxstatement from official package repositories:

$ apt install ofxstatement ofxstatement-plugins

You can check that ofxstatement is working by running:

$ ofxstatement list-plugins

You should get a list of your installed plugins.

After installation, the usage is simple:

$ ofxstatement convert -t <plugin> bank_statement.csv statement.ofx

The resulting statement.ofx is then ready to be imported into a personal accounting system.

Known Plugins

There are several user-developed plugins available:

Plugin

Description

ofxstatement-mt940

Swift MT940 statements

ofxstatement-iso20022

Generic ISO-20022 format

ofxstatement-paypal-2

PayPal, *.csv for private accounts

ofxstatement-transferwise

Transferwise CSV (international)

ofxstatement-nordigen

Plugin for GoCardless and Nordigen data parsing

ofxstatement-lithuanian

Plugins for several banks, operating in Lithuania: Swedbank, Danske and common Lithuanian exchange format - LITAS-ESIS.

ofxstatement-czech

Plugin for Poštovní spořitelna (maxibps) and banks using GPC format (e.g., FIO banka, module gpc).

ofxstatement-airbankcz

Plugin for Air Bank a.s. (Czech Republic)

ofxstatement-raiffeisencz

Plugin for Raiffeisenbank a.s. (Czech Republic)

ofxstatement-skippaycz

Plugin for Skip Pay s.r.o. (Czech Republic)

ofxstatement-unicreditcz

Plugin for UniCredit Bank Czech Republic and Slovakia

ofxstatement-equabankcz

Plugin for Equa Bank a.s. (Czech Republic)

ofxstatement-cz-komercni

Komerční banka (Czech Republic)

ofxstatement-mbankcz

mBank S.A. (Czech Republic)

ofxstatement-partnersbankacz

Partners Banka, a.s. (Czech Republic)

ofxstatement-otp

Plugin for OTP Bank, operating in Hungary

ofxstatement-bubbas

Set of plugins, developed by @bubbas: dkb_cc and lbbamazon.

banking.statements.osuuspankki

Finnish Osuuspankki bank

banking.statements.nordea

Nordea bank (at least Finnish branch of it)

ofxstatement-seb

SEB (Sweden), it parses Export.xlsx for private accounts

ofxstatement-lansforsakringar

Länsförsäkringar (Sweden), it parses Kontoutdrag.xls for private accounts

ofxstatement-be-belfius

Belfius (Belgium)

ofxstatement-be-keytrade

KeytradeBank (Belgium)

ofxstatement-be-ing

ING (Belgium)

ofxstatement-be-kbc

KBC (Belgium)

ofxstatement-be-argenta

Argenta (Belgium) (by @woutbr)

ofxstatement-be-argenta-nick

Argenta (Belgium, also supports french version) (fork by @Nick-DT)

ofxstatement-be-crelan

Crelan (Belgium)

ofxstatement-be-triodos

Belgian Triodos Bank CSV statements

ofxstatement-be-newb

Belgian cooperative bank newB

ofxstatement-be-vdk-fr

VDK (Belgium, French statements)

ofxstatement-be-hellobank-fr

Hello Bank (Belgium, French statements)

ofxstatement-germany

Plugin for several german banks (1822direkt and Postbank at the moment)

ofxstatement-dab

DAB Bank (Germany)

ofxstatement-consors

Consorsbank (Germany)

ofxstatement-de-triodos

German Triodos Bank CSV statements (also works for GLS Bank)

ofxstatement-sp-freiburg

Sparkasse Freiburg-Nördlicher Breisgau (Germany)

ofxstatement-de-ing

Ing Diba Bank (Germany)

ofxstatement-mastercard-de

Mastercard PDF statements (Germany)

ofxstatement-sparkasse-de

Sparkasse PDF statements (Germany)

ofxstatement-austrian

Plugins for several banks, operating in Austria: Easybank, ING-Diba, Livebank, Raiffeisenbank.

ofxstatement-postfinance

Swiss PostFinance (E-Finance Java text based bank/credit statements).

ofxstatement-fineco

FinecoBank (Italy)

ofxstatement-intesasp

Intesa San Paolo xlsx balance file (Italy)

ofxstatement-chebanca

CheBanca! xlsx format (Italy)

ofxstatement-n26

N26 Bank (Italy)

ofxstatement-it-banks

Widiba and Webank (Italy)

ofxstatement-bancoposta

BancoPosta - Poste Italiane (Italy)

ofxstatement-hype

Hype - Banca Sella (Italy)

ofxstatement-betterment

Betterment (USA)

ofxstatement-simple

Simple (USA, defunct) JSON financial statement format

ofxstatement-mbank-sk

MBank.sk (Slovakia)

ofxstatement-latvian

Latvian banks

ofxstatement-ee-seb

SEB (Estonia), parses proprietary csv file

ofxstatement-ee-swedbank

Swedbank (Estonia), parses proprietary csv file

ofxstatement-polish

Support for some Polish banks and financial institutions

ofxstatement-russian

Support for several Russian banks: Avangard, AlfaBank, Tinkoff, SberBank (both debit and csv), VTB.

ofxstatement-is-arionbanki

Arion bank (Iceland)

ofxstatement-revolut

Revolut Mastercard

ofxstatement-al_bank

Arbejdernes Landsbank (Denmark)

ofxstatement-cd-tmb

Trust Merchant Bank (DRC)

ofxstatement-zm-stanbic

Stanbic Bank (Zambia)

ofxstatement-dutch

Dutch financial institutes like ICSCards and ING

ofxstatement-french

French financial institutes like BanquePopulaire

ofxstatement-schwab-json

Charles Schwab investment history JSON export

ofxstatement-bbva

BBVA (Spain)

ofxstatement-qif

Converts Quicken Interchange Format (QIF) formatted bank transaction files

ofxstatement-santander

Converts Santander transaction files

ofxstatement-santander-es

Converts Santander ES transaction files

Advanced Configuration

While ofxstatement can be used without any configuration, some plugins may accept additional configuration parameters. These parameters can be specified in a configuration file. The configuration file can be edited using the edit-config command that opens your favorite editor (defined by environment variable EDITOR or else the default for your platform) with the configuration file:

$ ofxstatement edit-config

The configuration file format is in the standard .ini format. The configuration is divided into sections that correspond to the --type command line parameter. Each section must provide a plugin option that points to one of the registered conversion plugins. Other parameters are plugin specific.

A sample configuration file:

[swedbank]
plugin = swedbank

[danske:usd]
plugin = litas-esis
charset = cp1257
currency = USD
account = LT123456789012345678

Such a configuration will let ofxstatement know about two statement file formats handled by the plugins swedbank and litas-esis. The litas-esis plugin will load statements using the cp1257 charset and set a custom currency and account number. This way, GnuCash will automatically associate the generated .ofx file with a particular GnuCash account.

To convert the proprietary CSV file danske.csv into the OFX file danske.ofx, run:

$ ofxstatement -t danske:usd danske.csv danske.ofx

Note that configuration parameters are plugin specific. See the plugin documentation for more info.

To use a custom configuration file, pass the -c / --config option:

$ ofxstatement convert -t pluginname -c /path/to/myconfig.ini input.csv output.ofx

Development / Testing

ofxstatemnt uses pipenv to manage the development environment and dependencies:

$ pip install pipenv
$ git clone https://github.com/<your_account>/ofxstatement.git
$ cd ofxstatement
$ pipenv sync --dev

And finally run the test suite:

$ pipenv shell
$ pytest

When satisfied, you may create a pull request.

Writing your own Plugin

If the plugin for your bank has not been developed yet (see Known plugins section above) you can easily write your own, provided you have some knowledge about the Python programming language. There is an ofxstatement-sample plugin project available that provides sample boilerplate and describes the plugin development process in detail.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ofxstatement-0.9.3.tar.gz (84.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ofxstatement-0.9.3-py3-none-any.whl (53.4 kB view details)

Uploaded Python 3

File details

Details for the file ofxstatement-0.9.3.tar.gz.

File metadata

  • Download URL: ofxstatement-0.9.3.tar.gz
  • Upload date:
  • Size: 84.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for ofxstatement-0.9.3.tar.gz
Algorithm Hash digest
SHA256 e56f0bdaad75057bc3e091d8983b7c61aa2f71a5e22afc8164ce5238e777a73e
MD5 a6dc173ea21e1526abaf24d487f6a440
BLAKE2b-256 2c0f57ed99ca5993c7551c99ff1f81b89236c60d9bdd8054e3119a6285828ef3

See more details on using hashes here.

File details

Details for the file ofxstatement-0.9.3-py3-none-any.whl.

File metadata

  • Download URL: ofxstatement-0.9.3-py3-none-any.whl
  • Upload date:
  • Size: 53.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for ofxstatement-0.9.3-py3-none-any.whl
Algorithm Hash digest
SHA256 092285583f5d1784ddccf1f1b8427ed39839ea67d76a7ea65ec0af52edfe9a59
MD5 8c26ec0dd52b13a690f06ff2febc48e7
BLAKE2b-256 ef0e59387b29b748330b8f5c5f80be35f0d11e4db60470c29490c94ba3d47807

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page