[GNC-dev] [GNC] ofxtools - a Python OFX library

Christopher Singley csingley at gmail.com
Thu May 30 10:46:55 EDT 2019

On 5/30/19 8:49 AM, Christopher Lam wrote:
> Hi Csingley
> I've experimented with your ofxtools and it works well on my bank 
> datafile.
Glad to hear it.
> I've this idea brewing that's quite difficult to do, but would greatly 
> multiply the usability of the current OFX importer. Here's gist of 
> current importer (I think), as well as some followup desired 
> functionality:
> Input: ofxfile, gnucash datafile
> Options: target acct
> 1. Use your ofxtools to read .ofx file
> 2. Use gnucash python bindings to read .gnucash datafile
> 3. Each ofx transaction attempts to match against datafile 
> target-acct's transactions
> 4. Highest matches are whereby ofx's transaction's FITID already 
> matches target-acct' transaction's online_id metadata
> 5. Otherwise try matching by amount, date, or description
> The desired addition to the above process is
> 6. Present UI in a split-screen; left = ofx-transactions, right = 
> matched acct-transaction
> 7. Matched ofx-txns are shown on the same line as its acct-transaction
> 8. Unmatched ofx-transactions are shown on left-pane only
> 9. Unmatched acct-transactions are shown on right-pane only
> 10. Each ofx-transaction is offered choice, to become a tasklist
>  (a) maintain current match, do nothing
>  (b) maintain current match, update register txns->desc/memo with ofx 
> details
>  (c) match to existing unmatched acct-txn which removes the acct-txn 
> from the unmatched-txns list, and refreshes the display to reflect the 
> new match
>  (d) add as a new acct-transaction
>  (e) ignore
> 11. Process ofx-txns as per task list
>  - note matching an ofx-txn to acct-split also copies ofx->fitid to 
> txn->online_id
> The above may be created as a standalone python package, or ideally 
> upgrading current ofx importer.
> I think it'll be quite difficult to do well, though.
If this is something y'all want to do, I'd be pleased to help; GnuCash 
has been good to me.

The proposed logic seems straightforward enough, but composing GUIs is 
not something with which I have experience.


More information about the gnucash-devel mailing list