Selling domains next to hosting is almost free money: the client wants both, the registrar does the work, and WHMCS handles the renewals. It is also the easiest place to lose money, because TLD prices change and a stale price list sells a domain for less than it costs you. This is the setup that keeps the numbers right.
Choose a registrar
WHMCS ships with modules for the reseller registrars: ResellerClub, eNom, OpenSRS, Namecheap, and many more through the marketplace. Pick one with a reseller API and a low deposit rather than the one with the cheapest .com; the cost difference is pennies and the API quality decides how many tickets you get.
Sign up for a reseller account, deposit funds, and collect the API credentials. Most registrars also require you to allow-list the IP address of your WHMCS server before the API answers.
Activate the module
Configuration → System Settings → Domain Registrars. Find the registrar, click Activate, enter the credentials, and test with a WHOIS lookup from Utilities → Domain Resolver or by searching a domain in your own store. If the search hangs, it is the IP allow-list or a firewall on outbound port 443 from your server.
Import prices with TLD Sync
Do not type prices in by hand. Utilities → Registrar TLD Sync pulls every TLD your registrar offers, with its cost for registration, transfer and renewal. The screen shows your cost, your current price and the margin, and lets you:
- Import only the TLDs you want to sell. Twenty is plenty; nobody buys .accountants from a hosting company.
- Apply a markup, either a percentage or a fixed amount, to all of them at once.
- Set the registrar for each TLD, if you use more than one.
The result lands in Configuration → System Settings → Domain Pricing, where you can still adjust individual TLDs. Run the sync again every few months; registries raise prices, and the tool highlights TLDs where your price has fallen below cost.
Set the domain options
Still under Domain Pricing, each TLD has a settings column:
- DNS Management, Email Forwarding, ID Protection: whether clients can buy these and for how much. ID protection is expected on gTLDs and usually free at the registry, so charging for it looks bad.
- EPP code required: on for transfers of almost every TLD.
- Auto-registration: on, so a paid domain order goes to the registrar without you clicking anything.
Under General Settings → Domains, set your default nameservers. These are what new domains are pointed at unless the client changes them; for a reseller on our platform that is your own branded ns1.yourbrand.com and ns2.yourbrand.com.
Renewals
Domains renew on their own only if two things are true: the renewal invoice is paid, and Automation Settings → Domain Renewal Days is set so the invoice goes out early enough. Sixty days before expiry, with reminders at thirty and seven, is a sane default. Registries add redemption fees after expiry, and a client who lets a domain lapse will blame you.
Also tick Domain Sync under Automation Settings. It asks the registrar for the real expiry and status of every domain nightly, so a domain renewed at the registrar directly, or transferred away, is reflected in WHMCS.
Transfers in
A transfer needs the EPP code from the old registrar and a domain that is unlocked and more than sixty days old. WHMCS collects the code at checkout and submits it; the registry then emails the current owner to approve. Tell clients this in the order confirmation, or they will open a ticket asking why the transfer is "stuck" five days later.
Watch these three numbers
Registrar balance. A reseller account with an empty balance fails every registration silently from the client's side; WHMCS logs it in Module Log. Set a low-balance alert at the registrar.
Renewal price versus cost. The TLD Sync margin column, checked quarterly.
Domains with no hosting. Clients who only hold a domain with you are the ones most likely to forget to renew. Make sure their contact email is real.
WHOIS and availability on your site
The same registrar module powers the domain search box on your storefront. If you also want a lookup tool on your marketing site, we run one on ours using public RDAP data: WHOIS lookup. It shows the registrar, dates and nameservers for any domain, and hands a free name straight to the cart.