Skip to main content

Library for working with Open Financial Exchange (OFX) formatted data used by financial institutions

Project description

ofxtools

Description

ofxtools is a Python library for working with Open Financial Exchange (OFX)
data - both OFXv1 (SGML) and OFXv2 (pure XML) - which is the standard format
for downloading financial information from banks and stockbrokers.
ofxtools is compatible with Python version 2.7+ and 3.1+.
It depends on Requests

The primary facilities provided include:

  • The OFXClient class; which dowloads OFX statements from the Internet

  • The OFXTree class; which parses OFX data into a standard ElementTree structure for further processing in Python.

  • The OFXResponse class; which validates and converts OFX data parsed by OFXParser into Python types and exposes them through more Pythonic attribute access (e.g. OFXResponse.statements[0].ledgerbal).

Installation

Use the Python user installation scheme:

python setup.py install --user
In addition to the Python package, this will also install a script ofxget
in ~/.local/bin, and its sample configuration file in ~/.config/ofxtools.

Basic Usage to Download OFX

  • Copy ~/.config/ofxtools/ofxget_example.cfg to ~/.config/ofxtools/ofxget.cfg and edit:

  • Add a section for your financial institution, including URL, account information, login, etc.

  • See comments within.

  • Execute ofxget with appropriate arguments, for example:

ofxget amex stmt -s 20140101 -e 20140630 > foobar.ofx

See the --help for explanation of the script options.

Parser Usage Example

>>> from ofxtools import OFXTree
>>> tree = OFXTree()
>>> tree.parse('stmtrs.ofx')
>>> response = tree.convert()
>>> response
<OFXResponse fid='1001' org='NCH' dtserver='2005-10-29 10:10:03' len(statements)=1 len(securities)=0>
>>> stmt = response.statements[0]
>>> stmt
<BankStatement account=<BANKACCTFROM acctid='999988' accttype='CHECKING' bankid='121099999'> currency=USD ledgerbal=<LEDGERBAL balamt='200.29' dtasof='2005-10-29 11:20:00'> availbal=<AVAILBAL balamt='200.29' dtasof='2005-10-29 11:20:00'> len(other_balances)=0 len(transactions)=2>
>>> stmt.transactions[-1]
<STMTTRN dtposted='2005-10-20 00:00:00' trntype='ATM' trnamt='-300.00' fitid='00003' dtuser='2005-10-20 00:00:00'>

Contributing

If you want to contribute with this project, create a virtualenv and install
all development requirements:
virtualenv .venv
source .venv/bin/activate
pip install -r requirements-development.txt

Then, run the tests with make:

make test

Or directly with nosetests:

nosetests -dsv --with-yanc --with-coverage --cover-package ofxtools

Feel free to create pull requests on ofxtools repository on GitHub.

Download files

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

Source Distribution

ofxtools-0.4.1.tar.gz (54.8 kB view details)

Uploaded Source

File details

Details for the file ofxtools-0.4.1.tar.gz.

File metadata

  • Download URL: ofxtools-0.4.1.tar.gz
  • Upload date:
  • Size: 54.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for ofxtools-0.4.1.tar.gz
Algorithm Hash digest
SHA256 9d004619d864c6adfbafbbb91f5e14a9d558865461d765817483bb543ce20839
MD5 99d1e89d7b7ec156fe5abc4dec1f718d
BLAKE2b-256 36583324cdb5c85f05def511d707532b8d123172428053f96073d20f63152af9

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