Domains Management

From WHMCS Documentation

Revision as of 07:22, 23 October 2014 by John (talk | contribs) (How it Works)

WHMCS allows the automated management of domains with a wide selection of built in registrars. From WHMCS you can view, modify and request all of the common things you are likely to need when providing and supporting users with their domains.

If you are looking for information on configuring domain related settings inside WHMCS, please refer to the Domains Configuration page

Available Management Features

  • Domain Registration
  • Domain Transfers
  • Renewal/Extensions
  • View Nameservers
  • Change Nameservers
  • View WHOIS Information
  • Update WHOIS Information
  • Lock/Unlock Domains
  • ID Protection
  • EPP Code Retrieval
  • Register/Manage Private Nameservers
  • DNS Record Management
  • Email Forwarding Management

Most features are available for all but some are only available on certain registrars. Refer to individual registrar's documentation @ Domain Registrars for specific information.

Where can I manage domains?


  • As an administrator, you can manage domains from the Domains tab inside a Clients Profile
  • On this page, you can see nameservers and lock status in realtime alongside the stored values from the database
  • You'll also see a row labelled Registrar Commands with options such as Renew, Modify WHOIS, Get EPP Code, etc...
  • Clicking any of those buttons will perform the relevant option live with the domain registrar

Domain Addons (DNS Management, ID Protection and Email Forwarding) can be enabled/disabled from this page. Ticking/unticking the appropriate checkbox and clicking Save Changes will enable the feature and adjust the Recurring Amount accordingly.


  • Clients also receive full access to the management tools from the client area
  • Like you, they have access to view and change the current nameservers, change the lock status of their domain*, change the auto renewal setting, view/edit WHOIS information, manage the dns records*, configure email forwarding*, register nameservers*, request the epp code* and order a renewal for their domain (*if supported by the registrar)

In Bulk

The following bulk actions are available to clients beneath the Domains list saving time when making the same changes to a number of domains. To use simply tick the domains to be modified and select one of the following options from the dropdown menu:

  • Manage Nameservers - Select Use default nameservers and WHMCS will automatically match the server the hosting account of the same domain is assigned to (if hosting exists), or using the system wide default for domain only orders. Select Use custom nameservers to activate the fields to enter other nameservers.
  • Auto Renewal Status - Enable/Disable Auto-Renewal of all the selected domains.
  • Registrar Lock Status - Enable/Disable the registrar lock for all the selected domains.
  • Edit Contact Information - Select Use existing account contact and choose from the dropdown menu to use the details of one of the contacts or sub-accounts under this client's account. Select Specify custom information below to enter the contact details to be applied to the selected domains.
  • Renew Domains - Renew the selected domains - on the next screen you will be able to choose how long to renew each domain for individually.

Handling New Domain Registrations & Transfers

To perform a new domain registration or initiate a transfer, first an order must be placed for it. A customer can do that from the client area or you can create one using the admin side order process. Once you have the order, the domain registration can then be processed in a number of ways.

  1. Firstly if you have automatic registration on payment enabled, then you can simply navigate to the invoice for the domain registration order and mark it paid, either by manually applying a payment, or by running a capture from a customers selected payment method, and as soon as the invoice is successfully marked as paid, the domain order will get submitted to the domain registrar.
  2. Alternatively, if automatic registration is not enabled, then you have the option to attempt the registration when accepting the pending order by ticking the Send to Registrar checkbox and choosing the registrar to use in the Registrar dropdown menu in the order accept options
  3. Or finally, if automatic registration is not enabled and the order has already been accepted, you can navigate to the domains record within the clients profile area, and from there select a domain registrar to use in the Registrar dropdown menu, and then save, before clicking on either the Register or Transfer buttons in the Registrar Commands options that appear as required. These buttons allow you to initiate the remote API calls manually (this is the same process as is used for re-attempting a failed registration or transfer described in more detail below)

Handling a Failed Domain Registration

If an automated domain registration (or transfer initiation) attempt fails, then once the error has been corrected, you can have WHMCS re-attempt the registration or transfer. To do this you simply navigate to the domain record for the domain in question, and ensuring the appropriate domain registrar is selected in the Registrar dropdown menu (saving changes if you need to make an adjustment), simply click the Register or Transfer buttons from the Registrar Commands row of buttons as required. This will then ask you to confirm you want to proceed before re-attempting submitting the calls to the domain registrar's API. So there is no need to place a new order should it fail.

Any errors that come back from the remote systems API will be displayed on screen immediately when performing a manual registration attempt in this way. Common errors are addressed in the specific individual domain registrar pages of our docs so please refer to the Domain Registrars section for help and advice on those, and if unable to find an answer there you will need to get in touch with the registrar in question for advice.

Viewing/Editing Domain Nameservers

For any domain that is assigned to a registrar module in WHMCS, viewing and editing the nameservers the domain points to is a seamless integrated process. The nameserver fields will appear as part of the domain records fields when viewing a domains details via the Domains tab inside a Clients Profile. And any changes you make to those fields and submit will be communicated remotely to the selected domain registrar in the background by WHMCS and updated automatically.

Viewing/Editing Locking Status

Similarly, if the registrar module a domain is assigned to supports domain locking/unlocking then a Registrar Lock field will appear along with the nameserver fields on the domains management page and checking or unchecking the box and saving will submit that change to the domain registrar as well.

Viewing/Editing WHOIS Information

To view and make changes to the WHOIS Contact Information assigned to a domain inside WHMCS, from the domains details page/tab within a Clients Profile, click on the Modify Domain Contact Details button in the Registrar Commands row of buttons. You will then be taken to a screen listing the current contact information and which allows you to make changes to it and submit them. WHOIS Information is not stored locally in WHMCS and so is always queried in real-time from the selected domain registrar so any updates you make will take immediate effect.

Domain Renewals

How it Works

By default, domains will invoice automatically in advance of the renewal date. How far in advance is determined by your invoice generation settings in Setup > Automation Settings

Domains will auto invoice for renewal providing that they are in Active status, and the "Do Not Renew" option is not checked in the domains profile. Clients also have the ability to both enable and disable the Do Not Renew option via the Auto Renew settings for a domain in the client area. This can be enabled/disabled on a per domain basis.

The reason it is called Auto Renew is that if a domain is invoiced for renewal, and you use a merchant payment gateway, and your client has chosen to pay via that method, and has a credit card stored on file, then on the due date that invoice will be automatically attempted for capture.

Automatic invoices for renewal generate using the Recurring Amount value that is set for the domain at the time of purchase. This means that if you increase your domain prices, existing clients prices will not be affected. If you would like to change existing customers pricing then that can be achieved using the Bulk Pricing Update Utility

Any time an invoice for a domain renewal is successfully marked paid, be it either automatically as above, or manually due to an admin applying payment to it from the admin area, and if the domain is assigned to a registrar module in WHMCS, then a renewal command will be sent to that domain registrar's API to process the renewal. This is controlled via the setting Auto Renew on Payment in Setup > General Settings > Domains and so can be turned off if desired.

Clients can also order renewals on demand at any time. This enables a client to renew a domain early, well in advance of expiry, to extend their domains at any time they wish. This is done via the shopping cart by selecting the Domain Renewals category. Domain renewals ordered in this way use the current pricing as defined in Setup > Products/Services > Domain Pricing for the renewals.


Certain payment gateways (such as PayPal and 2Checkout) offer the ability to automatically send payments of a fixed amount on a fixed schedule - called Subscriptions. Products always renew on the same date so for these it makes sense to use a subscription. However domains can be renewed at pretty much any time - including 30 days after they have expired.

Furthermore clients are liable to forgetting they have created a subscription for things, so after receiving the mandatory expiration notices could well result in them manually renewing the domain. However this would not prevent the subscription from sending its payment - thereby the domain being renewed twice in the same year.

As a result WHMCS will not offer clients the option to create such subscriptions when paying for a domain renewal invoice.

Grouped Renewal Reminders

WHMCS will automatically group together upcoming domain expiration notice emails into a single email for each client. This means a client with multiple domains expiring in the same month they receive a single reminder email for them all instead of being bothered by an individual email for each domain.

Any domain reminder option that is set to 30 or more will send on the 11th of the month. This will group together any domains for a client that expire "in the next xx days".

Anything less than 30 would be sent exactly on the day that the reminder is defined. This will still group together the domains, but in the format of "the domains will expire in xx days", so only domains that have the same next due date will be grouped for these notices.

Once a reminder is sent, this is defined against the client domain record so another notice is not sent for the same period.

Notices are sent based on the next due date on the domain, not the expiry date. This is because the expiry date can be different to the next due date, if you wished to have your client renew the domain early for example.

Email Syntax

The grouped renewal reminder feature provides advanced variables allowing for the customisation of the domain renewal emails sent to clients. Under normal operation the renewal reminder email template can be left as default, but advanced users interested in customising it, the available options are summarised here.

  • $days_until_expiry - Set when sending the reminder notice for 30 days or more on the 11th of the month. This is set to the value defined in the reminder settings.
  • $expiring_domains - This is set when a reminder notice for 30 days or more is sent on the 11th of the month. This contains a list of the domains expiring "in the next" XX days. This is an array of information containing domainid, name, nextduedatem expirydate and days.
  • $domains - Set for reminders of less than 30 days where more than one domain has the same next due date on the client account. This is populated with the domain information - domainid, name, nextduedate, expirydate.

Manually Registering/Renewing a Domain

For some trusted customers, or indeed for your own domains, you may wish to register or renew a domain without payment. To do this:

  1. Navigate to the domains tab in the client's profile for the desired domain
  2. Click the Renew button in the Registrar Commands row of buttons to immediately send a renewal request to the domain registrar
  3. If successful, the expiry date will update. You should also increment the next due date if you are manually handling payment as below.

Now if the domain is already invoiced, and automatic renewal on payment is enabled, when that invoice is paid under normal circumstances, another domain renewal request would get sent to the registrar. That is unless you stop it. So to do that you need to also perform these steps:

  1. Locate the invoice for the domain (click the View Invoices link on the domain page to jump straight to a list of invoices for just that domain)
  2. Copy the line item and amount for the domain from the existing line to a new invoice line item and save
  3. Then delete the original line item from the invoice and by doing that you are removing the actual link to the domain when paid so no further renewal will occur

Moving a Domain to another Client

Transfer Domain Popup
  1. When viewing the Domains tab of the domain you want to move, click Move Domain to Another Client located at the top-right of the page
  2. A popup box will appear (you will need popup blockers disabled to use this)
  3. In the popup enter the ID of the new owner. If you don't know the client's ID the Search field can be used to search by name, company or email address. Click the client's name and the ID will be filled in.
  4. After selecting the desired client, click the Transfer button
  5. The domain will then be moved, the window will close, and the original window will refresh to show the domain under its new owner.
  6. This process won't change the whois details on the domain, so if you wish to update those you'll need to click the "Modify Contact Details" module Command button on the client's Domains tab.


Invoices cannot be moved between clients, therefore when moving a domain any invoices will remain under the old owner. Therefore it would be advisable to check the old owner's Invoices tab for any unpaid invoices for this domain and cancel them. If you wish to invoice the new owner for the domain, move the Next Due Date forward/back by one day and a new invoice will be generated when the cron next runs.

Deleting a Domain from a Client

  1. When viewing the domain you want to delete, scroll to the bottom of the page and click the red Delete link
  2. After clicking this link, you will be asked to confirm if you are sure you want to delete the domain
  3. If you click No you will be returned to the page, if you click Yes, the item will be deleted and you will be taken to the next domain under that client

Note: Deleting a domain from WHMCS will not perform any action at the domain registrar.