Giter Site home page Giter Site logo

ofxtools's Introduction

Open Financial Exchange (OFX) Tools for Python

CI tests status https://coveralls.io/repos/github/csingley/ofxtools/badge.svg?branch=master

ofxtools is a Python library for working with Open Financial Exchange (OFX) data - the standard format for downloading financial information from banks and stockbrokers. OFX data is widely provided by financial institutions so that their customers can import transactions into financial management software such as Quicken, Microsoft Money, or GnuCash.

If you want to download your transaction data outside of one of these programs - if you wish to develop a Python application to use this data - if you need to generate your own OFX-formatted data... ofxtools is for you!

What is it?

ofxtools requests, consumes and produces both OFXv1 (SGML) and OFXv2 (XML) formats. It converts serialized markup to/from native Python objects of the appropriate data type, while preserving structure. It also handles Quicken's QFX format, although it ignores Intuit's proprietary extension tags.

In a nutshell, ofxtools makes it simple to get OFX data and extract it, or export your data in OFX format.

ofxtools takes a comprehensive, standards-based approach to processing OFX. It targets compliance with the OFX specification, specifically OFX versions 1.6 and 2.03.

ofxtools Coverage of the OFX Specification
  • Section 7 (financial institution profile)
  • Section 8 (service activation; account information)
  • Section 9 (email over OFX)
  • Section 10 (recurring bank transfers)
  • Section 11 (banking)
  • Section 12 (bill pay)
  • Section 13 (investments)

This should cover the great majority of real-world OFX use cases. A particular focus of ofxtools is full support of the OFX investment message set, which has been somewhat neglected by the Python community.

The major item remaining on the ofxtools "to do" list is to implement the tax schemas. It's currently a low priority to implement Section 14 (bill presentment) or the extensions contained in OFX versions beyond 2.03, but you're welcome to contribute code if you need these.

Some care has been taken with the data model to make it easily maintainable and extensible. The ofxtools.models subpackage contains simple, direct translations of the relevant sections of the OFX specification. Using existing models as templates, it's quite straightforward to define new models and cover more of the spec as needed (the odd corner case notwithstanding).

More than 10 years' worth of OFX data from various financial institutions has been run through the ofxtools parser, with the results checked. Test coverage is high.

Where is it?

Full documentation is available at Read the Docs.

For ease of installation, ofxtools is released on PyPI.

Development of ofxtools is centralized at GitHub, where you will find a bug tracker.

Installation Dependencies

ofxtools requires Python version 3.8+, and depends only on the standard libary (no external dependencies).

NOTE: As of version 0.6, ofxtools no longer supports Python version 2, which went EOL 2020-01-01.

ofxtools's People

Contributors

csingley avatar rianhunter avatar turicas avatar aclindsa avatar fergbrain avatar euresti avatar stoklund avatar polarmutex avatar karlinde avatar redstreet avatar camillehuot avatar zburatorul avatar entpyle avatar p-laf avatar cloudydata avatar danweiss90 avatar mvbentes avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.