Aging Invoices
Requires. Invoices with View on at least one location. You see only data on locations where you have that permission. Generating statements also requires Invoices with Modify.
The Aging Invoices page is the classic AR aging view. It groups your company's open receivables by customer, then splits each customer's balance into aging buckets (Pending, Current, 30+, 60+, 90+ days overdue). One row per customer — not per invoice — so you can see at a glance who owes how much and how overdue they are.
This is the collections department's starting point. Filter to a location, sort by total, bulk-download all invoices for the top 20 debtors, or generate statements for every customer over a threshold in one click.
Getting here
- From any Accounting page, click Aging in the sub-nav (if available).
- Or navigate directly to
https://portal.securitytrax.com/{your-company}/accounting/aging-invoices.
Filters
Click the filter icon to open the Filter Aging Invoices flyout. Aging's filter set is deliberately minimal — the data is cross-customer aggregated, so the usual date-range filters don't apply the way they do on other Accounting pages.
| Field | Type | Notes |
|---|---|---|
| Per page | Select | 10, 25, 50. Default: 50. |
| Locations | Multi-select pillbox | Narrow to specific locations. Leave blank for all locations you can see. |
No sort controls — the page isn't sortable row-by-row because rows are customer groupings (not individual invoices). Click Submit to apply. Clear removes all filter criteria but keeps your per-page setting.
Use the pagination controls above or below the table to move through the customer rows. The Per page filter controls how many customer rows appear on each page.
Aging summary (above the table)
Before the customer rows, an aggregated totals table shows the open-AR picture for the data below:
| Bucket | What it counts |
|---|---|
| Pending | Amounts on not-yet-due invoices. |
| Current | Amounts on due but not overdue invoices. |
| 30+ | Amounts 1–30 days overdue. |
| 60+ | Amounts 31–60 days overdue. |
| 90+ | Amounts 91+ days overdue. |
| Total | Grand total open AR. |
The summary always matches the customer rows below — it reflects both your active Locations filter and the locations you have customerInvoices → view permission on. It is not a separate company-wide roll-up.
Columns (one row per customer)
| Column | What it shows |
|---|---|
| ☑ | Checkbox for bulk actions. |
| Customer | Customer name. Click to open their Accounting tab. |
| Pending | This customer's pending amount. |
| Current | Current (due, not overdue). |
| 30+ | 1–30 days overdue. |
| 60+ | 31–60 days overdue. |
| 90+ | 91+ days overdue. Shown in red if greater than zero. |
| Total | Bolded total for the customer. |
Each amount is the sum across all of that customer's open invoices in that bucket.
Bulk actions
Two bulk actions live at the top of the table.
Download (bulk PDF of all open invoices)
Select customers via the checkboxes, then click Download to pull every one of their open invoices into a single PDF. Useful when you need a collections packet for review or for sending to a lawyer.
Limit: 100 invoices total across all selected customers. If your selection exceeds it, SecurityTrax shows "You can download at most 100 invoices at a time." and doesn't download.
Other toast messages:
- "No customers selected."
- "No open invoices found for the selected customers."
- "Download failed." (usually a backend issue — try again or contact support).
Generate Statements (bulk)
Requires. Invoices with Modify in addition to the view permission.
Click Generate Statements to create customer statements — one per selected customer in a controlled batch — on demand. This is the operational side of month-end statement runs, collections packets, and "can you send me a statement for the last 90 days?" customer requests handled at scale.
The Generate Statements modal
Filter options before committing:
| Field | Type | Notes |
|---|---|---|
| Eligibility Mode | Radio | Open (everyone with an open balance), Past Due (overdue only), Threshold (above a specific dollar amount). |
| Threshold Value | Number | Only shown when Mode = Threshold. Two-decimal precision. |
| Locations | Multi-select pillbox | Defaults to the page's current location filter. If empty, shows the count of all your accessible locations. |
| Skip Recent | Select | None, 24h, 72h, 1 week, 1 month. Excludes customers who already got a statement in that window (prevents duplicates on retry). |
| Preview button | — | Shows the count of customers that match the criteria without creating anything. |
| Generate button | — | Creates the statements in batch. |
Step-by-step: generating statements for all customers with any 60+ balance
- Click Generate Statements. The modal opens.
- Eligibility Mode: pick Past Due.
- Locations: leave blank (or pick the locations you want to cover).
- Skip Recent: pick 1 week so you don't duplicate statements you sent earlier in the week.
- Click Preview. SecurityTrax shows "{N} customers eligible" so you know what's about to happen.
- Click Generate. SecurityTrax creates up to 100 statements per batch (see the batch cap below) and reports:
- How many statements were created.
- Any failures (with the customer name and a short error reason).
- Whether the cap was hit and how many remain eligible.
- If the cap was hit, rerun with the same criteria (the "Skip Recent" filter now excludes the ones you just created) to pick up the next batch.
- Click Download as PDF on the success screen to save a merged PDF of the statements you just generated.
Note. Each statement is saved as its own InvoiceStatement record on the customer and can be re-opened, re-downloaded, or re-emailed later.
Non-obvious bulk-generate behaviors
- Batch cap is 100 statements per click. Set by the
accounting.statements.bulk_generate_limitconfig. Rerun to generate more — the Skip Recent filter will exclude the ones you just made. - Per-customer failures are caught and counted. One customer's data issue doesn't abort the whole run; it's logged with a truncated (max 180 chars) reason and the rest proceed.
- Preview is cheap and safe. Click it as often as you want to tweak filters before committing — it doesn't create anything.
- Skip Recent uses the DB. It checks for existing statements with the same customer/period in the lookback window. Useful on retry after a partial failure.
Non-obvious behaviors
- Rows are customers, not invoices. A customer with three open invoices shows as one row with their totals bucketed.
- No sort control. Results are grouped by customer in the DA's default ordering — not sortable by column. Use pagination to page through larger result sets.
- 90+ red-rendering is the main visual alert. Scan for red cells first.
- The bulk-download limit is 100 invoices, not 100 customers. A single customer with 150 open invoices selected alone would exceed the cap.
- The top summary is not a company-wide anchor. Every bucket (including Total) is scoped to your location permissions and the active Locations filter — exactly like the customer rows below. Two users looking at this page on the same day can see two different totals.
Related
- Invoices — the per-invoice list behind this aggregated view.
- Customer Statements — per-customer statement list; the target of bulk-generate.
- Customer Accounting (per-customer) — the per-customer aging summary and transaction list.