quickbooks_* — QuickBooks Online
The QuickBooks Online tool namespace — the SQL-like query workhorse, entity CRUD with sync tokens, standard financial reports, and CSV export.
QuickBooks Online (QBO) accounting. The defining feature of this namespace is
that most lookups go through quickbooks_query — a SQL-like query against
QBO’s queryable tables — not through per-record getters. The mutation tools
carry QBO’s sync-token concurrency model, which is the thing that trips people
up.
Querying
quickbooks_query
Run a raw QBO SQL-like query. This is the primary read path.
quickbooks_query(query, max_results=None, start_position=None)
| Param | Type | Notes |
|---|---|---|
query | string | QBO query, e.g. SELECT * FROM Invoice WHERE Balance > '0' |
max_results | int | Page size |
start_position | int | 1-indexed pagination offset |
QBO’s query dialect is not full SQL — no JOIN, limited functions. Filter
on indexed fields and paginate with start_position + max_results.
quickbooks_get
Single record by ID, or a filtered list of an entity type.
quickbooks_get(entity_type, id=None, filters=None)
Note id is a string here (QBO IDs are string-typed).
Mutating (and the sync-token model)
QBO uses optimistic concurrency: every entity carries a SyncToken that must
match on update/delete. The tools will fetch the current token for you when
you omit it, but passing a stale one explicitly will fail.
quickbooks_create
quickbooks_create(entity_type, data)
quickbooks_update
quickbooks_update(entity_type, id, data, sparse=True, sync_token=None)
| Param | Default | Notes |
|---|---|---|
sparse | True | Sparse update — only the fields in data change. Set False for a full replace (must send the complete object). |
sync_token | None | Omit to use the current token; pass one only if you’re managing concurrency yourself |
sparse=True is almost always what you want — it avoids accidentally blanking
fields you didn’t include.
quickbooks_delete
quickbooks_delete(entity_type, id, sync_token=None)
Destructive, and subject to the same sync-token rules.
Reports
quickbooks_report
Run a standard QBO financial report (P&L, Balance Sheet, A/R Aging, etc.).
quickbooks_report(report_type, start_date=None, end_date=None, date=None,
accounting_method=None, summarize_column_by=None,
report_name=None, params=None)
| Param | Notes |
|---|---|
report_type | Required — the QBO report endpoint name (e.g. ProfitAndLoss, BalanceSheet, AgedReceivables) |
start_date / end_date | Date range for period reports (YYYY-MM-DD) |
date | As-of date for point-in-time reports (e.g. aging) |
accounting_method | Cash or Accrual |
summarize_column_by | Column grouping (e.g. Month, Customer) |
params | Escape hatch for any report-specific query params |
quickbooks_export
Export records of an entity type to CSV, paginating automatically.
quickbooks_export(entity_type, filters=None, max_records=1000)
Use this for bulk pulls (reconciliation, analysis) where a single query page
isn’t enough. max_records caps the total pulled (default 1000).
Related pages
- QuickBooks Reporting & Lookups — query and report recipes for these tools
- RepairShopr — the ticketing/invoicing source the books reconcile against
- Tools — catalog overview and routing rules