jaraco.financial
================

.. contents::

Overview
--------

``jaraco.financial`` implements tools for financial management, particularly
around Open Financial Exchange and Microsoft Money. These scripts help
facilitate the continued use of Money using the free, sunset release, by
enabling mechanical downloads of OFX data from institutions that support OFX.

``jaraco.financial`` is written by Jason R. Coombs.  It is licensed under an
`MIT-style permissive license
<http://www.opensource.org/licenses/mit-license.php>`_.

You can install it with ``easy_install jaraco.financial``, or grab the code
from the `mercurial repository
<https://bitbucket.org/jaraco/jaraco.financial>`_.

Getting Started
---------------

The primary use of this package is the `ofx` command. After installing, run
`ofx --help` for usage. Before using the project, you will want to supply
institution and account information. See below for details on defining these
input files.

This project is still a work in progress, but if you think you might find
it useful, don't hesitate to contact the author for help.

Planned Changes
---------------

The author plans to add some of the following features:

* Integrate some of the most common institutions.

Accounts File
-------------

The "ofx download-all" command of `jaraco.financial` will retrieve the
OFX transactions in a batch for a group of accounts defined in a YAML file.
Currently, that file must be located in ~/Documents/Financial/accounts.yaml.
The file should be a list of objects,
each with `institution` and `account` attributes. It should also have a
`type` property of "checking", "savings", "creditline", or other appropriate
OFX type. The institution must match exactly an institution as defined below.
Here is an example accounts.yaml::

    - institution: Bank of America
      account: "12345679"
      type: savings

    - institution: Wells Fargo
      account: "872634126"
      type: moneymrkt

    - institution: Chase (credit card)
      account: "4000111122223333"
      username: myusername

The `username` attribute must be included if the username of the local user
(running the ofx command) differs from the account name on the account.

Institutions Definition
-----------------------

Institution definitions can be provided in a YAML format in the file
``~/Documents/Financial/institutions.yaml``. The following is an example
definition for a credit card::

    Chase (credit card):
      caps:
       - SIGNON
       - CCSTMT
      fid: "10898"
      fiorg: B1
      url: https://ofx.chase.com

To check that your institutions are being loaded correctly, use the
``ofx list-institutions`` command.

Changes
-------

1.5
~~~

* Added support for loading institutions from a YAML file (requires PyYAML
  to be installed.
* Added the ofx command list-institutions.

1.4
~~~

* Added support for launching downloaded ofx in money.
* Now validate downloaded OFX using ofxparse.
* Added --like parameter to download all to download a subset of accounts.

1.3
~~~

* Added routine for patching msmoney.exe for a bug revealed by Windows 8.

1.0
~~~

* `ofx` script now implements different commands. Where one called "ofx"
  before, now call "ofx query".
* Added new command "ofx download-all", which loads the accounts from a JSON
  file (~/Documents/Financial/accounts.json) and downloads transactions for
  the accounts listed in that file.
* Added command "record-document-hashes" for e-mailing record of the
  hashes of each document.

0.2
~~~

* Integrated OFX support based on scripts provided by Jeremy Jongsma. Includes
  ability to specify financial institutions as plugins and download OFX data
  via the command-line script `ofx`.
* Added keyring support, so credentials for financial institutions are stored
  securely within the Windows Vault.
* Added command to clean up temporary files that crash MS Money.

0.1
~~~

* Initial release with script for launching files in MS Money.
