Managing Recurring Invoice Templates
The Recurring Invoices management screen provides a central location for viewing all recurring invoice templates, editing their configurations, deactivating templates that are no longer needed, and manually triggering invoice generation. This guide covers every feature of the management screen and the actions available to you.
Accessing the Management Screen
To open the recurring invoices management screen, navigate to Customers & Invoicing > Recurring Invoices. This opens the Recurring Invoices screen, which displays all templates in a grid with toolbar buttons for each action.
Permission Requirements
Two permissions control access to recurring invoice features:
- RECURRING_VIEW — allows viewing the template list and generation history. Users with this permission can open the Recurring Invoices screen and see all templates but cannot create, edit, deactivate, or generate invoices.
- RECURRING_MANAGE — allows full management including creating new templates, editing existing ones, deactivating templates, and triggering manual generation. This permission implies RECURRING_VIEW.
Super Admins and Location Admins have both permissions by default.
The Template List Grid
The main area of the screen is a data grid displaying all recurring invoice templates. The grid contains the following columns:
- ID — the unique template identifier.
- Template Name — the descriptive name assigned when the template was created.
- Customer Name — the customer associated with this template, resolved from the client_id via a JOIN to the clients table.
- Frequency — the generation frequency displayed with the first letter capitalized (Weekly, Biweekly, Monthly, Quarterly, Semiannual, Annual, or Custom).
- Next Generation Date — the date when the next invoice will be automatically generated.
- Last Generated — the date of the most recent invoice generation, or "Never" if no invoices have been generated yet.
- Total Generated — the cumulative count of invoices generated from this template.
- Status — displays "Active" or "Inactive."
Inactive templates are displayed with gray text to visually distinguish them from active templates. The grid is sorted with active templates first, then by next generation date in ascending order, so templates due soonest appear at the top.
Location Filtering
For non-admin users, the template list is automatically filtered to show only templates belonging to the user's current location. Super Admin users see templates from all locations. This filtering is controlled by the SessionContext permission check — if the user does not have the SUPER_ADMIN permission, the location filter is applied using the current location ID.
Available Actions
The toolbar at the top of the screen provides the following buttons:
New
Opens a blank the Template Details form form to create a new template from scratch. After saving the new template, the grid automatically refreshes to include it. This action requires RECURRING_MANAGE permission.
Edit
Opens the selected template in the Template Details form for editing. You can also double-click a row in the grid to open it for editing. All template fields can be modified including the name, customer, frequency, dates, amounts, notes, terms, and auto-email settings.
Changes to an active template take effect on the next generation cycle. Invoices that have already been generated are not retroactively modified — they remain as they were when created. For example, if you change the shipping amount from $10 to $15, only future invoices will use the $15 amount.
Deactivate
Disables the selected template to prevent future invoice generation. A confirmation dialog asks you to confirm the deactivation with the template name displayed. When confirmed, the template's is_active flag is set to 0 in the database, and the grid refreshes to show the template in gray with an "Inactive" status.
Deactivation is a soft operation — the template record is preserved along with its entire generation history. This is intentional: templates are never deleted, only deactivated. Preserving the record ensures that the generation log remains intact and that you can always trace which template produced a given invoice.
A deactivated template can be reactivated by opening it in the Edit form and checking the Active checkbox.
Generate Now
Manually triggers immediate invoice generation from the selected template. A confirmation dialog asks you to confirm. When confirmed, RecurringAccuArk.GenerateFromTemplateIdAsync is called, which performs the full generation process: creating the invoice, inserting line items, calculating totals, advancing the next generation date, incrementing the total generated counter, logging the generation event, and optionally sending the auto-email.
After successful generation, a message displays the new invoice number. If generation fails, an error message is shown with the reason.
The Generate Now button is temporarily disabled during generation to prevent accidental double-clicks. It is re-enabled once the generation completes or fails.
This action is useful for on-demand generation outside the normal schedule. For example, if a customer requests their invoice early, you can generate it immediately without waiting for the next scheduled date.
View History
Displays a dialog showing the generation history for the selected template. The history lists every invoice generated from this template, including the invoice number, generation date, and whether the invoice was auto-emailed. Email status is shown in brackets if it differs from "sent" — for example, [no_email_on_file] or [email_not_configured].
If no invoices have been generated from the template, the history shows "No invoices have been generated from this template yet."
Refresh
Reloads the template list from the database. Use this if you suspect the grid is out of date, for example after another user has modified templates.
Deactivation vs. Deletion
AccuArk does not provide a delete option for recurring invoice templates. This is by design. Deleting a template would orphan its generation log entries and make it impossible to trace the origin of previously generated invoices.
Instead, use deactivation to stop a template from generating future invoices. The deactivated template remains visible in the grid (shown in gray) and its history is fully accessible. If you need to reduce visual clutter, the inactive templates sort to the bottom of the grid behind all active templates.
What to Read Next
- Creating a Recurring Invoice Template — Detailed guide to all template fields and creation methods.
- How Automatic Invoice Generation Works — Understand what happens when templates are processed on application startup.
- Viewing Recurring Invoice History — Deeper look at the generation log and troubleshooting failed generations.