Recurring billing
What the daily billing run does, when renewal invoices are created, and how reminders, suspension and termination work, with the defaults.
Recurring services are billed by a billing run that happens once a day. It creates renewal invoices, sends reminders, and suspends or terminates services that stay unpaid. You do not start it by hand once the cron job is in place.
What triggers the run#
The run is the billing:run task, scheduled for 02:30 every day (in the application's time zone). It only happens if the cron job is set up, see Cron job. To run it right now, go to Settings → System and click Run billing tasks now. The page shows how many items each step handled.
Charging saved cards is a separate hourly task. See Payments and refunds.
What the run does, in order#
- Pulls usage from servers whose module reports it, for metered products.
- Applies plan changes scheduled for today.
- Sends "trial ending" emails.
- Creates renewal invoices.
- Sends invoice reminders.
- Suspends overdue services.
- Terminates suspended services that are overdue.
- Cancels services flagged to end at the end of the term.
- Marks sent quotes past their valid-until date as Expired.
- Retries provisioning for services that were paid for but failed to set up.
Each step can be repeated safely. Running the task twice in one day does not create duplicate invoices.
Renewal invoices#
A service gets a renewal invoice when all of these are true:
- It is Active (suspended, pending, cancelled and terminated services are skipped) and not one-time.
- It has a next due date, and that date is within Create renewal invoices days from today. The default is 14.
- It is not flagged to cancel at the end of the term.
- No draft, open or paid renewal invoice already exists for that period.
- No plan change is scheduled for its renewal date. The change is applied that day first, so the invoice is for the new plan.
The invoice is issued and emailed immediately. Its due date is the service's next due date, so a monthly service due on 1 December is invoiced on 17 November. One invoice is created per client, per currency, per due date, with one line per service, for example "Shared Hosting, 1 Dec 2026 to 31 Dec 2026".
When the invoice is paid, the service's next due date moves to the day after the period it covered. If the service was suspended, it is switched back on.
Metered products add usage lines for the period that just ended. See Usage-based billing.
Reminders, suspension and termination#
All the settings are under Settings → Billing → Recurring billing.
| Setting | Default | What it does |
|---|---|---|
| Create renewal invoices | 14 days before due | How early renewal invoices are created. |
| Reminder schedule (days from due date) | -3,1,7,14 |
Comma-separated days. Negative numbers are before the due date. |
| Suspend unpaid services | 5 days overdue | 0 turns automatic suspension off. |
| Terminate suspended services | 30 days overdue | 0 turns automatic termination off. |
All the day counts are measured from the invoice's due date, not from the day the service was suspended.
With the defaults, a renewal invoice due on 1 December goes like this:
| Date | What happens |
|---|---|
| 17 Nov | Invoice created and emailed. |
| 28 Nov | Reminder 1, "due soon". |
| 1 Dec | Due date. |
| 2 Dec | Reminder 2, "overdue". |
| 6 Dec | Service suspended (5 days overdue). |
| 8 Dec | Reminder 3. |
| 15 Dec | Reminder 4. |
| 31 Dec | Service terminated (30 days overdue). |
How each step behaves:
- Reminders go to open invoices only. Each invoice gets at most one reminder per daily run, in schedule order. If an invoice is created with a due date already inside a reminder window, the first reminder goes out in the next run and the later ones follow on the days they are due. Clear the field to send no reminders.
- Suspension looks at open renewal invoices. An unpaid order invoice for a new service does not suspend anything. Suspension calls the server module, so the account is switched off at the host, and the service shows as Suspended.
- Termination only applies to services that are already Suspended. If you turn suspension off, nothing is terminated automatically either. Termination deletes the remote account. Set the terminate day later than the suspend day.
- A staff member can suspend, unsuspend or terminate a service by hand from the service page at any time.
If the server module fails to suspend or terminate, the service keeps its status, the error is shown on the service, and staff are emailed.
Billing cycles#
Products can be priced for these cycles: monthly, quarterly, every 6 months, annually, every 2 years, every 3 years, and one time. One-time products are invoiced once at order and never renewed. A period that starts on the 31st moves to the end of shorter months rather than skipping a month.