Stop reconciling by hand.

Automated AP/AR cross-check · Bill.com + QuickBooks Online

The problem — and what changes
Today — manual
1
Export data from Bill.com
No CSV for line-item detail — manual screen copy or raw API
2
Export AR invoices from QBO
Another manual pull, different format, different system
3
Apply packaging formulas in Excel
Convert supplier units → customer units by hand, every cycle
4
Spot the discrepancy
Scroll, compare, flag — easy to miss, easy to error
5
Chase corrections
20–30 hours a month. Every month.
After — automated
1
Scripts fetch Bill.com + QBO data
Runs at 06:00 daily via API. Zero manual steps.
2
Formulas applied automatically
BOM config translates supplier → customer units
3
Both sides compared
Engine calculates delta across every line
4
Alert fires only when something's off
Silent when clean. One email when not.
5
You act on facts, not search
10 minutes a day instead of 30 hours a month.

How it works — four scripts in a chain
Bill.com
Vendor bills
AP line items
QBO
AR invoices
Customer billing
fetch.js Phase 1
Calls Bill.com + QBO APIs. Pulls vendor bills and AR invoices for the period. Caches raw data locally.
Output: bills.json · invoices.json
transform.js Phase 2
Reads BOM config. Converts supplier ingredient quantities into expected customer product units.
Output: comparison.json
reconcile.js Phase 2
Calculates delta between expected and actual per line. Flags anything outside tolerance.
Output: report.json
alert.js Phase 3
Silent if everything checks out. Sends a plain-text email listing discrepancies if not.
Output: email alert
Your inbox
Daily at 06:00
Only when off
bom.json
Your packaging formulas
Supplier SKU → Customer SKU · quantities + units
↑ feeds transform.js
tolerance.json
Acceptable delta per ingredient line
e.g. ±0.5 kg flour before alert fires
↑ feeds reconcile.js

20–30h
recovered per month
Daily
automated check at 06:00
1 week
to first value — Phase 1
Delivery — three phases, value at each step
Phase 1 — FetchWeek 1
  • Connect Bill.com API
  • Connect QBO API
  • Pull vendor bills + AR invoices daily
  • Export to structured spreadsheet
~10 hrs/month saved immediately.
Manual data extraction eliminated.
Phase 2 — TransformWeek 2–3
  • Build BOM config from your formulas
  • Apply supplier → customer translation
  • Generate delta comparison daily
~20 hrs/month saved.
Excel formula work eliminated.
Phase 3 — AlertWeek 4
  • Daily reconciliation run, 06:00
  • Email alert on discrepancy only
  • Silent when everything checks out
Full 20–30 hrs/month recovered.
Nothing to do until the alert fires.

Phase 4 — The app (optional)
From scripts to product
Phases 1–3 solve your problem. Phase 4 turns the solution into something you can hand to a colleague — or sell to the next groovyipo.
When you're ready
OAuth login
Each user connects their own Bill.com and QBO accounts. No shared credentials, no JSON files to edit.
Formula config UI
The BOM editor as a live interface. Anyone on the finance team can update formulas without touching a file.
Reconciliation history
A full audit trail of every run, every discrepancy flagged, every correction made. Not just the latest alert.
Multi-tenant
The same engine, white-labelled for multiple clients. One codebase. Recurring revenue.