Guide
WHMCS Server & Product Module
This page walks through creating the WHMCS server record and a sellable product for Hetzner Cloud, using the srv_hetzner_cloud server module. It is written for WHMCS administrators setting up their first Cloud product, or adding a second Hetzner Cloud project.
Step 1 — Create the WHMCS server record
Go to Setup → Products/Services → Servers → Add New Server.
| Field | Value |
|---|---|
| Name | A descriptive label, for example "Hetzner Cloud EU" |
| Hostname | Optional |
| Module | Hetzner Cloud |
| Access Hash | Hetzner Cloud API token (optional if the addon-level token is already configured) |
Click Test Connection — it should succeed when the token is valid.
Note
One WHMCS server record corresponds to one Hetzner Cloud project. If you manage multiple Hetzner Cloud projects, add one server record per project.
Step 2 — Create or import a product
Option A — Import from the addon (recommended)
Use Import Server Types to create products automatically from the live Hetzner catalog.
Option B — Manual product
- Go to Setup → Products/Services → Products/Services → Create a New Product.
- Set Product Type to Server/VPS.
- On the Module Settings tab, set:
- Module: Hetzner Cloud
- Server Group: the group containing your Hetzner server record
- Server Type, Image, and Location: chosen from live dropdowns fetched from the Hetzner API
Deprecated Gen1 types are filtered out; prefer current Gen2 types (cx23, cpx22, and so on).
Tip
If the dropdowns appear empty, verify the API token on the linked server or the addon-level Cloud API Token.
Step 3 — Configurable options (optional)
For flexible location and image pricing:
- Generate groups from Configurable Options.
- Go to Setup → Products/Services → [product] → Configurable Options, then link the groups and set pricing.
Expected group names:
| Group name pattern | Purpose |
|---|---|
Hetzner Locations — {type} |
Location/datacenter |
Hetzner Cloud Options (x86) |
Shared add-ons for x86 |
Hetzner Cloud Options (ARM) |
Shared add-ons for ARM |
Step 4 — Custom fields
The module creates two custom fields automatically on first provision:
| Field | Purpose |
|---|---|
serverID |
Hetzner server ID — do not edit manually |
sshKey |
Optional SSH key reference used during provisioning |
Step 5 — Overage billing (optional)
On the product's Module Settings tab:
- Overage Price/GB — sets the price per GB over the included traffic allowance. Set to
0to disable overage billing.
Step 6 — Client-area policy
Finish setup in Product Settings:
- Enter the Product ID.
- Adjust the Client Actions toggles for the actions you want customers to see.
- Set an import markup if needed.
Configure ISO Settings if you want to restrict the global ISO whitelist.
Module commands
| Command | Purpose |
|---|---|
| Sync Details | Refreshes hostname, IP, and credentials in WHMCS from Hetzner |
| Create / Terminate | Standard WHMCS module lifecycle actions |
Order-to-provision flow
sequenceDiagram participant Client participant WHMCS participant Module as srv_hetzner_cloud participant Hetzner Client->>WHMCS: Place order WHMCS->>Module: CreateAccount Module->>Hetzner: POST /servers Hetzner-->>Module: server id + IPs Module->>WHMCS: Update service record + serverID field Client->>WHMCS: Open client area WHMCS->>Module: ClientArea Module-->>Client: Overview + management tools