How to Connect WHMCS to Plesk for Automatic Provisioning

Add your Plesk server to WHMCS, map products to service plans, and fix the errors that stop accounts being created, including the 1019 password policy error.

Published
Reading time
4 min

The point of WHMCS is that an order becomes a working hosting account without you touching anything. The Plesk server module does that: when an invoice is paid, WHMCS calls the Plesk API, creates the subscription on the right service plan, and emails the client their details. This is how to set it up and how to read the errors when it does not fire.

What you need from Plesk

  • The server's hostname or IP, and port 8443 reachable from the WHMCS server. If WHMCS runs on the same Plesk server, that is automatic. If it runs elsewhere, open outbound 8443 on the WHMCS side and inbound on the Plesk side.
  • An account WHMCS can use. On a reseller plan this is your reseller login: WHMCS creates customers under it. On your own server, create a dedicated additional administrator rather than using admin.
  • The service plans you want to sell already created in Plesk under Service Plans. WHMCS does not create plans; it assigns accounts to them.

Step 1: add the server in WHMCS

Configuration → System Settings → Servers → Add New Server.

Field Value
Name anything you recognise, e.g. plesk-uk-01
Hostname plesk.yourbrand.com
IP address the server's IP
Module Plesk
Username / password the reseller or admin login
Secure ticked, port 8443

Click Test Connection before saving. If it fails here, nothing else will work; the causes are the port, the credentials, or a certificate WHMCS does not trust (a self-signed panel certificate needs a real Let's Encrypt one on the Plesk hostname).

Then create a Server Group containing that server and set it as the default. Products attach to groups, not servers, which is what lets you add a second server later without touching every product.

Step 2: map the product to a service plan

Configuration → System Settings → Products/Services, open the product, then the Module Settings tab:

  1. Module name: Plesk.
  2. Server group: the group you just created.
  3. Service plan: pick the Plesk plan by name. It must match exactly what Plesk shows.
  4. Account type: Customer for shared hosting, Reseller if you are selling reseller accounts of your own.
  5. Provisioning: Automatically set up the product as soon as the first payment is received. The alternatives (on order, or manually) are for special cases.

Save, then place a test order with a 100% promo code or mark the invoice paid by hand. Within one cron run the account should exist in Plesk.

Step 3: welcome email

On the product's Details tab pick a welcome email template. The default "Hosting Account Welcome Email" merges the Plesk login URL, username and password. Edit it under Configuration → System Settings → Email Templates to add your nameservers and a link to your knowledge base.

When provisioning does not happen

Two places tell you why. Utilities → Module Queue lists every provisioning action that failed, with a retry button. Configuration → System Logs → Module Log shows the raw request and response to Plesk, but only while Module Debug Logging is on; turn it on, reproduce the order, then turn it off again.

The errors we see most, in order:

"Error code: 1019" or a password complaint. Plesk's password policy is set to Very strong and WHMCS's generated password does not meet it. Either lower the policy to Strong under Tools & Settings → Security Policy, or set a stronger password generator length in WHMCS under General Settings → Security.

"Domain name is required" or the account is created without a domain. The product's Details tab has Require Domain unticked, so the order form never asked for one, and Plesk cannot create a subscription without it. Tick it.

"Service plan not found". The plan name in Module Settings has a typo, or the plan was renamed in Plesk. Reselect it.

"No server assigned" on an existing service. The service was created before the server existed. Open the client's service, set the server field, and use Module Command → Create.

Connection timed out. Port 8443 is blocked between the two servers, or the Plesk hostname resolves to a private IP from where WHMCS sits.

Everything works from Test Connection but orders never provision. The cron is not running, so paid invoices never trigger anything. See WHMCS cron not running.

Suspensions and terminations

The same module handles the rest of the lifecycle. Under Automation Settings, set the number of days overdue before suspension and termination. WHMCS then suspends in Plesk (the site shows a suspended page), unsuspends automatically when the invoice is paid, and terminates after your grace period. Test this on a dummy account before trusting it with clients: a termination deletes the subscription and its data.

On our reseller plans

If your WHMCS came with a VPSPioneer Partner plan, the server is already added with your reseller login and your service plans are mapped when we hand it over. What you do is set prices and pick a welcome email; the plumbing is done.

#whmcs#plesk#provisioning#server-module#reseller

Keep reading

More from WHMCS

All guides

WHMCS

How to Install WHMCS on a Plesk Server, Step by Step

WHMCS 9 requirements (PHP 8.2+, ionCube 13, MySQL), creating the site in Plesk, running the installer, the cron job and the first settings to lock down.

4 min read →

WHMCS

WHMCS Cron Not Running: How to Find the Cause and Fix It

Why invoices and suspensions stop when the WHMCS cron fails, the exact cron command for WHMCS 9, how to read the cron log, and the six failures we see most.

4 min read →

Plesk

Plesk for Beginners: A Tour of the Panel

Where everything is in Plesk — domains, files, databases, mail, DNS, SSL, PHP, backups, WordPress Toolkit — and what to click for the first ten jobs.

3 min read →