This document outline the basic installation, configuration and the basic usage of the WHMCS DNS Provider Module


In order to use the module's functionality, you will need the following

  1. DirectAdmin hosting account with ability to create addon domains
  2. PHP INTL module enabled on your WHMCS server
  3. The DirectAdmin hosting account should not be on the same hosting server you serve your regular hosting with.

  4. Your WHMCS server must have outgoing port to the DirectAdmin account's server (default is 2222) open in order to connect to the DirectAdmin server.


Upload all the files in the modules folder to your WHMCS /modules/addons and the /modules/server directory.

Language Uploads

The module includes English as the base language. If you wish to translate it to your enabled language in WHMCS. Make a copy of the english.php in /modules/addons/dnsprovideradmin/lang/ to your associated language. For example, french.php. The filename must match to the ones in the WHMCS/lang/french.php


Module Activation

Log into your WHMCS admin backend and enable the module by going to Setup → Addon Modules → DNS Provider Admin→ Activate

Once activated, click on Configure and fill in the license key and make any settings adjustment.

Module Options

Verification ModeCheck for domain ownership when a customer add a domain into the database
Verification IntervalThe interval (in minutes) when a domain under verification is checked again during a cronrun
Allow Manual Domain VerificationAllow for the customer to manually trigger a verification in the client area
Re-verify PeriodTrigger for a re-verification to see if the domain is still set to the allocated nameservers. Set 0 to disable
Disable Re-Verify SuspensionEnable this to disable the module to NOT suspend the domain on the DirectAdmin server if it fails re-verification
Disable Suspension RenamingEnable this to disable the module from suspending the domains on the DirectAdmin server if the customer's service under WHMCS is being suspended
Unverified Termination PeriodThe allowable period a domain can go unverified before it is removed from the customer's service. Set 0 to disable.
Re-verification Termination PeriodThe allowable period a domain can be unverified (after it enters Re-verify period) before it is removed from the customer's service. Set 0 to disable.
Migration Task Retry LimitThe amount of retries for a migration task before the task is removed from the queue.
Migration Task Retry IntervalThe interval (in minutes) before re-running a migration task.
Enable email notificationAllow customer to receive email notification on DNS, Email forwarding, Catch-all changes.
Email Verify TemplateThe email template of (Email Destination Verification)
Notification Email TemplateThe email template to send for notification
Re-Verification TemplateThe email template to send to the client to notify their domain failed re-verification
Large DB exclusionWhen this option is enabled, the Admin panel will no longer load the list of Active domains in the Drop Down search. You will have to fill in the domain manually. This is useful if you have a large domain database
Fetch from NS on load

When enabled Clients will load records from the DA Server regardless of the local cache

Fetch from NS on load (Admin)When enabled Admin will load records from the DA Server regardless of the local cache
TTL on zone refreshThe order in the Domains menu for the DNS Manager link to appear
Default TTLThe amount of time (in seconds) before the local cache expires
Display under Service menuWhen enabled it will display the DNS Hosting link under the WHMCS Navigation menu's Services Tab
Menu Showing OrderThe order in the Service menu for the DNS Hosting link to appear
Search IntegrationThis option will integrate the domain search into WHMCS intelligent search 
Systemwide Dynamic DNS APIEnable systemwide Dynamic DNS support
Enable API Force DetectionEnabling this will block an IP if it is exceeding the per hour API limit
Bruteforce TimerThe amount of seconds to check in the bruteforce log before denying
Bruteforce Ban TimerThe amount of seconds to ban the IP address from accessing the API
Enable Web TemplateThis to be used with domain parking and masked redirection.
Masked Redirect HashThe secret hash key you will need to set with the connector_settings.php


Before continuing, make sure the License is filled in properly. Otherwise, it will not function properly.

Adding a Server

Similar to other WHMCS hosting provisioning modules, you will need to add a Server under WHMCS. To do this, go to WHMCS Setup → Products/Services → Servers.

Now create a new server and under Module. Fill in the IP of your DirectAdmin server, select DNS Provisioning Module, fill in the DirectAdmin username/password. 


The DirectAdmin username just need to be a regular account with Addon domains capability. It does not need to be have Admin or Reseller privilege. 

Nameservers Setup

For the Nameservers, you will need to fill in the nameservers that will be handling the DNS records for this particular DirectAdmin server. See the Advance DNS Cluster guide if you are using DirectAdmin Multi-Server function.

Setting up DNS Hosting Product

Once you have at least one server setup, you may proceed to create a DNS Hosting product. Head to Setup → Products/Services → Products/Services. 

Proceed to create a new Product as you would normally, select DNS Provisioning Module 

Now proceed with the Module Settings, this is where you would configure this plan's parameters.

Don't forget to set the Welcome Email, Pricing for this plan. Once ready, save it and you are ready to sell your first DNS Hosting.

Cronjob Setup

In order for the module to execute verification and migration functions, the cronjob must be setup to run the cron file.

Setup the following command,

/usr/bin/wget -O /dev/null https://yourWHMCSURL/modules/servers/dnsprovider/dnsprovider_cron.php >/dev/null 2>&1

Change the yourWHMCSURL to your WHMCS URL. Set the cronjob to run every 5 minutes.

If you have a tons of domains using the module, it is advisable to change it to every 15 minutes or longer.

Security Tip

You may want to setup a .htaccess file to block off unwanted IP address from hitting that dnsprovider_cron.php file.

2nd Level TLDs

For some domains such as, it may be seen as a subdomain by the module. In order to combat this, we have introduced a whitelist file. The file is located in servers\dnsprovider\include. 

Open tlddomains.php and you will be able to add your custom 2nd level TLD onto the array.

  • No labels