Offer Free .in, .co.in or .com domain for year one with web or WordPress hosting on a 12-month+ term, plus free migration. See the offer
Reseller

Create packages and cPanel accounts in WHM

A package is a named set of limits that you apply to a client's cPanel account. Build one for each plan you sell, and every new client takes about two minutes. Change a package later and every account on it follows.

  • Updated
  • 7 min read
  • Level Intermediate

Before you start

  • Your WHM login from the reseller welcome email.
  • Your private nameservers set up, so new accounts carry your brand from the start.
  • For each client: the domain name and a contact email address that isn't on that domain.
Hands-on time10 min, then 2 min per client
Accounts per plan25, 60 or 150

Plan your WHM hosting packages

A package doesn't hold a price; you bill your clients yourself. It should still mirror the plans on your own price list, because that is how you'll think about clients later. Three tiers cover most agencies:

WHM settingStarterBusinessStore
Disk Quota (MB)2048512010240
Max Email Accounts525100
Max Quota per Email Address (MB)102420482048
Max SQL Databases21025
Max Addon Domains0310
Max Sub Domains52050
Monthly BandwidthSet to Unlimited: reseller bandwidth is unmetered under our fair-use policy

Disk quotas come out of your plan's storage pool (50, 120 or 300 GB), so add up what you've promised before you sell another large package.

Name packages after what you sell, not what's in them. WHM saves reseller packages with your username in front, such as yourus3r_business. Call it "business", not "5gb-25mail", and you can raise the limits next year without renaming anything.

Step 1: Make a feature list (optional)

A feature list decides which cPanel icons a package shows. Skip this step if every client should see everything.

  1. Open Feature Manager

    Go to WHMPackagesFeature Manager, type a name such as starter under Add a new feature list and click Add Feature List.

  2. Untick what this tier shouldn't have

    For an entry-level package you might turn off Terminal and SSH Access, then click Save. A feature list can only hide features. It can't give a client anything your reseller account doesn't have.

Step 2: Add a package

  1. Open Add a Package and name it

    Go to WHMPackagesAdd a Package and enter a Package Name.

  2. Fill in Resources

    Enter the values from your plan. Every field has an Unlimited option; avoid it for Disk Quota, or one client can fill the storage your whole plan shares.

    WHM›Packages›Add a Package
    Add a PackageSaved as yourus3r_business
    Package Name
    business
    Disk Quota (MB)
    5120
    Max Email Accounts
    25
    Max SQL Databases
    10
    Feature List
    business ▾
    cPanel Theme
    jupiter ▾
    Dedicated IPShell AccessDigest Authentication
    Add
    Example values for a mid-tier package. Your own limits are up to you.
  3. Choose the settings, then click Add

    Pick your Feature List and leave the theme on jupiter. Leave Dedicated IP unticked unless we've added spare IPs to your account, and keep Shell Access off unless a client needs Git or WP-CLI.

Step 3: Create a cPanel account for a client

  1. Open Create a New Account

    Go to WHMAccount FunctionsCreate a New Account and enter the client's Domain without www.

  2. Check the username, set a password and email

    WHM suggests a Username from the domain. It can have up to 16 lowercase letters and digits, must start with a letter and can't start with test. Use the Password Generator, and put the client's own address in Email so cPanel notices reach them.

  3. Choose the package and DNS options

    Select the package under Choose a Package. In Mail Routing Settings, keep Automatically Detect Configuration unless the client's mail stays with Google Workspace or Microsoft 365 (then choose Remote Mail Exchanger). In DNS Settings, leave DKIM and SPF on.

    WHM›Account Functions›Create a New Account
    Domain
    clientdomain.in
    Username
    clientdo available
    Email
    owner@clientmail.com
    Choose a Package
    yourus3r_business ▾
    Enable DKIMEnable SPFAutomatically Detect Configuration
    Create
    WHM fills in the username for you; shorten it if you like, within the rules above.
  4. Click Create and send the client their login

    The summary lists the account's IP and nameservers. Once the domain points at your nameservers, the client logs in at https://clientdomain.in:2083 and webmail is at port 2096. Send the password separately from the username, and ask the client to change it on first login; they can also change PHP version in cPanel themselves if their site needs a different one.

CPU, memory and process limits

Disk, mailboxes and databases are yours to set in packages. CPU, memory, entry processes and inodes are ceilings for each account, enforced by CloudLinux and fixed by your plan:

Per cPanel accountRS-25RS-60RS-150
CPU1 vCPU2 vCPU2 vCPU
RAM1 GB2 GB3 GB
Entry processes203040
Inodes (files and folders)200,000300,000400,000

They are maximums, not reservations, so an idle site uses almost nothing. Clients can see their own usage in cPanelMetricsResource Usage. If one client genuinely needs more, open a ticket and we can raise that account within your plan. Full figures are on the reseller plan limits table.

Upgrade, suspend or remove an account

To…Go to WHM ›What happens
Move a client to another packageAccount Functions › Upgrade/Downgrade an AccountNew limits apply at once; files and mail are untouched.
Change a whole tierPackages › Edit a PackageEvery account on that package gets the new limits.
Give one client an exceptionAccount Functions › Modify an AccountCustom limits for that account only.
Pause an unpaid accountAccount Functions › Manage Account SuspensionThe site shows a suspension page and logins stop. Nothing is deleted.
Bring it backAccount Functions › Manage Account SuspensionClick Unsuspend; the site returns immediately.
Remove for goodAccount Functions › Terminate an AccountFiles, databases and mail are deleted.

Terminating can't be undone from WHM. Download a full backup of the account first (cPanelFilesBackup), or suspend it for a few weeks before you terminate. Download a full account backup shows how.

Bring existing clients across

Do it yourself

Both tools are under WHMTransfers. For a client whose old host gave them a cPanel login, use Copy an Account From Another Server With an Account Password. To pull several accounts from a server you control, use Transfer Tool. Afterwards, check each account's package in Upgrade/Downgrade an Account.

Let us do it

cPanel-to-cPanel migrations onto reseller plans are free, however many accounts you bring. We copy each account in 24–48 hours and test it on a temporary URL before any DNS changes. Start on the free migration page; Migrate your website explains the process.

Troubleshooting

WHM says I can't create any more accounts

You've reached your plan's account count (25, 60 or 150) or allocated its storage pool. Terminate accounts you no longer need, lower oversized quotas, or move up a plan from the client area: RS-25 to RS-60 or RS-150 happens in place, on the same server and IPs, and you pay the difference for the rest of the term.

The username is rejected

It's longer than 16 characters, starts with a digit or with test, contains a capital letter or symbol, or is already taken on the server. Shorten it and try again; the client never needs to type it if they log in through their own domain.

A client's site shows "508 Resource Limit Is Reached"

The account hit its entry-process or CPU ceiling, usually from uncached traffic, a heavy plugin or a runaway cron job. Check cPanelMetricsResource Usage, turn on LiteSpeed Cache for WordPress sites, and open a ticket if it keeps happening.

A new account shows VirtualCloud's nameservers instead of mine

It was created before your private nameservers were saved in WHM. Edit its zone in WHMDNS FunctionsEdit DNS Zone, and follow Set the nameservers in WHM so future accounts get them automatically.

The client can't reach cPanel at their domain

The domain isn't pointing at the server yet, or the account is suspended. Until DNS has switched, the client can log in through the server hostname shown in the account summary, on port 2083.

Was this guide helpful?Your answer stays in this browser; nothing is sent unless you write to us below.

Related guides

All 16 guides

Still stuck? Ask an engineer.

Reseller tickets go to a priority queue, answered 24/7 in English and Hindi. Include the cPanel username and the WHM screen you were on.