# WHMCS Domain Module - Install and configure Openprovider domain registrar module

In this article, you will find everything you need to install and configure the Openprovider module in WHMCS, so that you can automatically register extensions that also allow additional fields, such as .es domains, without manipulation.

## **WHMCS Domain Module**

The WHMCS module for Openprovider conveniently interacts with your Openprovider account, enabling you to simplify certain domain provisioning and management functions, such as enrollment, renewal, deletion, and contact information changes.

The module keeps the expiration dates of the domain and auto-renew settings aligned between the installation of your WHMCS and Openprovider account, meaning that the same domains are renewed every day.

In addition, the module allows you to search for domain availability using the Openprovider API, enhancing performance over the default domain availability check.

## Install and configure the Openprovider Module

### Installation using script \[Beta\] 

- To install the Openprovider domain registrar module, run the following commands from WHMCS root directory as the hosting/website user (e.g., on a cPanel server, run it as the cPanel user under which the WHMCS website is hosted).
- **Note**: Depending on the permissions of the user running the script, you may need to use the sudo command (e.g., sudo /bin/bash -s)

```bash
curl -s https://raw.githubusercontent.com/openprovider/Openprovider-WHMCS-domains/refs/heads/master/scripts/install_openprovider.sh | /bin/bash -s

```

### Manual Installation

**Download the module package from:** [https://github.com/openprovider/Openprovider-WHMCS-domains/releases](https://github.com/openprovider/Openprovider-WHMCS-domains/releases)

**Copy files into the module directories**

- Upload the contents of `/modules/registrars/openprovider` from this repository to `<your WHMCS directory>/modules/registrars/openprovider`
- Upload the contents of `/includes/hooks/` to `<your WHMCS directory>/includes/hooks`
- If you do not have the file `<your WHMCS directory>/resources/domains/additionalfields.php` then add the example version from[ resources/domains/additionalfields.php](https://github.com/openprovider/Openprovider-WHMCS-domains/blob/master/resources/domains/additionalfields.php)
    - Otherwise, add the following lines to the top of your `additionalfields.php` file. :

```auto
<?php
if (function_exists('openprovider_additional_fields'))
    $additionaldomainfields = openprovider_additional_fields();

```

###   
[Install Openprovider Addon module \[Optional\]](#bkmrk-install-openprovider)

- Upload `<Module directory>/modules/addons/openprovider` to `<WHMCS directory>/modules/addons`
- Activate Openprovider addon from **Configuration** &gt;&gt; **System Settings** &gt;&gt; **Apps &amp; Integrations** &gt;&gt; **Addon Modules**
- Configure access permission (click **Configure** button) for groups and **Save Changes.**  
    ![embedded-image-rxl8ee4y.png](https://openprovider.help/uploads/images/gallery/2026-08/embedded-image-rxl8ee4y.png)

## Basic Configurations

- Navigate to **Configuration &gt;&gt; System Settings &gt;&gt; Domain Registrars** and activate Openprovider.

<figure id="bkmrk-">![embedded-image-8ndozfjy.png](https://openprovider.help/uploads/images/gallery/2026-08/embedded-image-8ndozfjy.png)</figure>1. Enter the credentials for an API user. [Ensure API access is enabled](https://openprovider.help/books/quick-start/page/how-to-enable-api-access) in the Openprovider Control Panel for the credentials you are using.
2. Click **Save.**
3. \[<span>*This step is only required for module versions prior to 5.8.0*</span>\]. Import TLD/domain prices via Openprovider API by running the **modules/registrars/openprovider/cron/DownloadTldPrices.php** script (either as a cron job or run the script from the terminal of the hosting server). Please refer to [Import and sync TLD prices from Openprovider](https://github.com/openprovider/Openprovider-WHMCS-domains/blob/master/docs/TLD_Pricing_sync_Utility.md) for detailed instructions.
4. Navigate to **Utilities** &gt; **Registrar TLD Sync** to select TLDs to import prices, configure margin, Automatic Registration, etc. For more details, please refer to [Registrar TLD Sync](https://docs.whmcs.com/Registrar_TLD_Sync).  
      
    ![325563753-35739a5d-9bf5-44a8-97c2-9aa080e14f32.png](https://openprovider.help/uploads/images/gallery/2026-08/embedded-image-dz3yupnv.png)
5. Navigate to **Configuration &gt;&gt; System Settings &gt;&gt; Domain Pricing** and select Openprovider as registrar for the TLD that you want to sell via Openprovider [![Screenshot_20210203_180350](https://openprovider.help/uploads/images/gallery/2026-08/embedded-image-fmrdhtau.png)](https://github.com/openprovider/OP-WHMCS7/blob/master/docs/img/select_TLD_registrar.png)

That's all you need to do to get started selling domains from Openprovider! Additional configurations can be found below.

## Advanced configurations

### Lookup provider and domain name spinning

- Click "change" to Choose Openprovider as the lookup provider [![Screenshot_20210203_180725](https://openprovider.help/uploads/images/gallery/2026-08/embedded-image-wxkfig5g.png)](https://github.com/openprovider/OP-WHMCS7/blob/master/docs/img/lookup_provider.png) [![Screenshot_20210203_181056](https://openprovider.help/uploads/images/gallery/2026-08/embedded-image-2auvwspb.png)](https://github.com/openprovider/OP-WHMCS7/blob/master/docs/img/lookup_provider2.png)
- Choose "configure" to select namespinning options

### [Enable premium domains](#bkmrk-enable-premium-domai)

<span>First Make sure that the currency that you are using to pay Openprovider is configured in   
**Configuration &gt;&gt; System Settings &gt;&gt; Currencies** (prior to WHMCS 8.0, Setup &gt;&gt; Payments &gt;&gt; Currencies) </span><span>and click on Update Exchange Rate. Otherwise, WHMCS will not use the premium fee correctly, potentially meaning that your client will pay significantly less for the domain.</span>

![mceclip0.png](https://openprovider.help/uploads/images/gallery/2026-08/embedded-image-exbezzce.png)

1. Navigate to **Configuration** &gt;&gt; **System Settings** &gt;&gt; **Domain Pricing**
2. Enable Support for premium domains
3. Configure premium pricing and margins
4. In the Advanced configuration file of the module (/modules/registrars/openprovider/configuration/advanced-module-configurations.php) find the parameter "**OpenproviderPremium**" and set it to **true**.

### Allow additional DNS records

If you plan on allowing your end users to edit their own DNS records, and want them to be able to create all record types supported by Openprovider, you can make some modifications to the WHMCS templates as described here:

- [Modify WHMCS templates to allow all DNS record types which Openprovider supports](https://github.com/openprovider/OP-WHMCS7/blob/master/docs/custom_DNS_management_options.md)

###   
[Allow end users to edit DNSSEC records](#bkmrk-allow-end-users-to-e)

- Navigate to the **target client profile &gt; Domains** select the desired domain and under **Management Tools** activate **"DNS Management".**

**![DNSMGMT_WHMCS.png](https://openprovider.help/uploads/images/gallery/2026-08/embedded-image-zjgrjm4h.png)**

- The below option will appear in the domain details page of the chosen domain

[![Screenshot_20210203_183243](https://openprovider.help/uploads/images/gallery/2026-08/embedded-image-yv2jm6nk.png)](https://github.com/openprovider/OP-WHMCS7/blob/master/docs/img/DNSSEC%20management.png)

Notes:

- If you experience any difficulty accessing the DNSSEC page, please check if file '**dnssec.php**' exists in your WHMCS directory. If the file doesn't exist, please manually upload/copy the contents of <span><span>&lt;Module directory&gt;/registrars/openprovider/custom-pages</span></span> (dnssec.php file) to the top level of your WHMCS folder (i.e. &lt;your WHMCS directory&gt;/)
- If you see the menu option as "**dnssectabname**" as shown in the screenshot below, copy the folder `<Module directory>/lang/overrides` to `<your WHMCS directory>/lang/` folder.

![309657655-c4bf574c-2b2f-4367-bb6e-789578535564.png](https://openprovider.help/uploads/images/gallery/2026-08/embedded-image-nayuyn7q.png)

###   
[Configure TLDs which don't allow locking (.nl, .eu, .es, etc.)](#bkmrk-configure-tlds-which)

**Note**: **This manual change is only required in versions before 5.9.0.**

Not all TLDs allow domain locking, but WHMCS assumes that this option is available for all domains. As a result, end users will see a warning "**Domain Currently Unlocked!**" when they visit the domain details page.

![embedded-image-n6w2pkla.png](https://openprovider.help/uploads/images/gallery/2026-08/embedded-image-n6w2pkla.png)

You can hide this option with the following changes to your template files.

- Open `clientareadomaindetails.tpl` in the template you are using and replace

```auto
{if $lockstatus eq "unlocked"}
```

with

```auto
{$domainSplit = "."|explode:$domain}
{$domainTld = $domain|replace: $domainSplit.0 : ""}
{if $lockstatus eq "unlocked" && $domainTld != '.eu' && $domainTld != '.nl' && $domainTld != '.be'  && $domainTld != '.es'}
```

###   
[Configure tag management](#bkmrk-configure-tag-manage)

Set up tag management to send custom emails to the end users of your resellers.

- [Configuration instructions can be found here](https://github.com/openprovider/OP-WHMCS7/blob/master/docs/associate_tags_with_customers.md)

### \[DEPRECATED\] Configure the Openprovider cron sync

This feature is deprecated since version 5.3 of the Openprovider domain module, and is not recommended for versions WHMCS 8+. We suggest that you use the WHMCS native domain sync and do not use the Openprovider custom sync for WHMCS 8 and higher.

###   
[Domain Renewals](#bkmrk-domain-renewals)

Various options exist for managing domain renewals. A detailed explanation of your options [can be found here.](https://github.com/openprovider/OP-WHMCS7/blob/master/docs/auto_renew_logic.md)

###   
[Custom DNS Templates](#bkmrk-custom-dns-templates)

- Create a custom DNS template in the Openprovider control panel (**DNS management &gt; Manage DNS templates**),
- Put the name of it [in the advanced configuration file](https://github.com/openprovider/OP-WHMCS7/blob/master/docs/advanced_configurations.md) and any domain created with the Openprovider nameservers will have a DNS zone automatically created on Openprovider nameservers according to your DNS template.

###   
[Troubleshooting](#bkmrk-troubleshooting)

If domain operations from WHMCS are not working or showing errors or any connectivity issues with Openprovider or API errors, the first troubleshooting step should be to enable module logging, **reproduce the issue/error** and review the System Module Debug Log.

Navigate to **Configuration &gt; System Logs &gt; Module Log** (before WHMCS 8.0, **Utilities &gt; Logs**)​ and you can find the raw API commands being sent and received by your WHMCS modules. The responses should contain additional information about the problem and how it can be solved.

![306894883-0769a7bc-ebbe-4724-b2a5-b99182a127f5.png](https://openprovider.help/uploads/images/gallery/2026-08/embedded-image-sbegp55i.png)

If you have the Openprovider addon installed and activated in your WHMCS, you should be able to download module and activity logs from **Addons &gt;&gt; Openprovider** &gt;&gt; click on the '**Download**' button (After enabling module logs and reproducing the issue).

![312725841-6dfd32cc-957b-4025-8309-c67ae4451051.png](https://openprovider.help/uploads/images/gallery/2026-08/embedded-image-18nhd94v.png)

For more details, please refer to WHMCS documentation: [Troubleshooting Module Problems](https://docs.whmcs.com/Troubleshooting_Module_Problems) and [System Logs](https://docs.whmcs.com/System_Logs)

Important: Only enable module logging for troubleshooting or testing purposes. At all other times, make certain that you set Module Logging to Off.

### [FAQ](#bkmrk-faq)

Common issues and solutions for them can be found [here](https://openprovider.help/books/api-integrations/page/whmcs-frequently-asked-questions).