Recurring Invoices
Automate invoice generation with recurring templates for regular clients
Recurring Invoices
Recurring Invoices let you create templates that automatically generate invoices on a schedule. Perfect for retainer clients, subscriptions, and regular billing.
Overview
With recurring invoices you can:
- Automate billing — Generate invoices automatically
- Flexible scheduling — Weekly, bi-weekly, monthly, quarterly, or yearly
- Auto-submit to LHDN — Optionally submit e-invoices automatically
- Track generation history — See all invoices created from a template
Getting Started
Accessing Recurring Invoices
Navigate to Accounting > Recurring from the main menu.
Creating Your First Template
- Click New Template
- Enter a Template Name (e.g., "Monthly Retainer - Acme Corp")
- Select the Customer to invoice
- Configure the schedule
- Add line items
- Click Create Template
Creating Templates
Basic Information
| Field | Description |
|---|---|
| Template Name | Descriptive name for the template |
| Customer | The customer to invoice |
| Description | Optional notes about the template |
Schedule Settings
| Setting | Description |
|---|---|
| Frequency | How often to generate invoices |
| Start Date | When to start generating |
| End Date | Optional end date for the template |
Frequency Options:
- Weekly — Every 7 days
- Bi-weekly — Every 14 days
- Monthly — Same day each month
- Quarterly — Every 3 months
- Yearly — Once per year
Invoice Options
| Option | Description |
|---|---|
| Invoice Number Prefix | Prefix for generated invoice numbers (e.g., "REC") |
| Auto-Submit | Automatically submit to LHDN after generation |
Line Items
Add the products or services to invoice:
- Click Add Item
- Select a Product (optional but recommended)
- Enter description
- Set quantity
- Set unit price
- Select tax type
The template calculates and shows the total amount.
Product Sync
When you link a line item to a product, you can enable automatic syncing:
| Option | Description |
|---|---|
| Sync Price | Automatically update unit price when product price changes |
| Sync Tax | Automatically update tax rate when product tax changes |
Benefits:
- Update product prices once, all templates update automatically
- No need to manually edit each recurring invoice
- Tax rate changes apply to all linked templates
To disable sync for a specific item, uncheck the sync options. The item will keep its current values even if the product changes.
Managing Templates
Template Actions
| Action | Description |
|---|---|
| Generate Now | Immediately create an invoice from this template |
| View History | See all generated invoices and failures |
| Pause | Temporarily stop automatic generation |
| Resume | Resume a paused template |
| Delete | Remove the template |
Template Status
| Status | Icon | Description |
|---|---|---|
| Active | Green check | Generating invoices on schedule |
| Paused | Yellow pause | Temporarily stopped |
| Completed | Gray check | End date reached, no more invoices |
| Failed | Red warning | Last generation failed |
Next Generation Date
Each template shows when the next invoice will be generated. This date updates after each successful generation.
Generation History
View the complete history of invoices generated from a template.
Accessing History
- Find the template in the list
- Click the History button (clock icon)
- View the history modal
History Statistics
- Total Generated — Number of invoices created
- Failures — Number of failed attempts
- Last Generated — When the last invoice was created
Last Error
If generation failed, you'll see:
- Error message
- When the error occurred
- Number of retry attempts
- Option to retry manually
Invoice List
For each generation:
- Invoice number and status
- Amount generated
- Date and time
- Link to view the invoice
Automatic Generation
How It Works
- A scheduled job runs daily
- Checks all active templates
- Generates invoices where
nextGenerationDateis today or past - Updates the next generation date
- Optionally submits to LHDN if auto-submit is enabled
Failure Handling
If generation fails:
- Template status changes to "Failed"
- Error is logged in history
- You can retry manually via "Generate Now"
- Fix any issues before resuming
Auto-Submit
When enabled:
- Invoice is generated as usual
- Immediately submitted to LHDN
- E-invoice status is tracked
- Failures are logged separately
Tips
Best Practices
- Use clear names — "Monthly Hosting - ABC Company" is better than "Template 1"
- Set end dates — For fixed-term contracts, set an end date
- Review history regularly — Catch failures early
- Use prefixes — Different prefixes help identify recurring vs one-time invoices
Common Use Cases
Monthly Retainers
- Frequency: Monthly
- Fixed amount each month
- Auto-submit enabled
Quarterly Subscriptions
- Frequency: Quarterly
- Same start day each quarter
- Set end date for annual contracts
Weekly Services
- Frequency: Weekly
- For ongoing weekly work
- Review generated invoices before sending
Troubleshooting
Invoice not generated:
- Check if template is Active (not Paused)
- Verify the next generation date
- Check history for errors
Wrong amount:
- Edit the template line items
- Changes apply to future invoices only
- Past invoices are not affected
Customer not receiving:
- Generated invoices are created as drafts
- You may need to send them manually
- Or use auto-submit for e-invoices