Skip to content

Guide

WHMCS Product Module

Guide 3 min read

This page explains how to create the WHMCS server and product used to sell dedicated servers with the srv_hetzner_dedicated server module. It is written for WHMCS administrators setting up billing for the family, whether products were imported automatically or are being configured by hand.

Add a WHMCS server

  1. Go to Setup → Products/Services → Servers.
  2. Click Add New Server.
  3. Fill in:
    • Name — for example, "Hetzner Dedicated".
    • Module — select Hetzner Dedicated Server.
    • Username / Password — your Hetzner Robot webservice credentials (see Robot Webservice User).
  4. Click Test Connection to verify.
  5. Save the server.

Note

The Robot API endpoint is https://robot-ws.your-server.de and authenticates with HTTP Basic Auth, so Test Connection succeeds only when the webservice username and password are correct and not currently rate-limited.

Create a dedicated server product

  1. Go to Setup → Products/Services → Products/Services and create a new product (or open one created by Import).
  2. Set Module Name to Hetzner Dedicated Server.
  3. On the Module Settings tab, assign the server created above and confirm the server group.
  4. Set Product Type to Dedicated/VPS Server so WHMCS shows server-related fields correctly.

Server module configuration options

Option Maps to Notes
Product ID Robot product ID Standard product ID or auction (market) ID
Location Datacenter Required for Standard orders; not used for Market
Order Type standard or market Set automatically when the product was created via Import

Product access control

Use the Module ACL / Product ACL tab to control which client-area actions and admin fields are exposed for this specific product, on top of the family-wide defaults set on Settings.

Product ACL

Custom fields (created automatically)

Field Purpose
serverID The final Robot server number, populated once the server is provisioned
robotTransactionID The asynchronous order's transaction ID, cleared once the server number resolves

These fields are created for you automatically on import; if you are building a product manually, confirm both fields exist on the product's Custom Fields tab.

Provisioning flow

  1. The client orders the dedicated server product.
  2. The module places the Robot order (Standard or Market) — Robot returns a transaction ID, which is stored, not a server number.
  3. The Pending Orders reconciliation process polls Robot and, once fulfilled, populates serverID.
  4. The WHMCS service becomes Active once the server number is available.

Warning

Because provisioning is asynchronous, a newly ordered dedicated server product will show as Pending in WHMCS for a period of time — this is expected and not a failure. See Pending Orders.

Troubleshooting

Problem Fix
Test Connection fails when adding the server Verify the webservice user and password, and that the source IP is not currently blocked — see Robot Webservice User
Order placed but service stays Pending indefinitely Check Pending Orders and run Run Dedicated Cron manually
serverID never populates Confirm the custom field exists on the product and that the Robot account has ordering enabled