Skip to main content
.com domains from $2.99 — free WHOIS privacy on every name

Stack Notes

WHMCS hosting — Every invoice you send depends on one cron entry

If the daily task misses its run, invoices do not generate, payment retries do not fire and overdue accounts stay active — quietly, for as long as nobody thinks to check.

The short answer

Buy hosting already configured to the WHMCS requirements with a legitimate licence attached: a current PHP release with the ionCube loader present, a real system cron, SSL, and the billing system on its own account rather than sharing one with the marketing site. Our WHMCS License is $6.99 a month, so both halves arrive on a single order.

Below: how to verify the cron actually ran rather than assuming it did, how to confirm ionCube and the required extensions are loaded, why isolating billing is worth the extra account, and what to monitor once it is live.

By the HostingFast team · Reviewed 24 August 2026

24/7

Humans on support, any hour

1-click

WordPress deployment

Free

SSL, issued and renewed

Daily

Backup cadence, every plan

The daily cron run is the pulse of a WHMCS installation. Invoice generation, payment retries, overdue suspensions and renewal reminders all hang off that one scheduled task, which turns cron reliability into a revenue-protection feature rather than a technical footnote.

It is also a failure that hides. Nothing errors visibly when the task stops firing; invoices simply do not appear, and by the time somebody notices, the gap is several days wide and has to be reconciled by hand. Monitoring the last successful run is the cheapest insurance in this entire stack.

Verify the cron, then monitor it

Confirm it is a genuine system cron entry rather than a task triggered by page views. Then check what the system itself reports as the last successful run — that timestamp is the single most informative number in a billing installation, and it is the one nobody looks at until something has gone wrong.

Set an alert on it. Any check that raises a flag when the last completion is older than a day will pay for itself the first time a change to the account silently disables the schedule. Watch for overlap as well: a run that occasionally takes longer than its interval should not be starting a second copy on top of the first.

Our plans run real cron entries, which is why scheduled billing behaves the same at four in the morning as it does during office hours.

Check the runtime rather than assume it

The ionCube loader has to be present, and confirming that takes one command over SSH or one glance at the loaded modules. It is stated as a requirement everywhere and still accounts for a large share of failed installations, because "the host says it supports WHMCS" and "the loader is enabled on this account" are different claims.

Then check the PHP version against what the software currently supports. Per-site version switching from the control panel matters here: the billing system can sit on the branch it needs while the marketing site sits on a different one, which removes the usual argument entirely.

Unlicensed or grey-market WHMCS is the trap this market never stops setting: nulled billing software is a customer-data breach delivered with an installation wizard attached.

The order we would place

Buy hosting already configured to the WHMCS requirements with a legitimate licence attached — ours supplies both halves on one order instead of leaving you to assemble them.

In our line-up that is the WHMCS License plan at $6.99 a month, alongside hosting that carries SSL, free migration, mailboxes on your own domain, daily backups and renewal charged at the order rate.

The rate you sign up at is the rate you renew at, so year two costs exactly what year one did — no ambush waiting in the invoice.

Isolate the billing system

Keep it on its own account, on its own subdomain. The billing system holds customer records and payment details; the marketing site is where a new plugin gets tried out on a Friday afternoon. Sharing an account means the second one's attack surface belongs to the first, which is a poor trade for the convenience saved.

Separation also makes the operational side sane. Independent backups, an independent PHP version, an independent restore, and a change to one that cannot possibly take down the other. It is inexpensive prudence for software that sits directly on the revenue path.

A founder running their own hosting brand from one screen

Licence and runtime on one order

Assembling a licence, a compatible PHP build and a working cron from three suppliers is a weekend nobody enjoys. Buying them together is not a clever product idea; it is simply the sensible arrangement.

Every plan ships with a free SSL certificate that renews itself ahead of expiry — non-negotiable for a system that handles customer payment records.

  • Real system cron, not visitor-triggered
  • ionCube loader present, verifiable in a command
  • Per-site PHP version, so billing picks its own
  • Licence and hosting on a single order

Why HostingFast

Standard on every plan

A licence with a clear origin

The WHMCS License at $6.99 a month, bought properly, so there is no question about where the software came from.

Cron that keeps time

Genuine system cron entries, so invoice runs, retries and suspensions fire on schedule rather than when a visitor happens by.

Runtime already correct

The ionCube loader and the required extensions are in place by default rather than on request.

Per-site PHP versions

Billing runs the branch it needs while the marketing site runs a different one, with no argument between them.

A company on the record

Vitalcare at Home Ltd, registered in England and Wales — worth verifying before customer payment records live on the platform.

Backups you restore yourself

Daily backups with a self-service restore, which is the difference between a bad hour and a bad week.

Quick Start

From order to online

  1. 1

    Read the last successful run

    Find the timestamp for the daily task and alert on it. A schedule nobody monitors is a schedule that will eventually stop.

  2. 2

    Confirm the loader is loaded

    One command over SSH. "Supports WHMCS" on a sales page and "enabled on this account" are not the same statement.

  3. 3

    Give billing its own account

    Separate subdomain, separate backups, separate PHP version. The marketing site's experiments then stay the marketing site's problem.

Built In

Loaded onto every plan

  • Webmail plus IMAP, POP and SMTP for any mail client
  • Per-site PHP version switching from the control panel
  • A daily backup, restored from the panel without a ticket
  • Mailboxes running on your own domain name
  • A one-click installer covering WordPress and 400+ applications
  • LiteSpeed cache built into the server, not bolted on by plugin
  • DDoS filtering absorbed out at the network edge
  • Free migration carried out by our engineers
  • Money-back cover: 30 days on hosting plans, 7 on reseller
  • First year of your domain included on annual orders

Frequently Asked

What people ask us most often

How do I confirm the billing cron actually ran?

Read the last successful run timestamp the system records, rather than trusting that the entry exists. An entry can exist and still fail every night — a wrong path, a permissions change, a PHP binary that moved. The timestamp is the only evidence that matters, and putting an alert on it is a five-minute job that eventually saves a reconciliation.

How do I check the ionCube loader is present?

List the loaded PHP modules over SSH, or open the panel's PHP information page and search for it. Do this on the exact account the software will live on and with the exact PHP version it will run under, because the loader is enabled per version. That specificity is what separates a working install from an afternoon of confusing errors.

Should billing share an account with the marketing site?

No. Keep it on its own account and its own subdomain. The billing system holds customer and payment records; the marketing site is where somebody tries a new plugin on a Friday. Sharing an account hands the first one the second one's attack surface, and separation also gives you independent backups, restores and PHP versions.

Which PHP version should the billing site run?

Whichever branch the software currently supports — and check that against the vendor's documentation rather than against what the rest of your hosting happens to be on. Per-site version switching means the billing installation can sit exactly where it needs to be while everything else follows its own schedule, which removes the usual reason people delay upgrades.

Keep reading

Changing hosts? Run through our checklist first.

A straightforward sequence for a switch your visitors never feel: which files move first, how to shift email across without losing a single message, the right moment to repoint DNS, and the two mistakes behind almost all the downtime we get asked to rescue.

You'll get the checklist email, then occasional pointers on keeping a site running fast. Unsubscribe the moment you want out — the privacy policy covers the rest.

Protect the billing run.

Real cron, the loader already in place, licence and hosting on one order, and a renewal rate that never moves.

View WHMCS License plans