Customer statements
Summary
Section titled “Summary”Generate per-customer statements showing invoices, payments, brought-forward balances, and aging buckets. Use them to chase overdue payments. Statements are available on screen, as a branded PDF, or as CSV. You can email a statement directly to the customer with the PDF attached, or generate statements for every customer with an outstanding balance from the All Outstanding view.
Prerequisites
Section titled “Prerequisites”- You have the
finance.statements.viewpermission. Owner and Manager have this by default. - To download or email statements, you also need
finance.statements.export. - Customers must have invoices in the system for statements to show anything.
Generate an individual statement
Section titled “Generate an individual statement”- Go to Finance → Statements.
- On the Individual Statement tab, search for the customer (search-as-you-type by name, company, or reference).
- Pick a date range. Defaults to the current calendar month.
- Click Generate Statement.
The on-screen statement shows:
- Customer header — name, company, billing address, account status, payment terms.
- Activity table — Date, Type (Invoice / Payment), Document number, Vehicle, Total, Paid, Outstanding.
- Brought forward — invoices outstanding from before the date range, labelled “B/F”.
- Total Due — prominent at the bottom.
- Aging summary — five buckets: Current / 30 / 60 / 90 / 120+ days.
Download or email an individual statement
Section titled “Download or email an individual statement”From the on-screen statement, the action buttons:
- Download PDF — branded PDF, suitable for printing or sending manually.
- Export CSV — spreadsheet view for spreadsheet manipulation.
- Email Statement — sends the PDF to the customer’s email. Subject “Statement from {your org} — {period}”. Uses your org’s payment instructions in the body.
The send confirmation dialog protects you from misclicks. The statement view shows the last sent timestamp, with a Resend option.
Generate statements for every outstanding customer
Section titled “Generate statements for every outstanding customer”- Go to Finance → Statements and click the All Outstanding tab.
- The list shows every customer with an outstanding balance, with their per-customer aging breakdown.
- Sort by any column (text columns ascending, numeric descending).
- Click any row to open that customer’s PDF in a new tab.
- Click the row’s Email button to send to that customer (with confirmation dialog).
- URL pagination (
?page=N) lets you bookmark a specific page.
The bulk view defaults to the current calendar month. There is no per-row date range picker in this version — for custom date ranges use the Individual Statement tab.
Expected Outcome
Section titled “Expected Outcome”A statement on screen, downloadable as PDF or CSV, or emailed to the customer. The customer receives a branded email with the statement PDF attached.
How aging is calculated
Section titled “How aging is calculated”Aging buckets use the invoice’s due date, not the invoice date. As of today:
- Current — not overdue (today ≤ due date).
- 30 / 60 / 90 / 120+ — days past due.
A customer’s payment terms (set on their record) determine the due date for new invoices. See Customer account types and payment terms.
- The “brought forward” entries cover invoices outstanding at the start of the period — even if they are decades old.
- Payments during the period appear in the activity table even if they apply to brought-forward invoices.
- Pre-period invoices that get fully paid during the period also appear, so the payment is visible.
- Customers without an email address see “Customer has no email address on file” when you try to email them. Add one to their record first.
- Voided invoices are excluded from statements entirely (they are not struck through).
- Credit notes are not yet displayed in this version.
- Email sends use the verified
noreply@mail.torqueflow.appdomain.
Troubleshooting
Section titled “Troubleshooting”Problem: I cannot find Statements in Finance navigation.
Cause: Your role does not have finance.statements.view.
Fix: Ask an Owner.
Problem: Statement total does not match the customer’s outstanding balance. Cause: The date range may be filtering out brought-forward activity, or some invoices may have been voided after generating. Fix: Widen the date range. Voided invoices are excluded by design.
Problem: Customer says they did not receive the email. Cause: Email is going to spam, the customer’s email is wrong, or they have no email at all. Fix: Confirm the email address on the customer record. Resend from the statement page. Ask the customer to check spam.
Permissions
Section titled “Permissions”finance.statements.viewto view statements.finance.statements.exportto download PDF or CSV, or to email statements.