COUNTCOUNT
Sign Up

API Reference

Reports

Generate trial balance, profit and loss, balance sheet, AR/AP aging, sales analytics, and customer activity reports for a workspace. All routes use POST with filters on the query string — there is no request body.

Last updated 2026-08-12

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.

Report response shapes

Each endpoint returns a generated report under `data`. Exact row shapes vary by report type.

Attributes

accounts / rowsarray

Report line items with account UUIDs and amounts.

totalsobject

Section or report-level totals.

currencystring

Report currency (defaults to workspace currency).

startDatedate

Report period start when applicable.

endDatedate

Report period end or as-of date.

Example
{
  "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.

Recent changes

2026-06-21

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