WHMCS bills recurring services automatically, but the logic behind when invoices appear confuses many new resellers. Once you understand a few dates and settings, invoice timing becomes predictable and easy to fix.
Before you start
- A working cron job – recurring invoices are created by the daily automation; see cron and automation.
The key dates on a service
- Registration Date – when the service was ordered.
- Next Due Date – the date the next payment is due. This drives everything.
- Next Invoice Date – usually the same as the next due date, shown on services in newer versions.
When an invoice for the current period is paid, WHMCS moves the next due date forward by one billing cycle (for example one month or one year).
Billing cycles
Each product can be sold as One Time, Monthly, Quarterly, Semi-Annually, Annually, Biennially or Triennially. The cycle chosen at order time is stored on the service and can be changed later by staff or by the client through an upgrade.
When invoices are generated
Under General Settings → Invoices, Invoice Generation sets how many days before the next due date the invoice is created – for example 14 days. So a service due on the 30th gets its invoice on the 16th, giving the client time to pay. You can set different values per billing cycle (for example longer for annual services) in the advanced invoice settings.
Pro-rata billing
With Prorata Billing on a product, all services renew on the same day of the month (for example the 1st). The first invoice charges only for the days until that date, which simplifies accounting for some businesses. Without pro-rata, each service renews on its own order anniversary.
Payment and automation
- Stored cards are charged on or before the due date according to Process Credit Card Charges.
- Reminders and overdue notices follow the schedule in Automation Settings; see reminders and late fees.
- Unpaid services are suspended after the configured number of days.
Fixing wrong invoice timing
- Invoice created too early or late: check the service's next due date and the invoice generation days.
- Duplicate invoice: a manual invoice was created for the same period, or the due date was moved back. Cancel the duplicate.
- No invoice at all: the cron did not run, the service is not Active, or auto-recurring is disabled for that client.
When you change a next due date manually, WHMCS does not delete existing unpaid invoices – review them yourself. See manage client services.
