Domains Management

From WHMCS Documentation

(Redirected from Domains Configuration)

WHMCS allows the automated management of domains with a wide selection of built in registrars.

In WHMCS, you can configure your settings and choose registrars to customize how you sell domains. After domain purchases, you can perform all of the common tasks you are likely to need when providing and supporting users with their domains.

Domain Management Features
The exact domain management features that are available depend on the domain registrar you choose. For a list of available features, see the individual registrar's documentation.

Domain Configuration

Before you can sell domains, you must configure domain registration and other important settings. You can configure the following domain-related settings:

System Domain Settings

You can configure the domain options you offer (registration, transfers, or using the client's own domain) and various payment and renewal settings in the Domains tab at Configuration () > System Settings > General Settings or, prior to WHMCS 8.0, Setup > General Settings.

Registrar Configuration

You can configure domain registrars at Configuration () > System Settings > Domain Registrars or, prior to WHMCS 8.0, Setup > Products/Services > Domain Registrars.

You can use the Email registrar module to sell TLDs that none of the supported registrar modules allow. This lets you use WHMCS to accept the order and invoice the client while you perform the domain registration, renewals, and updates manually.

Domain Pricing

You can configure your own pricing for domain registrations at Configuration () > System Settings > Domain Pricing or, prior to WHMCS 8.0, Setup > Products/Services > Domain Pricing.

You can also use automatic domain registration for many TLDs to ensure that WHMCS automatically submits renewal requests as soon as you receive payment.

Offering Free Domain Registration with Selected Packages

In WHMCS 8.2 and higher:

  • Domains cannot be renewed individually through the Client Area if they are eligible for free renewal bundled with a product or service..
  • You can choose whether to send free domain renewal notices. For more information, see Domain Renewal Notices.

With WHMCS, you are able to offer free domains with your packages clients purchase them with certain payment terms. For example, you might want to offer a free domain when a client purchases an annual package.

For more information, see Free Domains.

Domain Renewals

You can configure whether domains renew before sales, or you can enable or disable auto renewals for a specific purchased domain from within the client profile.

To disable automatic renewals for a specific domain if, for example, you do not want to generate an invoice and want the domain to expire, toggle Disable Auto Renew to YES in the Products/Services tab of the client's profile. Clients can do this by toggling the option in the Client Area domain details page.

For specific information about domain renewals, renewal pricing, and auto-renewals in WHMCS, see Domain Renewals.

Domain Renewal Notices

Domain Reminder Settings

By default, the system sends at least two domain renewal notices prior to expiration and one following it.

  • You can change the timing, send reminders before and after a domain's expiration date, or disable it.
  • You can view information about past remimnders in the client's Email tab or in the system logs in the Domain Renewal Reminder Emails report for ICANN compliance, if your module supports this.
  • You can change the interval at which WHMCS sends domain renewal reminder notices at Configuration () > System Settings > Automation Settings or, prior to WHMCS 8.0, Setup > Automation Settings.
  • You can customize renewal notice emails at Configuration () > System Settings > Email Templates or, prior to WHMCS 8.0, Setup > Email Templates.

For more information, see Domain Renewal Notices.


WHMCS allows you to customize certain aspects of domain sales and management:

WHOIS and Domain Field Customization Retentions

WHMCS 7.0 introduced override capabilities to WHOIS servers and additional domain fields. These provide an easy way to maintain customisations during automatic updates. In addition, the location and format for some of these files changed.

For more information, see WHOIS Servers and Additional Domain Fields.

WHMCS will report the results from the Whois servers. Some Whois servers may not correctly report reserved or premium domains.

Domain Name Length Restrictions

The major TLDs have length limits by default. You can specify your own for any others by adding lines like these to the WHMCS configuration.php file:

$DomainMinLengthRestrictions[".asia"] = 3;
$DomainMaxLengthRestrictions[".asia"] = 64;
$DomainMinLengthRestrictions[".ws"] = 4;
$DomainMaxLengthRestrictions[".ws"] = 63;

Domain Renewal Restrictions

Many TLDs have restrictions on renewal before and after expiration (the grace period). For example, you can typically renew a .com 40 days after the expiry date, while you can renew .uk domains between 180 days prior to expiration up to 97 days afterwards (registrar dependent).

The major TLDs have grace periods by default. You can specify your own for any others by adding lines such as these to the configuration.php file:

$DomainRenewalGracePeriods[".com"] = "40";
$DomainRenewalMinimums[""] = "180";
$DomainRenewalGracePeriods[""] = "97"; 

You can also specify multiple grace periods and minimum advance renewal restrictions in a single entry:

$DomainRenewalGracePeriods = array(".com"=>"30",".net"=>"40",".uk"=>"97");
$DomainRenewalMinimums = array(".com"=>"180",""=>"90");

There are defined default Domain Grace and Redemption Period values for over 800 of the most common TLDs and extensions. For more information, see Domain Grace and Redemption Period Defaults.

The default Minimum Renewal Periods are: = 180, = 180, = 180, = 90, = 90, = 90

The default minimum length is three characters and the default maximum length is 63 characters for the following TLDs:

.com, net, .org, .info, biz, .mobi, .name, .asia, .tel,.in, .mn, .bz, .cc
.tv, .us, .me,,,,, .ch, .li, .de, .jp

Domain Pricing Page Layout

The Client Area Domain Extension Pricing page is at cart.php?a=add&domain=register. It is designed to provide visitors and clients an intuitive overview of your extension pricing. The layout of this client area page should aid you in promoting your best extensions.

Tld client spotlight logo.png

For more information about domain spotlights, see Domain Pricing Matrix.

Domain Categories

Domain Categories are used on cart.php?a=add&domain=register to group domain TLDs into categories such as Popular, Shopping, or Real Estate and makes it easier for clients to navigate and find their ideal domain extension.

For more information about customising the domain categories, see Domain Categories.

Managing Client Domains

Domain Registrations

Some scenarios may require you to work with domain registrations as they occur:

Handling New Domain Registrations and Transfers

To perform a new domain registration or initiate a transfer, someone must first place an order 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 system can process the domain registration in several ways.

  • If you have automatic registration on payment enabled, then you can navigate to the invoice for the domain registration order and mark it as paid, either by manually applying a payment, or by running a capture from a customers selected payment method. As soon as the invoice is successfully paid, the system will submit the domain order to the domain registrar.
  • If you haven't enabled automatic registration, you have the option to attempt the registration when accepting the pending order by selecting the Send to Registrar checkbox and choosing the registrar to use in the Registrar menu in the order accept options.
  • If you haven't enabled automatic registration and the order is already 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 menu. Then, save before clicking on either of the required Register or Transfer buttons in the Registrar Commands options. These buttons allow you to initiate the remote API calls manually (this is the same process as reattempting a failed registration or transfer below).

Handling a Failed Domain Registration

If an automated domain registration (or transfer initiation) attempt fails, the system will notify administrators in the following ways:

  • An "WHMCS Automatic Domain Renewal Failed" email to administrator roles with the Account Emails permission.
  • An entry in Utilities > To-Do List.
  • And entry in Utilities > Module Queue.
    • The daily WHMCS Cron Job Activity email contains a summary of pending module actions in the queue at the bottom.

Once the error has been corrected, you can have WHMCS reattempt the registration or transfer. To do this, navigate to the domain record for the domain in question. Make sure the appropriate domain registrar is selected in the Registrar menu (saving changes if you need to make an adjustment). Then, click the Register or Transfer buttons from the Registrar Commands row of buttons. The system will prompt you to confirm you want to proceed before reattempting to submit the calls to the domain registrar's API. There is no need to place a new order if it fails.

Any errors that come back from the remote systems API will display on the screen immediately when performing a manual registration attempt in this way.

For more information and common errors, see Domain Registrars or contact the registrar.

Domain Management for Clients

Clients receive full access to the management tools from the client area. If the associated registrar supports it, they can perform actions like:

  • Changing or registering nameservers.
  • Changing the domain's lock status.
  • Changing the auto renewal setting or ordering renewals.
  • Viewing or editing WHOIS information.
  • Managing DNS records.
  • Configuring email forwarding.
  • Requesting EPP codes.

Domain Management for Admins

As an admin, you can manage individual domains from the Domains tab in a client's profile.

  • This displays current nameservers and lock status with the stored values from the database.
  • You can use this page to perform registrar commands (for example, Renew, Modify WHOIS, and Get EPP Code).
  • You can enable or disable domain addons (for example, DNS management, ID protection and email forwarding).

Managing Domains In Bulk

The following bulk actions are available to clients beneath the Domains list in the client profile. They allow you to make the same changes to a number of domains.

To use this, select the domains to modify and select one of the following options from the menu:

  • Manage Nameservers — Select Use default nameservers and WHMCS will automatically match the server to which you have assigned the hosting account for the same domain (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 or Disable Auto-Renewal of all the selected domains.
  • Registrar Lock Status — Enable or Disable the registrar lock for all the selected domains.
  • Edit Contact Information — Select Use existing account contact and use the 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 apply 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.

Viewing/Editing Domain Nameservers

For any domain you have 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 Domains tab inside a Clients Profile. The system will communicate any changes you make to those fields and submit remotely to the selected domain registrar in the background by WHMCS, and update them automatically.

Viewing/Editing Locking Status

Similarly, if the domain's registrar module supports domain locking and unlocking, a Registrar Lock field will appear along with the nameserver fields on the domains management page. 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 for a domain inside WHMCS, from the Domains tab within a Clients Profile, click Modify Domain Contact Details in Registrar Commands. A screen will appear listing the current contact information, which allows you to make changes to it and submit them. The system doesn't store WHOIS Information locally in WHMCS, so it always queries it in real-time from the selected domain registrar so any updates you make will take immediate effect.

Moving a Domain to another Client

Transfer Domain Popup

To move a domain to a new client:

  1. When viewing the domain you want to move in the Domains tab, click Move Domain to Another Client at the top-right of the page.
  2. In the window that appears, enter the ID of the new owner. If you don't know the client's ID, you can search by name, company, or email address. Click the client's name and the system will fill in the ID.
  3. Click Transfer. The system will move the domain, the window will close, and the original window will refresh to show the domain under its new owner.

This process won't change the WHOIS details on the domain. If you wish to update those, click Modify Contact Details in the Domains tab.

You can't move invoices between clients. Because of this, when moving a domain, any invoices will remain under the old owner. We recommend that you 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 or back by one day and the system will generate a new invoice when the cron next runs.

Deleting a Domain from a Client

When viewing the domain you want to delete, click More and then click Delete. After clicking this link, the system will prompt you to confirm whether you are sure you want to delete the domain.

  • If you click No, you will return to the page.
  • If you click Yes, the system will delete the item and you will view the next domain under that client.

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

Domain Renewals

By default, domains will invoice automatically in advance of the renewal date. Your invoice generation settings in Configuration () > System Settings > Automation Settings or, prior to WHMCS 8.0, Setup > Automation Settings determine how far in advance renewal invoicing occurs.

Domains will auto invoice for renewal if they are in Active status and the "Do Not Renew" option is deselected 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 or disabled on a per domain basis.

For Auto Renew, 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 they have a credit card on file, then, on the due date, the system will automatically attempt that invoice for capture.

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

Whenever the system marks an invoice for a domain renewal as paid, either automatically as above or manually due to an admin applying payment to it from the admin area, if you assigned the domain to a registrar module in WHMCS, then the system will send a renewal command to that domain registrar's API to process the renewal. You can control this via the setting Auto Renew on Payment in the Domains tab at Configuration () > System Settings > General Settings or, prior to WHMCS 8.0, Setup > General Settings. If Auto Renew on Payment is disabled, the system will not send a renewal command to the registrar. Instead, if Create To-Do List Entries is enabled, the system will add an entry at Utilities > To-Do List. If both Auto Renew on Payment and Create To-Do List Entries are disabled, the system will not perform any action.

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 that clients order in this way use the current pricing in Configuration () > System Settings > Domain Pricing or, prior to WHMCS 8.0, Setup > Products/Services > Domain Pricing for the renewals.

Subscriptions and Renewals

Certain payment gateways (such as PayPal® and 2Checkout) offer Subscriptions: the ability to automatically send payments of a fixed amount on a fixed schedule. Domains can have a different billing cycle from an associated service (for example, a monthly product but an annual domain) which increases the complexity for a subscription. When the gateway supports such functionality, the system creates a subscription to automatically send payment for domain renewals:

  • 2Checkout Inline Mode

For other subscriptions, WHMCS will not offer clients the option to create subscriptions when paying for a domain renewal invoice:

  • PayPal Subscriptions
  • 2Checkout Standard Mode

Domain Renewal Notices

You can configure WHMCS to send Domain Renewal Notices before and after a domain has expired. You can use these to remind and encourage your customers to renew their expiring domains with you.

For more information on this functionality, see the Domain Renewal Notices documentation.

Manually Registering or Renewing a Domain

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

Manually Registering a Domain

To manually register a domain:

  1. Navigate to the desired domain in the Domains tab in the client's profile.
  2. Click Register in the Registrar Commands section to immediately send a registration request to the domain registrar. If the request succeeds, the expiry date will update.

Manually Renewing a Domain

To manually renew a domain:

  1. Navigate to the desired domain in the Domains tab in the client's profile.
  2. Click Renew in the Registrar Commands section to immediately send a renewal request to the domain registrar. If the request succeeds, the expiry date will update.
  3. You should also increment the next due date if you are manually handling payment according to the steps below.

If the domain is already invoiced, and automatic renewal on payment is enabled, when that invoice is paid under normal circumstances, the system sends another domain renewal request to the registrar. If you need to stop this, perform these steps:

  1. Locate the invoice for the domain. To do this, click View Invoices on the domain page to see 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. Delete the original line item from the invoice. You are removing the actual link to the domain so no further renewal will occur.