API Reference
Reports
Generate trial balance, profit and loss, balance sheet, AR/AP aging, sales analytics, customer activity, and account transactions (general-ledger detail) reports for a workspace. All routes use POST with filters on the query string — there is no request body.
Last updated 2026-10-03
Overview
The Reports API generates accounting reports for the authenticated workspace. Each endpoint is POST with report filters passed as query parameters. No JSON body is accepted — this keeps report generation read-only and compatible with MCP tool annotations.
Account, tag, customer, vendor, product, and project filters accept comma-separated UUIDs from their respective list APIs. Do not pass internal numeric ids.
Key concepts
POST with query filters
Send POST with an empty body (or sign HMAC against `{}`). Put every filter on the query string — for example `?endDate=2026-03-31&transactionStatus=reviewed`.
Trial balance
Requires `endDate`. Optional `startDate` defaults to fiscal-year start. Filter by account UUIDs, tags, transaction status, and account type.
Profit and loss
Requires `startDate` and `endDate`. Revenue rows are positive; expense rows are negative; net profit is the algebraic sum.
Balance sheet
Requires `endDate` as the as-of date. Returns Assets, Liabilities, and Equity sections. Unposted manual entries may cause imbalance — surfaced in the response payload.
AR/AP aging
Aged receivables and aged payables compute open invoice/bill balances off the Accounts Receivable or Accounts Payable control account. Each response includes detail rows, counterparty summaries, bucket totals, and a reconciliation block against the control account GL balance.
Sales analytics
Sales-by-product/service and sales-by-customer summarize invoice line revenue and quantity over a date range. Customer activity is broader: it nets every journal entry linked to each customer (payments, tax, manual journals, expenses), not sales revenue alone.
Account transactions
The general-ledger detail report. Requires `startDate` and `endDate`, groups journal lines by ledger account, and returns opening/ending balances per account plus a running balance on each entry. Use `accountUuids` to pick the accounts and `categoryAccountUuids` to restrict the counterpart side. This is ledger activity — for bank/register rows use the Transactions API instead.
Report response shapes
Each endpoint returns a generated report under `data`. Exact row shapes vary by report type.
Attributes
accounts / rowsarrayReport line items with account UUIDs and amounts.
totalsobjectSection or report-level totals.
currencystringReport currency (defaults to workspace currency).
startDatedateReport period start when applicable.
endDatedateReport period end or as-of date.
{
"trialBalance": [
{
"accountUuid": "c8d9e0f1-a2b3-4567-cdef-789012345678",
"accountName": "Business Checking",
"accountType": "Assets",
"debit": 12500,
"credit": 0,
"balance": 12500
}
],
"profitAndLoss": [
{
"accountUuid": "d4e5f6a7-b8c9-0123-defa-234567890123",
"accountName": "Consulting Revenue",
"accountType": "Income",
"amount": 45000
}
],
"balanceSheet": [
{
"name": "Assets",
"total": 85000,
"accounts": [
{
"accountUuid": "c8d9e0f1-a2b3-4567-cdef-789012345678",
"accountName": "Business Checking",
"balance": 12500
}
]
}
]
}Use accountUuids not numeric ids
Pass comma-separated account UUIDs from the Chart of Accounts API via `accountUuids` or report-specific category filters.transactionStatus filter
Supported values: all, reviewed, unreviewed, reconciled, unreconciled.Related
Recent changes
Bill submit and refunds, reconciliation drafts, report filters, 30 MCP tools, and the Claude plugin
Documented the five partner routes the reference was missing: POST /partners/bills/{uuid}/submit, POST /partners/bills/{uuid}/assign-transaction (pay a bill, or refund a vendor memo with an income transaction), PATCH /partners/invoices/{uuid}/add-transactions (including credit memo refunds), and PATCH and DELETE /partners/reconciliations/{uuid} for correcting or discarding a draft. The account transactions report gains a reference-number range (checkNumberFrom/checkNumberTo) and the unknown-counterparty drill-down (unknownCustomerAr/unknownVendorAp), both accrual-only. Invoice and credit memo lines accept free-text Custom lines with categoryAccountUuid and name. Corrected the reference where it disagreed with the backend: dueDate is required on invoices and estimates, bills move through submitted and rejected as well as draft and approved, and a bill does have its own assign-transaction route. npm run check:parity now reports 178 documented routes against 178 backend routes. The MCP catalog adds 30 tools — customer contacts, addresses, notes, merge and revenue overview, GST settings, bill submit and memo refunds, reconciliation draft update/delete, COUNT_find_tool, COUNT_report_problem, and saved AI skills — moving the advertised count from 180 to 210. New pages cover the COUNT Claude plugin (/tools/claude-plugin) and the MCP brain, workspace memory and problem reports (/guides/mcp-brain-and-memory), and the FAQ gains the connector and API topics COUNT_knowledge serves to agents.
Account transactions report and a complete MCP tool catalog
Documented POST /partners/reports/account-transactions, the general-ledger detail report, which was the only backend partner route missing from the reference. Brought the MCP tool catalog back in line with the remote server: added the six report tools (aged receivables/payables, sales by product-service, sales by customer, customer activity, account transactions), ten remote-only Payroll tools covering people, pay stubs, PTO accrual caps, and locations, and a new remote-only Firm Practice Manager category of eleven firm-wide task, time-entry, and project tools. The advertised tool count moves from 153 to 180; the three deprecated-name invoice aliases stay excluded.
Complete Partner API reference
Documented all remaining API reference groups: Chart of Accounts, Vendors, Products & Services, Recurring Invoice Templates, Credit Memos, Bills, Journal Entries, Tags, People, Projects, Tasks, Time Entries, Expense Receipts, Reports, and Workspace Stats. Added missing invoice endpoints (audit log, attachments, credit application, remove transaction) and group overviews for Invoices and Transactions.
Endpoints
/partners/reports/trial-balanceGenerates a trial balance as of a date.
/partners/reports/pnlGenerates a profit and loss (income statement) for a date range.
/partners/reports/balance-sheetGenerates a balance sheet as of a date.
/partners/reports/aged-receivablesGenerates an AR aging report as of a date.
/partners/reports/aged-payablesGenerates an AP aging report as of a date.
/partners/reports/sales-by-product-serviceSummarizes invoice line revenue and quantity by product or service.
/partners/reports/sales-by-customerSummarizes invoice line revenue and quantity by customer.
/partners/reports/customer-reportReturns per-customer accounting activity with underlying journal entries.
/partners/reports/account-transactionsReturns journal-line activity grouped by ledger account.
