#Why This is Even a Topic
If you use WHMCS, you're likely familiar with the issue: Invoices are typically generated X days before they are due. This results in customers receiving invoices scattered throughout the month, depending entirely on when they placed their order. For example, a customer making a purchase on February 15 will receive their next invoice on March 5, for a service starting on March 15.
This creates confusion, particularly in the B2B space, where invoices should be collected, recorded, and contracts made more predictable. Customers actually expect to receive their invoices on the due date.
Our Goal:
We aim for our customers to receive a consolidated invoice on the 1st of each month for all services due throughout the month, even if a product is due on the 25th.
The best part: These invoices are directly sent to Lexoffice, thanks to our custom WHMCS ↔ Lexoffice module. Everything remains GoBD-compliant, automated, and accountant-friendly.
There is a WHMCS Pro-Rata alternative:
This forces all products to have a uniform billing date (e.g., the 1st of the month). Initially practical, yet has pitfalls:
Especially during the order process, things can quickly become confusing. For instance, if an order is placed on the 25th, WHMCS calculates the remaining days of the month plus the entire following month at once. The result? A higher price than advertised, which can lead to customers dropping off. This is particularly counterproductive for B2B customers expecting clear price transparency.
Even if the setting doesn't invoice for an additional month, paying for just five days seems odd, resulting in awkward fractional costs.
#Technical Implementation: Proper Use of WHMCS Cron Jobs
WHMCS offers the option to selectively activate or skip certain tasks during cron job execution. This flexibility is key to our concept.
Instead of running the standard cron job daily or every five minutes with all actions, we split the tasks:
#Daily Cron (every 5 minutes, without invoices & suspensions):
* * * * * --CreateInvoices ➜ skips invoice creation
--AutoSuspensions ➜ skips automatic suspensions
This way, the cron runs as usual handling modules, upgrades, domain renewals, etc. – excluding invoices and suspensions.
➡ To the official WHMCS Cronjob parameter list
#Monthly Cron (on the 1st at 10:00 AM):
It's only on the 1st of the month that we create all due invoices and activate automatic suspension for overdue clients.
We specifically chose 10:00 AM – this way, our support team is available if customers have any inquiries.
#Adjusting the Due Dates
With these settings, WHMCS would make the invoice immediately due. To prevent this, we developed a hook that overrides the invoice date for each created invoice.
This hook is available for purchase through our WHMCS Store. The hook is entirely open-source and isn't encrypted with Ioncube.
#Additional Important Settings
#Invoicing vs. Due Dates
We set our payment lead to 28 days. So the customer receives, for instance, an invoice on April 1 for a service due on April 25. This provides transparency and predictability – especially for contract clients.
#Adjusting Automations
For this to work, you must also adjust the grace periods and escalation levels in WHMCS. Otherwise, you might encounter nasty surprises: invoice arrives on the 1st, but the system wants to suspend on the 10th, even though the client has 28 days.
#Suspensions? Better Manually.
We've found that automatic suspensions can be perilous – particularly for new WHMCS users without 100% clean payment allocations (e.g., transfers).
My Tip:
Better review suspensions manually
Simply add the support address to CC in WHMCS email templates for reminders and invoices to maintain oversight.
#Conclusion
If you, like us, prefer to send invoices structured and consolidated, the start-of-month strategy is spot on. It requires some configuration and understanding of WHMCS’ cron logic, but the impact on your clients is noticeable.
And with our Lexware Office Module, everything comes together nicely: clean PDFs, GoBD-compliant, E-Invoice ready, including dunning processes.
If you need support implementing this or wish to test our Lexoffice module – feel free to reach out. I’m confident: even your bookkeeping can be smoother.
