Thermal
ReferenceSales & billing

Statements

Open Invoices → Statements in Thermal →

What it's for

Statements lists billing customers with a positive balance on sent or partly paid invoices. Select customers to download one combined statement PDF or email each customer its own statement. Open Statements from the Invoices list, at /invoices/statements. See Send and collect an invoice for the wider billing workflow.

The customer shown is the party billed, which can differ from the customer at the service site. Draft, paid, void and deleted invoices are excluded, as are deleted customers. The list's Balance sums open invoice balances before unapplied credits. A statement PDF also shows those credits and deducts them from its final balance due, so that final figure can differ from the list.

Tabs

There are no tabs. Aging and minimum-balance chips filter one customer table. The header count is the number of billing customers in the filtered result.

Panels and controls

Any age, 31+ days, 61+ days and Over 90 days filter by the age bucket of the customer's oldest open invoice. A selected age includes that bucket and older ones. Age is whole UTC days since the invoice's issue date, falling back to its due date; it is not necessarily days past due. Missing or future-dated anchors have no bucket and display a dash.

Any balance, $100+, $500+, $1,000+ and $5,000+ select a minimum open balance. Changing the age preserves the balance filter and vice versa. The filters are in the URL, so a filtered view can be bookmarked.

Search customers… searches the loaded table. The table initially shows 100 rows per page and loads largest balance first, then customer name.

ColumnShows
CustomerBilling party's name; opens its customer record; sortable
BalanceSum of positive open invoice balances before unapplied credits, in US dollars; sortable
Oldest bucketCurrent (0–30d), 31–60 days, 61–90 days, Over 90 days, or a dash; not sortable
Last statementMost recent recorded PDF-generation date, or Never; sortable
Last emailLatest statement-email attempt: Emailed with a date, a not-sent reason, or Never; sortable

Tick customers to expose the bulk actions:

  • Download statements returns one PDF containing a separate statement per selected customer, each starting on a new page. Each statement includes open invoices, unapplied credits, aging totals and balance due. A successful generation is recorded for each customer and refreshes Last statement. This download does not email customers.
  • Email statements opens a confirmation listing billing email addresses and customers that Will be skipped, with reasons. Confirming sends each customer its own PDF and reports customer counts as sent and not sent. Last email records the latest attempt. One successful recipient is enough for that customer to count as sent; the label does not prove every billing recipient received the email or that it reached an inbox. Repeating the same send to the same billing address on the same company-calendar day reuses its recorded outcome rather than sending a duplicate; already sent still reads as sent.

No customers match these filters means you can widen age or balance. No customers owe a balance means there are no eligible open invoices in scope. Neither message adds credit-only customers to this invoice-balance list.

What it accepts

InputFormatRequiredRule
Aging filterAny age, 31+ days, 61+ days or Over 90 daysNoURL bucket values are 31, 61 and 91; other values behave as Any age
Minimum balancePositive dollarsNoPresets are whole dollars; a positive finite URL min value is also accepted and rounded to cents. Zero, negative or nonnumeric values remove the minimum
Customer selectionTick customer rowsFor download/emailSelect 1–500 customers per request

Download checks the whole selection before producing the PDF. If any customer is unavailable, it returns One or more customers were not found. with no partial PDF or generation records. Email handles unavailable or undeliverable customers as not sent and shows the reason. Missing billing email, disabled statement email, customer stops, suppressed addresses and delivery failures can prevent email.

Generating a statement does not change invoice status, record a payment or apply a credit. Last statement proves generation was recorded; Last email is the separate send-attempt record. Dates in those columns use the company time zone.

How to configure it

Customer billing contacts supply email recipients. Settings → Notifications → Statement sent controls statement email, and company email delivery must be connected. Customer contact restrictions still apply. These email settings do not prevent PDF downloads. Billing addresses, invoice dates/balances and unapplied credits supply statement contents; there is no separate aging policy on this screen.

Who can see it

The screen and its download/email actions require access to both Customers and Invoices. Owners, office managers and dispatchers have that access with the standard roles; technicians do not. Custom roles can narrow it.

Branch-limited users see invoices and billing customers in their effective branch. Every selected customer is checked again when downloading or emailing, so a saved URL or customer selection cannot expand that access.

See Roles & permissions.

On this page