Skip to main content

Start with a summary

Use Dates, money, and identities for time buckets, grouping, and total calculations. All summaries are pageable.

Worked example

These dates and amounts describe the fictional example dataset. Live receivables aging always uses the current company-local date.

Invoice amount basis

Invoice totals use the existing invoice pricing, discount, and tax-rounding rules. Lines expose both recorded unit prices and their rounded subtotal after any pricing multiplier. Discounts retain their configured flat amount or rate; the combined applied discount is in amounts. The discounted subtotal is floored at zero. Paid invoice applications use the latest payment status PAID; processing uses PENDING or PROCESSING. open_balance_cents is the signed remainder for OPEN invoices and zero for other statuses. Refunds do not automatically increase this balance, and this API does not invent invoice-level refund allocation. A payment with no recorded status has status: null; its invoice applications also have payment_status: null. These records remain readable and contribute neither paid nor processing invoice amounts nor received collections.

Collections and refunds

Received collections count only payments currently PAID. Refunded collections count only refunds currently SUCCEEDED. A later refund reduces the period of the refund, not the earlier payment period. Occurrence date supports backdating and is not bank settlement. Refund grouping by collector uses the original payment’s collector. Collections do not support business-unit, job-type, or technician-participation grouping, because refunds have no recorded split across invoices. Count each payment once, even if it is allocated across several invoices. Read /payments for the complete allocation set and /refunds for refunds on their own dates. Invoice payment applications explain invoice balances; they are not additional payments.

Current receivables

AR groups OPEN invoices by account, retaining positive, zero, and negative balances. Buckets are current, 1–30, 31–60, 61–90, and 91+ days past due. Due today and future due dates fall in current. A legacy OPEN record without a due date is represented as current with null days_past_due; new OPEN invoices require a due date, and the worked example uses September 30. For dated invoices, days past due is the signed company-local calendar-day difference. Non-open invoices have null aging. The summary’s report.aging_date is the current local date; there is no historical as_of parameter. Its detail is /invoices?status=OPEN with identical account/business filters. Processing applications are separately visible. For refreshing open invoices without losing ones that became paid, follow Build a reporting store.