Guide Reseller Hosting

How to set up WHMCS for a hosting business

Install it, connect a payment gateway, build products that match your plans, and run one full test order before trusting it with real clients.

Updated 9 min read Intermediate

WHMCS is billing, provisioning and client management software, and it is the platform most widely used across the hosting industry for exactly that combination. Setting it up properly takes an afternoon, not a week — the part worth taking seriously is testing it thoroughly before a real client's payment depends on it working correctly.

Before you start

This assumes you have already decided you need dedicated billing software. If you have not, do I need billing software to resell hosting? covers when that decision actually makes sense.

Get it installed

  1. Buy a licence and choose where to run it

    WHMCS runs on standard PHP hosting meeting its stated requirements. Check the current requirements against your intended hosting before installing, since they change between versions.

  2. Run the installer and lock it down afterwards

    The installer creates your database structure and admin account. Once installation completes, follow WHMCS's own instructions to remove or restrict access to the installer directory — leaving it accessible is a genuine security exposure, not a minor oversight.

Connect payment collection

Add a payment gateway capable of storing a client's payment method and charging it automatically on renewal, not just processing a one-off transaction. This is the single most important integration in the whole setup, since it is what turns "billing software installed" into "clients actually get charged on time".

Build products that match what you actually sell

Create one product per hosting tier you offer, with the correct recurring price and billing cycle. Keep the names and descriptions consistent with how you have packaged your plans elsewhere — see how to design the plans you sell if your tiers are not already settled — since a mismatch between what a client ordered and what they eventually receive is exactly the kind of thing that generates an early, avoidable support ticket.

Get pricing and billing cycles right before your first real order

Fixing a product's price after clients are already subscribed to it is more disruptive than getting it correct the first time — existing orders do not always update automatically, and you may end up managing two versions of the same plan. Double-check every product against your actual pricing before the store goes live.

Connect provisioning

WHMCS can create, suspend and terminate hosting accounts automatically by connecting to your reseller control panel through a provisioning module or API integration, so an order that is paid for results in a working account with no manual step from you. This is where most of the day-to-day time saving actually comes from, and it is worth setting up properly even if you start by provisioning manually and automating it once you trust the rest of the configuration.

Make it look like your business, not the default software

The order form, client area and every automated email are all customisable — logo, colours, domain, and critically, the actual wording. Default WHMCS templates are functional but generic; rewrite the client-facing text in your own voice before a real client sees it. How to white-label everything a client sees covers this in more depth, including nameservers and support identity alongside the billing side.

Test the entire cycle before trusting it

Place a genuine test order through your own order form, using a real payment method if your gateway supports test transactions, or a small real charge you refund afterwards. Confirm: the invoice generates correctly, payment is collected, the hosting account provisions automatically with the right settings, and the welcome email that goes out is accurate and properly branded. Then deliberately fail a payment and confirm the retry and reminder sequence behaves the way you configured it — this is the part most people skip, and the part most worth not skipping.

Decide what still needs a human

Not every situation should be fully automated. Decide upfront which actions — a refund, a manual price adjustment for a long-standing client, an exception to your normal suspension timing — require you to step in rather than letting the software act on its default rules. Building this in from the start avoids the awkward situation of an automated suspension or charge going out in a case you would clearly have handled differently by hand.

Keep it maintained

Apply WHMCS updates when they are released, particularly security releases — it is client payment data and account access sitting behind this software, which makes it a meaningful target if left outdated. Review your product pricing and gateway settings periodically as well, rather than assuming a configuration that was correct at setup stays correct indefinitely.

Once this is running and tested, most of what used to be manual billing and provisioning work happens without you, which is the entire point of setting it up properly in the first place.

Related reading