…
Refreshing from QuickBooks Online
- In QuickBooks Online, run Reports › General Ledger (or Transaction Detail by Account) for the period, with the Customer column shown, and Export to CSV.
- Run
python qbo_to_finicast.py export.csv ledger.csvto flatten QuickBooks' grouped layout into one row per ledger line. - Import
ledger.csvinto the ledger table in upsert mode. Row ids come from each line's contents, so re-importing an overlapping month updates rather than duplicates.
Every report here reads the ledger through the two mapping tables below: accounts (cost code, P&L line and cash category for each QuickBooks account) and customers (QuickBooks Customer:Project to job). A new account or job needs one row in a mapping table, nothing else.