Welcome, guest | Sign In | My Account | Store | Cart

Notice! PyPM is being replaced with the ActiveState Platform, which enhances PyPM’s build and deploy capabilities. Create your free Platform account to download ActivePython or customize Python with the packages you require and get automatic updates.

pypm install ledger-autosync

How to install ledger-autosync

  1. Download and install ActivePython
  2. Open Command Prompt
  3. Type pypm install ledger-autosync
 Python 2.7Python 3.2Python 3.3
Windows (32-bit)
Windows (64-bit)
Mac OS X (10.5+)
Linux (32-bit)
Linux (64-bit)
0.1.1 Available View build log
0.1.0 Available View build log
Lastest release
version 0.1.1 on Jan 9th, 2014

ledger-autosync is a program to pull down transactions from your bank and create ledger transactions for them. It is designed to only create transactions that are not already present in your ledger files. This should make it comparable to some of the automated synchronization features available in products like GnuCash, Mint, etc.


  • supports ledger and hledger
  • like ledger, ledger-autosync will never modify your files directly
  • interactive banking setup via ofxclient [1]
  • multiple banks and accounts
  • import of downloaded OFX files, for banks not supporting automatic download


Install from pip:

$ pip install ledger-autosync

Or install from source:

$ python setup.py install

Run ofxclient to set up banking:

$ ofxclient

When you have added your institution, quit ofxclient.

Edit the generated ~/ofxclient.ini file. Change the description field of your accounts to the name used in ledger.



This will download a maximum of 90 days previous activity from your accounts. The output will be in ledger format and printed to stdout. Add this output to your ledger file. When that is done, you can call:


again, and it should print nothing to stdout, because you already have those transactions in your ledger.


By default, ledger-autosync will process transactions backwards, and stop when it sees a transaction that is already in ledger. To force it to process all transactions up to the --max days back in time (default: 90), use the --resync option. This can be useful when increasing the --max option. For instance, if you previously synchronized 90 days and now want to get 180 days of transactions, ledger-autosync would stop before going back to 180 days without the --resync option.

Syncing a file

Some banks allow users to download OFX files, but do not support fetching via the OFX protocol. If you have an OFX file, you can convert to ledger:

ledger-autosync /path/to/file.ofx

This will print unknown transactions in the file to stdout in the same way as ordinary sync. If the transaction is already in your ledger, it will be ignored.

How it works

ledger-autosync stores a unique identifier, provided by your institution for each transaction, as metadata in each transaction. When syncing with your bank, it will check if the transaction exists by running the ledger or hledger command. If the transaction exists, it does nothing. If it does not exist, the transaction is printed to stdout.

Subscribe to package updates

Last updated Jan 9th, 2014

What does the lock icon mean?

Builds marked with a lock icon are only available via PyPM to users with a current ActivePython Business Edition subscription.

Need custom builds or support?

ActivePython Enterprise Edition guarantees priority access to technical support, indemnification, expert consulting and quality-assured language builds.

Plan on re-distributing ActivePython?

Get re-distribution rights and eliminate legal risks with ActivePython OEM Edition.