Skip to content

Guide

WHMCS Server & Product Module

Guide 3 min read

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

Use Import Server Types to create products automatically from the live Hetzner catalog.

Option B — Manual product

  1. Go to Setup → Products/Services → Products/Services → Create a New Product.
  2. Set Product Type to Server/VPS.
  3. 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:

  1. Generate groups from Configurable Options.
  2. 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 0 to 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