Selling domains through WHMCS is mostly automatic once a registrar module is configured, but administrators still handle exceptions: transfers that stall, renewals customers forget and domains whose status differs from the registrar. This guide covers the day-to-day domain work in the admin area.
Before you start
- A registrar module set up and TLD pricing configured. See registrar module setup and domain pricing.
- Funds in your registrar account.
Registrations
When a domain order is paid, WHMCS sends the registration to the registrar if Auto Registration is set for that TLD and the order is accepted. Check Orders → Pending Orders if registrations do not happen: orders may need manual acceptance. On the domain's page in the client profile, you can also click Register to send it manually.
Incoming transfers
- The client orders a transfer and enters the EPP (authorisation) code in the cart.
- After payment, WHMCS submits the transfer to the registrar.
- The domain shows Pending Transfer. Depending on the TLD, the current owner must approve an email, or the transfer completes after about five days.
- Domain sync updates the status to Active and sets the new expiry date.
Common reasons for stalled transfers: wrong EPP code, domain still locked at the old registrar, domain registered or transferred in the last 60 days, or privacy hiding the owner email. Contact the client with the specific cause from the Module Log.
Renewals
- WHMCS generates renewal invoices ahead of the expiry date based on Invoice Generation settings.
- Auto Renew on Payment renews at the registrar as soon as the invoice is paid.
- Configure Domain Renewal Notices in Automation Settings, for example at 30, 14 and 3 days before expiry and after expiry.
- Clients can toggle auto-renew per domain in the client area; disabled auto-renew means no renewal invoice is created.
Expired domains
After expiry, the registrar applies a grace period, then a redemption period with a higher fee. Set grace and redemption fees per TLD so WHMCS invoices the correct amount; a client renewing late should pay what the registrar charges you.
Keep data in sync
Enable Domain Sync and Sync Next Due Date in Automation Settings. The cron checks a batch of domains each run and updates expiry dates and status. Run it for a single domain with Sync on the domain page when a client reports a mismatch.
Outgoing transfers
When a client wants to leave, they can get the EPP code and unlock the domain from the client area if you allow it in General Settings → Domains. Respond promptly – registrar rules require you to release domains.
Troubleshooting
- Registration failed: read the Module Log – insufficient funds, invalid contact details or a premium domain are typical.
- Domain shows active in WHMCS but expired at registrar: renewal failed silently; renew manually and enable sync.
- Double charge on renewal: a domain renewed both automatically and manually. Check the Activity Log before refunding.
