Package: ofxstatement
Changes0.9.1 (2023-09-16)Make OFX output conform to DTD (#243).0.9.0 (2023-08-07)New-c(--config) option forconvertcommand, allows to specify the
configuration file to use (#235).Print the number of transactions in the output (#236).0.8.0 (2021-09-06)Support OFX CURRENCY and ORIGCURRENCY in statement lines. This allows plugins
to add information about transaction currency to generated OFX statements.Add--prettyflag toconvertcommand to produce nicely intented OFX files.0.7.1 (2020-09-14)Include PEP-561 marker into source code distribution0.7.0 (2020-09-13)Drop support for Python 3.4, 3.5, add support for Python 3.8Fixed naive end balance validation (#106)Modernize development environment (use pipenv, mypy, black)0.6.5 (2020-06-09)Added balance checks and improved generation of unique ids (#100, #104)0.6.4 (2020-03-04)Fix regression introduced in 0.6.3 -edit-configcommand stopped working.0.6.3 (2020-02-13)Fix config editing on Windows0.6.2 (2020-01-20)BetterEDITORenvironment variable handling foredit-configcommandSupport Python-3.7API: type of StatementLine.date_user (date when user initiated transaction)
will not be a string by default.API: More unique generated transaction ids (when one is not available from
the statement file)0.6.1 (2017-05-07)Fix installation problem on python-3.5 (#55)0.6.0 (2016-12-02)Support for specifying account information for each parsed satatement
line and translate it to BANKACCTTO aggregate in OFX.Command line option to display debugging information (--debug).Fix config file location for appdirs >= 1.3.00.5.0 (2013-11-03)Plugins are now registered via setuptools' entry-points mechanism. This
allows plugins to live in separate eggs and developed independently of
ofxstatement itself. Plugins are registered as 'ofxstatement' entry points
(#11).Command line interface changed:ofxstatementnow accepts "action"
parameter and few actions were added:ofxstatement convert: perform conversion to OFXofxstatement list-plugins: list available conversion pluginsofxstatement edit-config: launch default editor to edit configuration
fileofxstatement convertcan be run without any configuration. Plugin name
to use is specified using-t TYPEparameter in this case (#12).StatementLinesupports more attributes, translated to OFX (#13):refnum- translated to<REFNUM>in OFX.trntype- translated to<TRNTYPE>in OFX.OFX Statement.. image::https://github.com/kedder/ofxstatement/actions/workflows/test.yml/badge.svg?branch=master:target:https://github.com/kedder/ofxstatement/actions/workflows/test.yml.. image::https://coveralls.io/repos/kedder/ofxstatement/badge.png?branch=master:target:https://coveralls.io/r/kedder/ofxstatement?branch=master.. image::http://www.mypy-lang.org/static/mypy_badge.svg:target:http://mypy-lang.org/.. image::https://img.shields.io/badge/code%20style-black-000000.svg:target:https://github.com/psf/blackOfxstatement is a tool to convert proprietary bank statements to OFX format,
suitable for importing into personal accounting systems like GnuCash. This
package provides a command line tool to run:ofxstatement. Runofxstatement -hfor more help.ofxstatementworks under Python 3 and
is not compatible with Python 2.RationaleMost internet banking systems are capable of exporting account transactions to
some sort of computer readable format, but few support standard data formats,
likeOFX.  On the other hand, personal accounting systems such asGnuCashsupport 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... _GnuCash:http://gnucash.org/.. _OFX:http://en.wikipedia.org/wiki/Open_Financial_ExchangeMode of OperationTheofxstatementtool is intended to be used in the following workflow: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.Runofxstatementon each exported file to convert it to OFX.
Shell scripts or a Makefile may help to automate this routine.Import the generated OFX file into your personal accounting system.Installation and UsageBefore usingofxstatement, you have to install a plugin for your bank (or
write your own!). Plugins are installed as regular python eggs, with
easy_install or pip, for example::$ pip3 install ofxstatement-lithuanianNote that ofxstatement itself will be installed automatically this way. After
the installation, theofxstatementutility will be available.Users ofUbuntuandDebianoperating systems can install ofxstatement from
official package repositories::$ apt install ofxstatement ofxstatement-pluginsYou can check that ofxstatement is working by running::$ ofxstatement list-pluginsYou should get a list of your installed plugins.After installation, the usage is simple::$ ofxstatement convert -t  bank_statement.csv statement.ofxThe resultingstatement.ofxis then ready to be imported into a personal
accounting system.Development / testofxstatemntusespipenv_ to manage the development environment and
dependencies::$ pip install pipenv
$ git clonehttps://github.com/<your_account>/ofxstatement.git
$ cd ofxstatement
$ pipenv sync --dev.. _pipenv:https://github.com/pypa/pipenvAnd finally run the test suite::$ pipenv shell
$ pytestWhen satisfied, you may create a pull request.Known PluginsThere are several user-developed plugins available:================================= ============================================
Plugin                            Description
================================= ============================================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, modulegpc).ofxstatement-airbankcz_         Plugin for Air Bank a.s. (Czech Republic)ofxstatement-raiffeisencz_      Plugin for Raiffeisenbank a.s. (Czech Republic)ofxstatement-unicreditcz_       Plugin for UniCredit Bank Czech Republic and Slovakiaofxstatement-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-otp_               Plugin for OTP Bank, operating in Hungaryofxstatement-bubbas_            Set of plugins, developed by @bubbas:dkb_ccandlbbamazon.banking.statements.osuuspankki_ Finnish Osuuspankki bankbanking.statements.nordea_      Nordea bank (at least Finnish branch of it)ofxstatement-germany_           Plugin for several german banks (1822direkt and Postbank at the moment)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-mbank-sk_          MBank.skofxstatement-be-belfius_        Belfius (Belgium)ofxstatement-be-keytrade_       KeytradeBank (Belgium)ofxstatement-be-ing_            ING (Belgium)ofxstatement-be-kbc_            KBC (Belgium)ofxstatement-be-argenta_        Argenta (Belgium)ofxstatement-be-crelan_         Crelan (Belgium)ofxstatement-be-triodos_        Belgian Triodos Bank CSV statementsofxstatement-be-newb_           Belgian cooperative bank newBofxstatement-betterment_        Betterment (https://www.betterment.com/)ofxstatement-simple_            Simple (the bank,https://www.simple.com/) JSON financial statement formatofxstatement-latvian_           Latvian banksofxstatement-iso20022_          Support for generic ISO-20022 formatofxstatement-seb_               SEB (Sweden), it parses Export.xlsx for private accountsofxstatement-ee-seb_            SEB (Estonia), parses proprietary csv fileofxstatement-paypal_            PayPal, it parses*.csvfor private accountsofxstatement-polish_            Support for some Polish banks and financial institutionsofxstatement-russian_           Support for several Russian banks: Avangard, AlfaBank, Tinkoff, SberBank (both debit and csv), VTB.ofxstatement-dab_               DAB Bank (Germany)ofxstatement-consors_           Consorsbank (Germany)ofxstatement-is-arionbanki_     Arion bank in Icelandofxstatement-de-triodos_        German Triodos Bank CSV statements (also works for GLS Bank)ofxstatement-lansforsakringar_  Länsförsäkringar (Sweden), it parses Kontoutdrag.xls for private accountsofxstatement-revolut_           Revolut Mastercardofxstatement-transferwise_      Transferwise CSVofxstatement-n26_               N26 Bankofxstatement-sp-freiburg_       Sparkasse Freiburg-Nördlicher Breisgau (Germany)ofxstatement-al_bank_           Arbejdernes Landsbank (Denmark)ofxstatement-fineco_            FinecoBank (Italy)ofxstatement-intesasp_          Intesa San Paolo (xlsx balance file)ofxstatement-de-ing_            Ing Diba Bank (Germany)ofxstatement-us-first-republic_ First Republic Bank (USA)ofxstatement-cd-tmb_            Trust Merchant Bank (DRC)ofxstatement-zm-stanbic_        Stanbic Bank (Zambia)ofxstatement-dutch_             Dutch financial institutes like ICSCards and INGofxstatement-french_            French financial institutes like BanquePopulaireofxstatement-mt940_             All financial institutes providing Swift MT940 statementsofxstatement-it-banks_          Widiba and Webank italian banksofxstatement-chebanca_          CheBanca! Italian bank (xlsx format)
================================= ============================================.. _ofxstatement-lithuanian:https://github.com/kedder/ofxstatement-lithuanian.. _ofxstatement-czech:https://gitlab.com/mcepl/ofxstatement-czech.. _ofxstatement-airbankcz:https://github.com/milankni/ofxstatement-airbankcz.. _ofxstatement-raiffeisencz:https://github.com/milankni/ofxstatement-raiffeisencz.. _ofxstatement-unicreditcz:https://github.com/milankni/ofxstatement-unicreditcz.. _ofxstatement-equabankcz:https://github.com/kosciCZ/ofxstatement-equabankcz.. _ofxstatement-mbankcz:https://github.com/SinyaWeo/ofxstatement-mbankcz.. _ofxstatement-otp:https://github.com/abesto/ofxstatement-otp.. _ofxstatement-bubbas:https://github.com/bubbas/ofxstatement-bubbas.. _banking.statements.osuuspankki:https://github.com/koodaamo/banking.statements.osuuspankki.. _banking.statements.nordea:https://github.com/koodaamo/banking.statements.nordea.. _ofxstatement-germany:https://github.com/MirkoDziadzka/ofxstatement-germany.. _ofxstatement-austrian:https://github.com/nblock/ofxstatement-austrian.. _ofxstatement-postfinance:https://pypi.python.org/pypi/ofxstatement-postfinance.. _ofxstatement-mbank-sk:https://github.com/epitheton/ofxstatement-mbank-sk.. _ofxstatement-be-belfius:https://github.com/renardeau/ofxstatement-be-belfius.. _ofxstatement-be-keytrade:https://github.com/Scotchy49/ofxstatement-be-keytrade.. _ofxstatement-be-ing:https://github.com/jbbandos/ofxstatement-be-ing.. _ofxstatement-be-kbc:https://github.com/plenaerts/ofxstatement-be-kbc.. _ofxstatement-be-argenta:https://github.com/woutbr/ofxstatement-be-argenta.. _ofxstatement-be-crelan:https://gitlab.com/MagnificentMoustache/ofxstatement-be.crelan.. _ofxstatement-be-newb:https://github.com/SDaron/ofxstatement-be-newb.. _ofxstatement-betterment:https://github.com/cmayes/ofxstatement-betterment.. _ofxstatement-simple:https://github.com/cmayes/ofxstatement-simple.. _ofxstatement-latvian:https://github.com/gintsmurans/ofxstatement-latvian.. _ofxstatement-iso20022:https://github.com/kedder/ofxstatement-iso20022.. _ofxstatement-seb:https://github.com/gerasiov/ofxstatement-seb.. _ofxstatement-paypal:https://github.com/gerasiov/ofxstatement-paypal.. _ofxstatement-polish:https://github.com/yay6/ofxstatement-polish.. _ofxstatement-russian:https://github.com/gerasiov/ofxstatement-russian.. _ofxstatement-dab:https://github.com/JohannesKlug/ofxstatement-dab.. _ofxstatement-consors:https://github.com/JohannesKlug/ofxstatement-consors.. _ofxstatement-is-arionbanki:https://github.com/Dagur/ofxstatement-is-arionbanki.. _ofxstatement-be-triodos:https://github.com/renardeau/ofxstatement-be-triodos.. _ofxstatement-de-triodos:https://github.com/pianoslum/ofxstatement-de-triodos.. _ofxstatement-lansforsakringar:https://github.com/lbschenkel/ofxstatement-lansforsakringar.. _ofxstatement-revolut:https://github.com/mlaitinen/ofxstatement-revolut.. _ofxstatement-transferwise:https://github.com/kedder/ofxstatement-transferwise.. _ofxstatement-n26:https://github.com/3v1n0/ofxstatement-n26.. _ofxstatement-sp-freiburg:https://github.com/omarkohl/ofxstatement-sparkasse-freiburg.. _ofxstatement-al_bank:https://github.com/lbschenkel/ofxstatement-al_bank.. _ofxstatement-fineco:https://github.com/frankIT/ofxstatement-fineco.. _ofxstatement-intesasp:https://github.com/Jacotsu/ofxstatement-intesasp.. _ofxstatement-de-ing:https://github.com/fabolhak/ofxstatement-de-ing.. _ofxstatement-germany:https://github.com/MirkoDziadzka/ofxstatement-germany.. _ofxstatement-us-first-republic:https://github.com/medovina/ofxstatement-us-first-republic.. _ofxstatement-cz-komercni:https://github.com/medovina/ofxstatement-cz-komercni.. _ofxstatement-cd-tmb:https://github.com/BIZ4Africa/ofxstatement-cd-tmb.. _ofxstatement-zm-stanbic:https://github.com/BIZ4Africa/ofxstatement-zm-stanbic.. _ofxstatement-dutch:https://github.com/gpaulissen/ofxstatement-dutch.. _ofxstatement-french:https://github.com/gpaulissen/ofxstatement-french.. _ofxstatement-mt940:https://github.com/gpaulissen/ofxstatement-mt940.. _ofxstatement-it-banks:https://github.com/ecorini/ofxstatement-it-banks.. _ofxstatement-ee-seb:https://github.com/rsi2m/ofxstatement-ee-seb.. _ofxstatement-chebanca:https://github.com/3v1n0/ofxstatement-chebancaAdvanced ConfigurationWhile 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 theedit-configcommand that opens your favorite editor (defined by environment variable
EDITOR or else the default for your platform) with the configuration file::$ ofxstatement edit-configThe configuration file format is in the standard .ini format. The
configuration is divided into sections that correspond to the--typecommand line parameter. Each section must provide apluginoption 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 = LT123456789012345678Such a configuration will let ofxstatement know about two statement file
formats handled by the pluginsswedbankandlitas-esis. Thelitas-esisplugin will load statements using thecp1257charset 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 filedanske.csvinto the OFX filedanske.ofx, run::$ ofxstatement -t danske:usd danske.csv danske.ofxNote that configuration parameters are plugin specific. See the plugin
documentation for more info.To use a custom configuration file, pass the-c/--configoption::$ ofxstatement convert -t pluginname -c /path/to/myconfig.ini input.csv output.ofxWriting your own PluginIf the plugin for your bank has not been developed yet (seeKnown plugins_
section above) you can easily write your own, provided you have some knowledge
about the Python programming language. There is anofxstatement-sample_
plugin project available that provides sample boilerplate and describes the
plugin development process in detail... _ofxstatement-sample:https://github.com/kedder/ofxstatement-sample