# Synology WHMCS module

# Description

### Synology module **[WHMCS](https://puqcloud.com/link.php?id=77)**

##### [Order now](https://puqcloud.com/whmcs-module-synology.php) | [Download](https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Synology/) | [Community](https://community.puqcloud.com/)

The **PUQ Synology module for WHMCS** turns your Synology NAS into a fully automated, self-service storage product. From the moment a client places an order, the module creates and manages their Synology DSM account end-to-end — no manual steps, no DSM logins, no spreadsheets. Everything is handled through the official Synology DSM Web API.

Built for resellers and hosting providers, the module lets you sell disk space on Synology devices with per-plan parameters defined by **Synology groups**, while your clients get a clean, modern self-service area.

> **Note:** The module requires an existing, fully deployed Synology machine with properly configured groups and other options (more information later in the manual).

> **Note:** The module does not install or configure DSM on Synology machines in any way — it only provisions and manages user accounts through the API.

- - - - - -

## Key features

### Full account lifecycle automation

- Automatic account **creation and deployment** on Synology when an order is activated
- **Suspend, unsuspend, terminate, change password** and **change package** — all driven by the DSM API
- **Duplicate protection** — the module never overwrites an account that already exists on the NAS
- Smart, collision-safe **username generation** with macros (`{client_id}`, `{service_id}`, random digits/letters, date/time) — always DSM/Linux-compliant
- **DSM-policy-aware password generation** — generated passwords automatically satisfy your server's password-strength rules

### Group-based plans (real limits on the server)

- Each product assigns the client to a **pre-configured Synology group**, chosen from a live drop-down of the groups that actually exist on your server
- The real disk quota and permissions are enforced by that Synology group — configure them once in DSM and resell with confidence
- On **package change**, the user is moved from the old group to the new one automatically

### Disk usage monitoring &amp; notifications

- Live **disk usage** with current and historical data (last 30 days and monthly averages)
- Automatic **email notification** when a client exceeds a configurable usage threshold
- Usage percentage and free/used breakdown shown to the client

### Modern client area

- Redesigned, card-based interface with **copy-to-clipboard** for credentials and a **show/hide password** toggle
- Disk-usage **pie chart** and historical **usage statistics** charts
- One-click link to your **user manual / setup instructions**

### Powerful admin tools

- **API connection status** indicator
- **User details** at a glance — username, status, group membership, email, expiry
- **Disk usage** progress bar and full breakdown directly on the service page
- Built-in **license verification** with proactive alerts on the admin dashboard

### Localization &amp; compatibility

- **25 interface languages** out of the box
- Works across the **entire Synology DSM 7 line**
- Compatible with **WHMCS 8+** and **PHP 7.4 / 8.1 / 8.2** (PHP-version-specific builds provided)

- - - - - -

## Compatibility

<table id="bkmrk-requirement-supporte"><thead><tr><th>Requirement</th><th>Supported</th></tr></thead><tbody><tr><td>**Synology DSM**</td><td>Entire DSM 7.x line</td></tr><tr><td>**WHMCS**</td><td>8.x or higher</td></tr><tr><td>**PHP**</td><td>7.4 / 8.1 / 8.2</td></tr><tr><td>**ionCube Loader**</td><td>Required</td></tr></tbody></table>

- - - - - -

## Screenshots

### Client area — modern self-service

![Client area home screen](https://doc.puq.info/uploads/images/gallery/2026-06/embedded-image-apf09dxl.png)

### Admin area — product information

![Admin product information](https://doc.puq.info/uploads/images/gallery/2026-06/embedded-image-gaunzr8z.png)# Changelog

### Synology module **[WHMCS](https://puqcloud.com/link.php?id=77)**

##### [Order now](https://puqcloud.com/whmcs-module-synology.php) | [Download](https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Synology/) | [Community](https://community.puqcloud.com/)

- - - - - -

##### v3.0 Released 28-06-2026

**A major release — the module has been fully re-engineered and adapted to the latest Synology DSM.**

- **Full support for the entire Synology DSM 7 line (up to and including the latest DSM 7.2+).**The whole DSM Web API integration was reworked and verified against current DSM: token-based session authentication (SID + SynoToken), correct user **group-membership** management, and live disk-quota statistics.
- **Reliable account lifecycle** — create, suspend, unsuspend, terminate, change password and change package — all aligned with the current `SYNO.Core.*` APIs.
- **Server-side group assignment.** Provisioned users are added to a **pre-configured Synology group**, chosen from a drop-down that is populated live with the groups that actually exist on your server. The real disk/permission limits are enforced by that Synology group.
- **New product configuration UI.** A dynamic "Module Settings" panel on the product page (JSON-based), which also keeps working on older WHMCS versions.
- **DSM-policy-aware password generation** (automatically matches your server's password-strength rules) and flexible **macro-based username rules** with collision protection.
- **Protection against duplicates** — the module never overwrites an account that already exists on Synology.
- **Redesigned client area** — modern cards, copy-to-clipboard for credentials, show/hide password, disk-usage pie chart and 30-day / monthly history charts.
- **25 interface languages.**
- **Broad compatibility** — PHP 7.4 / 8.1 / 8.2 and older WHMCS releases (per-PHP builds provided).
- **Hardened &amp; maintainable** — comprehensive error handling and logging, safe data access throughout, and built-in license verification with proactive admin alerts.

> **Note:** Product reconfiguration is required after updating to v3.0 — product settings have moved to the new Module Settings UI.

- - - - - -

##### v1.2.1 Released 02-04-2023

1. Adaptation for Synology DSM 7.1.1

- - - - - -

##### v1.2 Released 05-03-2023

1. Support for PHP 8.1 and PHP 7.4
2. Support for Synology DSM 6.x and Synology DSM 7.x
3. Changes made to templates, add icons
4. API timeout set to 30

- - - - - -

##### v1.1 Released 23-01-2023

1. Support WHMCS V8.6
2. Support IonCube PHP Loader v12
3. Support for PHP 8.1
4. Changes made to templates
5. In the service settings, the choice of email template was changed to a drop-down menu
6. Added translations: German, Ukrainian

- - - - - -

##### v1.0 Released 01-08-2022

First version# Installation and Configuration Guide

Step-by-step instructions for installing, configuring, and setting up the Synology WHMCS module, including Synology DSM preparation, WHMCS integration, email templates, and product configuration.

# WHMCS setup (install/update)

### Synology module **[WHMCS](https://puqcloud.com/whmcs-module-synology.php)**
#####  [Order now](https://puqcloud.com/whmcs-module-synology.php) | [Download](https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Synology/) | [Community](https://community.puqcloud.com/)

## System requirements

| Requirement | Minimum version |
|-------------|-----------------|
| **PHP** | 7.4 or higher (7.4 / 8.1 / 8.2) |
| **WHMCS** | 8.x or higher |
| **ionCube Loader** | v13 or newer (v14, v15) |
| **Synology DSM** | 7.x or higher |

> **Note:** The module uses ionCube encoding. Make sure ionCube Loader is installed and active on your server.

---

## Backward compatibility

This module supports older PHP versions and older WHMCS versions for maximum compatibility with existing hosting environments. PHP-version-specific builds are provided:

- **PHP 7.4** — for legacy WHMCS 8 installations running PHP 7.4
- **PHP 8.1** — for WHMCS 8 installations running PHP 8.1
- **PHP 8.2** — for WHMCS 8/9 installations running PHP 8.2

Each build is encoded with the appropriate ionCube version for the target PHP runtime.

---

## Download

The module can be ordered and downloaded from PUQ Cloud:

- **Order / Download:** [https://puqcloud.com/whmcs-module-synology.php](https://puqcloud.com/whmcs-module-synology.php)
- **Community:** [https://community.puqcloud.com/](https://community.puqcloud.com/)
- **Direct download links for the latest version:**

```
# PHP 7.4
wget https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Synology/php74/PUQ_WHMCS-Synology-latest.zip

# PHP 8.1
wget https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Synology/php81/PUQ_WHMCS-Synology-latest.zip

# PHP 8.2
wget https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Synology/php82/PUQ_WHMCS-Synology-latest.zip
```

After downloading, extract the archive:

```
unzip PUQ_WHMCS-Synology-latest.zip
```

---

## Installation

### Step 1: Upload files

Extract the module archive and copy the `puqSynology` directory to the WHMCS servers module directory:

```
WHMCS_WEB_DIR/modules/servers/puqSynology
```

### Step 2: Add server

Navigate to **System Settings** → **Servers** → **Add New Server**:

1. Enter the correct **Name** and **Hostname**
2. In Server Details, select the **PUQ Synology** module
3. Enter valid Synology DSM credentials (username and password)
4. Click **Test connection** to verify

### Step 3: Create product

Navigate to **System Settings** → **Products/Services** → **Create a New Product**:

1. Select the **PUQ Synology** module in the Module settings section
2. Configure the product parameters

---

## Update

### Step 1: Backup

Before updating, it is recommended to back up:
- WHMCS database
- Module files in `modules/servers/puqSynology/`

### Step 2: Upload new files

Download and extract the new version, then overwrite all files in:

```
WHMCS_WEB_DIR/modules/servers/puqSynology/
```

### Step 3: Verification

1. Log in to the WHMCS admin panel
2. Check the module is functioning correctly
3. Verify product settings

> **Important (v3.0):** Product reconfiguration is required after updating to version 3.0.


<!-- sync:df907a5f1e4e11e4 -->

# Synology part setup guide

### Synology module **[WHMCS](https://puqcloud.com/link.php?id=77)** 

#####  [Order now](https://puqcloud.com/whmcs-module-synology.php) | [Download](https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Synology/) | [Community](https://community.puqcloud.com/)

Here are the initial steps of configuring Synology devices to prepare them for use with the WHMCS module.

> **Note:** At the beginning, you should prepare the appropriate domain with the correct DNS entries so that you can generate a correct SSL certificate for Your Synology NAS server. 

##### 1. Generate an SSL certificate for your domain.

Connect the certificate for all services that will be used in the server.(FTPS, System, Synology Drive, etc...)

![04-synology-setup-1.png](https://doc.puq.info/uploads/images/gallery/2026-06/embedded-image-h4iqnrht.png)

##### 2. Make sure the partition is formatted in BTRFS

![07-synology-setup-4.png](https://doc.puq.info/uploads/images/gallery/2026-06/embedded-image-lolxyriq.png)

##### 3. Enable the user's home folder.

![08-synology-setup-5.png](https://doc.puq.info/uploads/images/gallery/2026-06/embedded-image-ylwohm2j.png)

##### 4. Enable all necessary file services (ie: FTP, FTPS, SFTP, etc.).

![09-synology-setup-6.png](https://doc.puq.info/uploads/images/gallery/2026-06/embedded-image-bdpnga5f.png)

##### 5. Create user groups with the necessary quotas and permissions.

![05-synology-setup-2.png](https://doc.puq.info/uploads/images/gallery/2026-06/embedded-image-3qvmksrx.png)

![06-synology-setup-3.png](https://doc.puq.info/uploads/images/gallery/2026-06/embedded-image-dy5t6vxn.png)

<!-- sync:12f4747822087655 -->

# WHMCS part setup guide

### Synology module **[WHMCS](https://puqcloud.com/link.php?id=77)**
#####  [Order now](https://puqcloud.com/whmcs-module-synology.php) | [Download](https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Synology/) | [Community](https://community.puqcloud.com/)

##### 1. Download the latest version of the module

Choose the build that matches your server's PHP version:

PHP 8.2
```bash
wget https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Synology/php82/PUQ_WHMCS-Synology-latest.zip
```

PHP 8.1
```bash
wget https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Synology/php81/PUQ_WHMCS-Synology-latest.zip
```

PHP 7.4
```bash
wget https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Synology/php74/PUQ_WHMCS-Synology-latest.zip
```

> **Note:** All versions are available here: [https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Synology/](https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Synology/)

##### 2. Unzip the archive with the module

```bash
unzip PUQ_WHMCS-Synology-latest.zip
```

##### 3. Copy "puqSynology" to "WHMCS_WEB_DIR/modules/servers/"

##### 4. Add the Synology NAS server in WHMCS

```
System Settings -> Servers -> Add New Server
```

- Enter the correct **Name** and **Hostname**

![10-add-server-1.png](https://doc.puq.info/uploads/images/gallery/2026-06/embedded-image-utczbpnv.png)

- In the **Server Details** section, select the **PUQ Synology** module and enter the correct **username** and **password** of the **Synology DSM** account.
- Click **Test connection** to verify.

![11-add-server-2.png](https://doc.puq.info/uploads/images/gallery/2026-06/embedded-image-gdnxc3tc.png)

> **Warning:** The **ACCESS HASH** field is used to store the server access key and is updated automatically — do not edit it manually.

For more details, see **[Add server (Synology NAS)](05-add-server.md)**.

##### 5. Create the product

```
System Settings -> Products/Services -> Create a New Product
```

In the **Module Settings** section, select the **PUQ Synology** module and the **Server Group** that contains your Synology server, then click **Save Changes** to load the configuration panel.

![14-product-configuration-overview.png](https://doc.puq.info/uploads/images/gallery/2026-06/embedded-image-t1qzyw9j.png)

Every setting in this panel (License key, Disk, Synology group, Notifications, History, Client Area and User rules) is described in detail on the **[Product Configuration](06-product-configuration.md)** page.


<!-- sync:d605d2b24ad08df1 -->

# Email Template (puqSynology Notification disk limit)

### Synology module **[WHMCS](https://puqcloud.com/link.php?id=77)** 

#####  [Order now](https://puqcloud.com/whmcs-module-synology.php) | [Download](https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Synology/) | [Community](https://community.puqcloud.com/)

##### Create an email template for customer notifications.

```
System Settings->Email Templates->Create New Email Template
```

- **Email Type:** Product/service
- **Unique Name:** puqSynology Notification disk limit

![12-email-template-1.png](https://doc.puq.info/uploads/images/gallery/2026-06/embedded-image-qyh1uesn.png)

**Subject:**

```PHP
Disk space usage {$disk_used_percentage} % - {$username}
```

**Body:**

```PHP
Dear {$client_name},

This letter informs you that the disk space usage limit is coming to an end.

Product/Service: {$service_product_name}
Due Date: {$service_next_due_date}

Username: {$username}

Disk limit: {$disk_limit_bytes*$unit_coefficient} {$unit}
Disk used: {$disk_used_unit} {$unit} ({$disk_used_percentage} %)
Disk free: {$disk_free_unit} {$unit} ({$disk_free_percentage} %)

{$signature}
```

![13-email-template-2.png](https://doc.puq.info/uploads/images/gallery/2026-06/embedded-image-a7ljvwxf.png)

<!-- sync:15a4d9a7f1fa4fbe -->

# Add server (Synology NAS)

### Synology module **[WHMCS](https://puqcloud.com/link.php?id=77)** 

#####  [Order now](https://puqcloud.com/whmcs-module-synology.php) | [Download](https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Synology/) | [Community](https://community.puqcloud.com/)

##### Add a new server to the system WHMCS.

```
System Settings->Servers->Add New Server
```

- Enter the correct **Name** and **Hostname**

![10-add-server-1.png](https://doc.puq.info/uploads/images/gallery/2026-06/embedded-image-o37ugvyv.png)

- In the **Server Details** section, select the "**PUQ Synology**" module and enter the correct **username** and **password** for the **Synology NAS web interface**.
- To check, click the **"Test connection"** button

![11-add-server-2.png](https://doc.puq.info/uploads/images/gallery/2026-06/embedded-image-1nrhfsfh.png)

> **Warning:** WARNING: **ACCESS HASH** field Used to store the access key to the server and is updated automatically.

<!-- sync:7b2e8191e0f89a1b -->

# Product Configuration

### Synology module **[WHMCS](https://puqcloud.com/link.php?id=77)**
#####  [Order now](https://puqcloud.com/whmcs-module-synology.php) | [Download](https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Synology/) | [Community](https://community.puqcloud.com/)

##### Add a new product to WHMCS

```
System Settings -> Products/Services -> Create a New Product
```

In the **Module Settings** section, select the **PUQ Synology** module and the **Server Group** that
contains your Synology server, then click **Save Changes**. The module then renders its modern
configuration panel.

![14-product-configuration-overview.png](https://doc.puq.info/uploads/images/gallery/2026-06/embedded-image-niq7m616.png)

> **Note:** Select the **Server Group** and save the product first — the **Synology group** drop-down
> (in the Disk section) is populated live from the server assigned to that group.

At the top of the panel:

- **Module Name** — the provisioning module (**PUQ Synology**).
- **Server Group** — the WHMCS server group whose Synology server this product is provisioned on.
- **License key** — your pre-purchased **PUQ Synology** license key. The validation status and the
  paid-through date are shown right below the field; the key must be **active** for the module to work.

---

### Disk

![20-product-config-disk.png](https://doc.puq.info/uploads/images/gallery/2026-06/embedded-image-6kadxozw.png)

> **Note:** **Display only.** The disk size/unit are shown to the client in the client area (and used for
> the usage-percentage chart and notifications). They do **not** enforce a limit on Synology. The real
> quota/permission limits must be configured on the **Synology group** selected here
> (Control Panel → User & Group → Group → Quota).

- **Disk size** — disk space shown to the client (display only). `0` = Unlimited.
- **Disk unit** — unit (MB / GB / TB) for the displayed disk space.
- **Synology group (enforces the real limits)** — the pre-configured Synology group assigned to
  provisioned users, chosen from a live drop-down of the groups that actually exist on the server.
  Use the refresh button to reload the list. Configure the real disk quota / permissions on this group in DSM.

---

### Notifications

![21-product-config-notifications.png](https://doc.puq.info/uploads/images/gallery/2026-06/embedded-image-klmaloyz.png)

- **Notify at %** — usage threshold; when a client exceeds it, a low-disk-space notification is sent.
- **Email template** — the WHMCS email template used for low-disk-space notifications (`None` to disable).

---

### History

![22-product-config-history.png](https://doc.puq.info/uploads/images/gallery/2026-06/embedded-image-a5azbs7u.png)

- **Save history (days)** — how many days of disk-usage statistics to keep in WHMCS.

---

### Client Area

![23-product-config-client-area.png](https://doc.puq.info/uploads/images/gallery/2026-06/embedded-image-hgg8vr9h.png)

- **Link to instruction** — an optional URL; when set, a **User manual** button is shown in the client area.
- **Show password** — how the password is presented in the client area (**Show button** / plain text / hidden).

---

### User

![24-product-config-user.png](https://doc.puq.info/uploads/images/gallery/2026-06/embedded-image-h8z0bh9y.png)

- **Username rule** — template for the generated username, using macros:
  - Base: `{client_id}`, `{service_id}`
  - Random: `{random_digit_x}`, `{random_letter_x}` (where *x* is the length, e.g. `{random_digit_4}`)
  - Date & time: `{unixtime}`, `{year}`, `{month}`, `{day}`, `{hour}`, `{minute}`, `{second}`
  - Example: `{client_id}-{service_id}-{random_digit_4}`
  - The generated name is automatically normalised to be Synology/DSM compliant, and collisions with other
    services are resolved automatically.
- **Password rule** — generated password length (minimum 8), e.g. `12`. The generated password always
  includes lowercase, uppercase, digit and special characters to satisfy the Synology DSM
  password-strength rules.


<!-- sync:b9cf583a5b640c8f -->

# Client Area

Overview of the client-facing features available in the Synology WHMCS module, including the home screen, email notifications, and disk usage statistics.

# Home screen

### Synology module **[WHMCS](https://puqcloud.com/link.php?id=77)** 

#####  [Order now](https://puqcloud.com/whmcs-module-synology.php) | [Download](https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Synology/) | [Community](https://community.puqcloud.com/)

The end customer, after logging in to his own customer panel, has access to the following information and options

- Link to the user manual (*which was defined by the administrator when setting up the service.*).
- Synology server adress
- Authorization data
- Usage statistics graph
- Table with data on the use of the service

![16-home-screen.png](https://doc.puq.info/uploads/images/gallery/2026-06/embedded-image-3dkzvjve.png)

<!-- sync:db4a91998178c68c -->

# Email notification

### Synology module **[WHMCS](https://puqcloud.com/link.php?id=77)** 

#####  [Order now](https://puqcloud.com/whmcs-module-synology.php) | [Download](https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Synology/) | [Community](https://community.puqcloud.com/)

##### **Below you can see an example of an email notification regarding data limit**

![17-email-notification.png](https://doc.puq.info/uploads/images/gallery/2026-06/embedded-image-kihwrspa.png)

<!-- sync:f8d534a0e0746ce3 -->

# Disk statistics

### Synology module **[WHMCS](https://puqcloud.com/link.php?id=77)** 

#####  [Order now](https://puqcloud.com/whmcs-module-synology.php) | [Download](https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Synology/) | [Community](https://community.puqcloud.com/)

Client can check the data usage statistics in the menu item **"Used space statistics"**

![18-disk-statistics-1.png](https://doc.puq.info/uploads/images/gallery/2026-06/embedded-image-ezrmwuhp.png)

##### Disk Usage Charts

![19-disk-statistics-2.png](https://doc.puq.info/uploads/images/gallery/2026-06/embedded-image-wnwgygvy.png)

<!-- sync:d2b80daecf90cdaa -->

# Admin Area

Administrative features and tools available in the WHMCS admin panel for managing Synology DSM services.

# Product Information

### Synology module **[WHMCS](https://puqcloud.com/link.php?id=77)** 

#####  [Order now](https://puqcloud.com/whmcs-module-synology.php) | [Download](https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Synology/) | [Community](https://community.puqcloud.com/)

##### Product Information Screen

![15-product-information.png](https://doc.puq.info/uploads/images/gallery/2026-06/embedded-image-yurvq61i.png)

<!-- sync:f5397c5b004d875f -->

