> ## Documentation Index
> Fetch the complete documentation index at: https://docs.upmind.com/llms.txt
> Use this file to discover all available pages before exploring further.

# How to sell WHM/cPanel hosting

> Configure and sell cPanel hosting products with Upmind.

<Note>
  The Web Hosting management interface is currently being simplified. Quick actions will be available for the most common features, including bulk management of domains and web servers.

  However, the steps below will continue to work, and the future interface is completely compatible with anything you do here.
</Note>

## cPanel Overview

[cPanel](https://cpanel.net) is the most popular hosting control panel on the market. It is software that sits on top of a web server and provides a user interface for managing websites and email.

cPanel servers can be used for shared and reseller hosting customers.

* If you have a WHM Reseller account, you are able to sell and manage cPanel shared Web Hosting.

* If you have a WHM Root account, you are able to provision cPanel shared Web Hosting *and* cPanel reseller Web Hosting.

To begin selling web hosting through Upmind on top of a cPanel server, you must have an active cPanel WHM login.

## What you will need

* A WHM account, which can be either a root access account or a reseller account.

* An [Upmind account](https://upmind.com/start).

### Generate an API Token in WHM

In WHM, you need to generate an API Token. This is done in your WHM under **Development** > **Manage API Tokens**.

<Frame caption="Manage API Tokens > Generate Token">
  <img src="https://mintcdn.com/upmind/6knUVC8F1nK4E5CY/images/fb/c66cbfa8c526b837.png?fit=max&auto=format&n=6knUVC8F1nK4E5CY&q=85&s=40d2b921c6d79e11ea2665f617235955" alt="Manage API Tokens > Generate Token" data-og-width="2706" width="2706" data-og-height="1590" height="1590" data-path="images/fb/c66cbfa8c526b837.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/upmind/6knUVC8F1nK4E5CY/images/fb/c66cbfa8c526b837.png?w=280&fit=max&auto=format&n=6knUVC8F1nK4E5CY&q=85&s=9c87a3d6dd01c473afaaff3ff83ea68f 280w, https://mintcdn.com/upmind/6knUVC8F1nK4E5CY/images/fb/c66cbfa8c526b837.png?w=560&fit=max&auto=format&n=6knUVC8F1nK4E5CY&q=85&s=acbe96ef227da143491fe6aad3024e89 560w, https://mintcdn.com/upmind/6knUVC8F1nK4E5CY/images/fb/c66cbfa8c526b837.png?w=840&fit=max&auto=format&n=6knUVC8F1nK4E5CY&q=85&s=f8f0d5329335e42d1a9e8af7f999efa3 840w, https://mintcdn.com/upmind/6knUVC8F1nK4E5CY/images/fb/c66cbfa8c526b837.png?w=1100&fit=max&auto=format&n=6knUVC8F1nK4E5CY&q=85&s=539b8faea28c7186fbed85b15cc07d5e 1100w, https://mintcdn.com/upmind/6knUVC8F1nK4E5CY/images/fb/c66cbfa8c526b837.png?w=1650&fit=max&auto=format&n=6knUVC8F1nK4E5CY&q=85&s=610b35ba46e10832d33b8afeebe3c02f 1650w, https://mintcdn.com/upmind/6knUVC8F1nK4E5CY/images/fb/c66cbfa8c526b837.png?w=2500&fit=max&auto=format&n=6knUVC8F1nK4E5CY&q=85&s=8b0f7f5cc8043623032bfe5f007daceb 2500w" />
</Frame>

When creating an API token, make sure to select all the necessary permissions. We recommend not setting an expiry date.

<Frame caption="Make sure to fill in the Token name, not set the expire date and select all permissions">
  <img src="https://mintcdn.com/upmind/1xguIfYUrfespmVI/images/fb/86ea70d54e520b44.png?fit=max&auto=format&n=1xguIfYUrfespmVI&q=85&s=76e6100907d6e505546b86377af7da2f" alt="Make sure to fill in the Token name, not set the expire date and select all permissions" width="2718" height="1598" data-path="images/fb/86ea70d54e520b44.png" />
</Frame>

Once the API Token is generated, make sure to note and copy the API token so it can be pasted into the Upmind configuration.

### Adding a cPanel Server to Upmind

In Upmind, you should add cPanel as a provision configuration. You can do this in either of the following ways:

* On the sidebar, go to **Host Control** > **Web Hosting** > **Web Servers** > **Add New.** You can also select it from below.

<Frame caption="Host Control > Web Hosting > Web Servers > Add New">
  <img src="https://mintcdn.com/upmind/Lh8hC132BWHpvRbz/images/fb/478418e69f820e7e.png?fit=max&auto=format&n=Lh8hC132BWHpvRbz&q=85&s=f13dddb9569fa43c42558aa70bc9ff5f" alt="Host Control > Web Hosting > Web Servers > Add New" data-og-width="2882" width="2882" data-og-height="1140" height="1140" data-path="images/fb/478418e69f820e7e.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/upmind/Lh8hC132BWHpvRbz/images/fb/478418e69f820e7e.png?w=280&fit=max&auto=format&n=Lh8hC132BWHpvRbz&q=85&s=0f682f59ec343b2901bff6572a10a8b2 280w, https://mintcdn.com/upmind/Lh8hC132BWHpvRbz/images/fb/478418e69f820e7e.png?w=560&fit=max&auto=format&n=Lh8hC132BWHpvRbz&q=85&s=3d92885c51f02bfc786a5174e4173a2d 560w, https://mintcdn.com/upmind/Lh8hC132BWHpvRbz/images/fb/478418e69f820e7e.png?w=840&fit=max&auto=format&n=Lh8hC132BWHpvRbz&q=85&s=3c9d068bc40f2a2c248891aaea7fa63a 840w, https://mintcdn.com/upmind/Lh8hC132BWHpvRbz/images/fb/478418e69f820e7e.png?w=1100&fit=max&auto=format&n=Lh8hC132BWHpvRbz&q=85&s=04f1a166d9d46597e32a6ae499fa1676 1100w, https://mintcdn.com/upmind/Lh8hC132BWHpvRbz/images/fb/478418e69f820e7e.png?w=1650&fit=max&auto=format&n=Lh8hC132BWHpvRbz&q=85&s=ef17a4d97ead6ebe4ee95bd6cf6179f2 1650w, https://mintcdn.com/upmind/Lh8hC132BWHpvRbz/images/fb/478418e69f820e7e.png?w=2500&fit=max&auto=format&n=Lh8hC132BWHpvRbz&q=85&s=0b925448688e2c6872206905bfbc7488 2500w" />
</Frame>

* On the sidebar, go to **Settings** > **Provision Configurations** under **Provisioning** > **Add New Configuration.**

<Frame caption="Settings > Provision Configurations under Provisioning > Add New Configuration">
  <img src="https://mintcdn.com/upmind/kAlrCUxI2nwYz4_i/images/fb/1f90b2ae6d3d35fb.png?fit=max&auto=format&n=kAlrCUxI2nwYz4_i&q=85&s=0842d49b50c420db6e67f4432582951f" alt="Settings > Provision Configurations under Provisioning > Add New Configuration" data-og-width="2852" width="2852" data-og-height="1276" height="1276" data-path="images/fb/1f90b2ae6d3d35fb.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/upmind/kAlrCUxI2nwYz4_i/images/fb/1f90b2ae6d3d35fb.png?w=280&fit=max&auto=format&n=kAlrCUxI2nwYz4_i&q=85&s=c6618643e8a7826a73cc159e6826cc34 280w, https://mintcdn.com/upmind/kAlrCUxI2nwYz4_i/images/fb/1f90b2ae6d3d35fb.png?w=560&fit=max&auto=format&n=kAlrCUxI2nwYz4_i&q=85&s=d4a05ea3cd7c940d48532c27b9df55ec 560w, https://mintcdn.com/upmind/kAlrCUxI2nwYz4_i/images/fb/1f90b2ae6d3d35fb.png?w=840&fit=max&auto=format&n=kAlrCUxI2nwYz4_i&q=85&s=f89d79713d6e10d4d15bb80b0fe3904f 840w, https://mintcdn.com/upmind/kAlrCUxI2nwYz4_i/images/fb/1f90b2ae6d3d35fb.png?w=1100&fit=max&auto=format&n=kAlrCUxI2nwYz4_i&q=85&s=962aa1fa5cb339cacc44aaf23aa23985 1100w, https://mintcdn.com/upmind/kAlrCUxI2nwYz4_i/images/fb/1f90b2ae6d3d35fb.png?w=1650&fit=max&auto=format&n=kAlrCUxI2nwYz4_i&q=85&s=1ae169281b8410b86ac6737c6cffe623 1650w, https://mintcdn.com/upmind/kAlrCUxI2nwYz4_i/images/fb/1f90b2ae6d3d35fb.png?w=2500&fit=max&auto=format&n=kAlrCUxI2nwYz4_i&q=85&s=3627f4b035f100c94e40a8bb09c12855 2500w" />
</Frame>

You should fill it out as follows:

1. Enter a **Name** for the server, typically something like cPanel or the server's hostname (e.g. `server.yourdomain.com`). Choose **Web Hosting** or any provision category name you've created. Select **cPanel** as the Provider.

<Frame caption="Enter name">
  <img src="https://mintcdn.com/upmind/h8h5zREaX7k8Y-3x/images/fb/14e1eab5ac75a2a3.png?fit=max&auto=format&n=h8h5zREaX7k8Y-3x&q=85&s=ad71133d7e9352969d22becb603bd2f0" alt="Enter name" width="1568" height="1198" data-path="images/fb/14e1eab5ac75a2a3.png" />
</Frame>

2. The **Hostname** should be a resolvable hostname for your web server (e.g. `server.yourdomain.com`).

3. Your **WHM Username** is the username you use to log in to WHM. This may be `root` or your reseller username if a reseller account.

4. Enter the **API Key** you have generated in WHM.

5. You can fill out optional metadata for this provider configuration. This allows Upmind to automatically deploy to specific servers. Read more about [dynamic deployment](/using-upmind/provisioning/dynamic-deployement).

6. Finally, tick **Accepting New Accounts** if you wish to enable this server. Then click **Create**.

<Frame caption="Enter details">
  <img src="https://mintcdn.com/upmind/5gi4DQpw4X76kT6T/images/fb/bd0067c1be0c5201.png?fit=max&auto=format&n=5gi4DQpw4X76kT6T&q=85&s=f563dde30d85b3df021daefd13df4755" alt="Enter details" width="1420" height="1650" data-path="images/fb/bd0067c1be0c5201.png" />
</Frame>

## Create packages

When you create hosting packages in Upmind, you need to choose cPanel as a provision provider. You will be asked for the **Package Identifier**. It's recommended to use the cPanel package **name** (case sensitive).

### Get cPanel Package Identifier

In your WHM control panel, go to **Packages** > **Add a Package** to create a new one, or click on **Edit Packages** if you already have one.

* The package name is the identifier you set when creating the package, usually in the format `username_packagename`.

* This is the value you’ll need to enter in Upmind when configuring the hosting product.

<Frame caption="In this example, the package name is &#x22;elviravi_Advanced&#x22;">
  <img src="https://mintcdn.com/upmind/ObllJJl59DabnmMn/images/fb/d19ef2c6f6ef1793.png?fit=max&auto=format&n=ObllJJl59DabnmMn&q=85&s=411f08a1b7504ac4878655af1ecbb578" alt="In this example, the package name is elviravi_Advanced" width="2766" height="1612" data-path="images/fb/d19ef2c6f6ef1793.png" />
</Frame>

### Configure Upmind products

In your Upmind admin area, under **Host control** > **Web hosting** click on the **Hosting packages** tab and click the **Add new** button to start configuring a new hosting package.

<Frame caption="Host control > Web hosting > Hosting packages > Add new">
  <img src="https://mintcdn.com/upmind/Dgjmf3QWYVBR40cE/images/fb/5a5c97cf0ad84263.png?fit=max&auto=format&n=Dgjmf3QWYVBR40cE&q=85&s=2798e719d288e12759e05e8ede6648af" alt="Host control > Web hosting > Hosting packages > Add new" data-og-width="2882" width="2882" data-og-height="1340" height="1340" data-path="images/fb/5a5c97cf0ad84263.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/upmind/Dgjmf3QWYVBR40cE/images/fb/5a5c97cf0ad84263.png?w=280&fit=max&auto=format&n=Dgjmf3QWYVBR40cE&q=85&s=3ce7c20afb571255956318b5dd491163 280w, https://mintcdn.com/upmind/Dgjmf3QWYVBR40cE/images/fb/5a5c97cf0ad84263.png?w=560&fit=max&auto=format&n=Dgjmf3QWYVBR40cE&q=85&s=00b809b3a8ed90688251d86b6a99f1ca 560w, https://mintcdn.com/upmind/Dgjmf3QWYVBR40cE/images/fb/5a5c97cf0ad84263.png?w=840&fit=max&auto=format&n=Dgjmf3QWYVBR40cE&q=85&s=699944537a6c6011405cacf38c854142 840w, https://mintcdn.com/upmind/Dgjmf3QWYVBR40cE/images/fb/5a5c97cf0ad84263.png?w=1100&fit=max&auto=format&n=Dgjmf3QWYVBR40cE&q=85&s=8895879ed1f5b138ae1ec22c75443fc7 1100w, https://mintcdn.com/upmind/Dgjmf3QWYVBR40cE/images/fb/5a5c97cf0ad84263.png?w=1650&fit=max&auto=format&n=Dgjmf3QWYVBR40cE&q=85&s=ebc8e3e17777fd851e1c7a17ed03d715 1650w, https://mintcdn.com/upmind/Dgjmf3QWYVBR40cE/images/fb/5a5c97cf0ad84263.png?w=2500&fit=max&auto=format&n=Dgjmf3QWYVBR40cE&q=85&s=22bc8150f27af2da4cd11f13092d9fad 2500w" />
</Frame>

Now go to the product's Provisioning page and set the **Provision provider** to cPanel, and set the **Package Identifier** provision field to match your cPanel package **name**.

<Frame caption="Set provision provider">
  <img src="https://mintcdn.com/upmind/A-RwNPXmK_xnEEqe/images/fb/73b8a88367b223c9.png?fit=max&auto=format&n=A-RwNPXmK_xnEEqe&q=85&s=5a4c6197376b33003e15012bcac29ee3" alt="Set provision provider" width="2392" height="1470" data-path="images/fb/73b8a88367b223c9.png" />
</Frame>

<Frame caption="Set package identifier">
  <img src="https://mintcdn.com/upmind/1xguIfYUrfespmVI/images/fb/7ca0c3d729e5f55c.png?fit=max&auto=format&n=1xguIfYUrfespmVI&q=85&s=680a2431e7883a049e2636bb6614a963" alt="Set package identifier" width="2392" height="1286" data-path="images/fb/7ca0c3d729e5f55c.png" />
</Frame>

<Frame caption="Match your cPanel package name">
  <img src="https://mintcdn.com/upmind/2ooSxDpt6PiIGMr-/images/fb/01bc0788b159c130.png?fit=max&auto=format&n=2ooSxDpt6PiIGMr-&q=85&s=659b95aa10e0a1022845fbd15c93e287" alt="Match your cPanel package name" width="1226" height="1526" data-path="images/fb/01bc0788b159c130.png" />
</Frame>

At this point, your cPanel product provisioning is all set up and ready to go. For more information on setting up and selling hosting products in Upmind, refer to our first step and [Web Hosting Quick Start](/for-web-hosts/quick-start-guide-for-hosting-companies-or-resellers) guides.

## Common cPanel errors

Below are some frequent errors you might encounter when using cPanel with Upmind, along with simple explanations and solutions to help you resolve them quickly.

1. **Error Create Account: Forbidden Access Denied** - Please ensure the hostname, username, and API key are entered correctly in the **Settings** > **Provision configurations**.

2. **Error If "xxxx" is not a valid package name, at /usr/local/Whostmg** - You need to create a package in your [Web Host Manager interface](/for-web-hosts/quick-start-guide-for-hosting-companies-or-resellers), and this needs to match the package identifier you enter in **Settings** > **Product Catalogue** > **\[Product]** > **Provisioning** > **Package Identifier** in Upmind.

3. **Error: You cannot create a session for the user 'xxx' because they do not exist** - The cPanel account username is incorrect, or the account does not exist on the server.
