QuickBooks Online¶
Tidemill's first expense source, and the reason the data model has a cost side at all.
What it is¶
Intuit's cloud accounting platform. In the analytics category it usually appears as a supporting integration — Baremetrics pulls it for forecasting actuals, SaaSGrid for finance reconciliation. Its relevant objects are vendors, accounts, bills, purchases (expenses) and bill payments.
Key facts¶
| Category | Accounting / expense source |
| Licence | Proprietary SaaS |
| Auth | OAuth 2.0 (Intuit Developer), sandbox and production environments |
| Webhooks | ID-only payloads, HMAC-SHA256 signed with a verifier token |
| Tidemill integration | ExpenseConnector, registered as quickbooks |
| Status | Implemented (P1) |
Relevance to Tidemill¶
QuickBooks Online is Tidemill's first and so far only expense connector
(tidemill/connectors/quickbooks/). It is what turns Tidemill from a revenue-only tool
into one that can also see the cost side — see expenses.
It defined a third connector shape. Stripe and
Chargebee are WebhookConnectors; Lago and
Kill Bill are DatabaseConnectors; QBO required ExpenseConnector,
with a fetch_and_translate() path because its webhooks carry only object IDs and the
records must be fetched back before translation. See
connectors.
Its accounting vocabulary was deliberately not adopted directly. The expense model is
platform-neutral — canonical account types, bill statuses and payment types designed so
Xero, FreshBooks, Wave or Sage can map onto the same events (vendor.*, account.*,
bill.*, expense.*, bill_payment.*) without touching state handlers or the expenses
metric. This is the same discipline the
canonical vocabulary applies on the revenue
side.
Expense analytics is also the prerequisite for CAC, which remains P1 and unimplemented.
Related¶
- Chargebee — canonical-vocabulary discipline on the revenue side
- SaaSGrid, Baremetrics — competitors using QBO differently
- Tidemill
Sources¶
- Expenses architecture — data model and canonical enums
- Connectors —
ExpenseConnectorpattern - Testing — sandbox OAuth and expense seeding