# 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 8.1+**

- - - - - -

## System requirements

<table id="bkmrk-requirement-minimum-"><thead><tr><th>Requirement</th><th>Minimum</th></tr></thead><tbody><tr><td>**WHMCS**</td><td>8.x+, 9.x+.</td></tr><tr><td>**PHP**</td><td>7.4, 8.1, 8.2, 8.3, 8.4</td></tr><tr><td>**Synology DSM**</td><td>Entire DSM 7.x line</td></tr><tr><td>**ionCube Loader**</td><td>v15+</td></tr></tbody></table>

- - - - - -

## Links

- **Product page:** [https://puqcloud.com/whmcs-module-synology.php](https://puqcloud.com/whmcs-module-synology.php)
- **Documentation:** [https://doc.puq.info/books/synology-whmcs-module](https://doc.puq.info/books/synology-whmcs-module)
- **Download:** [https://download.puqcloud.com/WHMCS/servers/PUQ\_WHMCS-Synology/](https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Synology/)
- **Support:** [https://puqcloud.com/submitticket.php](https://puqcloud.com/submitticket.php?step=2&deptid=1)
- **Community:** [https://community.puqcloud.com/](https://community.puqcloud.com/)

- - - - - -

## Screenshots

### Client area — modern self-service

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

### Admin area — product information

![Admin product information](https://doc.puq.info/uploads/images/gallery/2026-09/embedded-image-mocwukk1.png)*15-product-information.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/)

- - - - - -

## v4.0.0 (02-09-2026)

- Full compatibility with WHMCS 8.x and WHMCS 9+
- Universal **ionCube Loader v15** support for seamless encoding compatibility
- Modernized administrative product settings interface with dynamic injection and enhanced stability
- Enhanced DSM API session management and quota synchronization
- Performance and stability improvements across user provisioning workflows

- - - - - -

##### 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 Installation and Update

### 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/)

## System requirements

| Requirement | Minimum |
|-------------|---------|
| **WHMCS** | 8.x+, 9.x+. |
| **PHP** | 7.4, 8.1, 8.2, 8.3, 8.4 |
| **Synology DSM** | 7.x or higher |
| **ionCube Loader** | v15+ |

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

---

## Download

> **Note:** The module now uses **ionCube 15**, which provides universal out-of-the-box support for all encodings across modern PHP runtimes.
>
> All versions can be found at this link:
> [https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Synology/](https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Synology/)
>
> Older module versions for WHMCS 8 are available in the archive directory:
> [https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Synology/archive/](https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Synology/archive/)

The module can be ordered and downloaded from PUQ Cloud:

- **Order Module:** [https://puqcloud.com/whmcs-module-synology.php](https://puqcloud.com/whmcs-module-synology.php)
- **Documentation:** [https://doc.puq.info/books/synology-whmcs-module](https://doc.puq.info/books/synology-whmcs-module)
- **All Versions / Download:** [https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Synology/](https://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Synology/)
- **Support:** [https://puqcloud.com/submitticket.php](https://puqcloud.com/submitticket.php?step=2&deptid=1)
- **Community:** [https://community.puqcloud.com/](https://community.puqcloud.com/)
- **Direct download link for the latest version:**

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

After downloading, extract the archive:

```bash
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:

```bash
cp -r puqSynology /path/to/whmcs/modules/servers/
```

Or target path:
```
WHMCS_WEB_DIR/modules/servers/puqSynology
```

Once the files are uploaded, proceed to the WHMCS Setup Guide to configure the server and product.

---

## Update

The update procedure is the same as installation — replace the existing files with the new version:

1. Download the latest version as described in the Download section.
2. Unzip the archive.
3. Replace the existing `WHMCS_WEB_DIR/modules/servers/puqSynology` directory with the new one.
4. Verify the version number in the module interface matches the new release.


<!-- sync:fddc2bfd9c9999dc -->

# 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-09/embedded-image-zzj6w1qi.png)
*04-synology-setup-1.png*

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

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

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

![08-synology-setup-5.png](https://doc.puq.info/uploads/images/gallery/2026-09/embedded-image-hzakctoy.png)
*08-synology-setup-5.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-09/embedded-image-tygydkdm.png)
*09-synology-setup-6.png*

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

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

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


<!-- sync:88e0475c8df71c94 -->

# Setup guide: WHMCS setup

### 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/)

---

## Step 1: Add server in WHMCS

Navigate to:
```
System Settings -> Servers -> Add New Server
```

1. Enter the correct **Name** and **Hostname**

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

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

![11-add-server-2.png](https://doc.puq.info/uploads/images/gallery/2026-09/embedded-image-7ckgzbbq.png)
*11-add-server-2.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)**.

---

## Step 2: Create product in WHMCS

Navigate to:
```
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-09/embedded-image-bcrdoaxo.png)
*14-product-configuration-overview.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:88ca66ca5f7842aa -->

# 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-09/embedded-image-opnpuwpb.png)
*12-email-template-1.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-09/embedded-image-i5oeoy2n.png)*13-email-template-2.png*


<!-- sync:139405a51c34b565 -->

# 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-09/embedded-image-z7oogcxk.png)
*10-add-server-1.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-09/embedded-image-pyt0dajh.png)
*11-add-server-2.png*

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

<!-- sync:cbe5fecbce9043e4 -->

# 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-09/embedded-image-bj9mfdff.png)
*14-product-configuration-overview.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-09/embedded-image-eipw2y6p.png)
*20-product-config-disk.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-09/embedded-image-xowvf8x3.png)
*21-product-config-notifications.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-09/embedded-image-3sw4xklw.png)
*22-product-config-history.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-09/embedded-image-qek20mtd.png)
*23-product-config-client-area.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-09/embedded-image-uwqmuebw.png)
*24-product-config-user.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:f287508465e2bb7b -->

# 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-09/embedded-image-rynkuwsd.png)*16-home-screen.png*


<!-- sync:0b0b0d71f388b15e -->

# 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-09/embedded-image-i2cmzgcg.png)*17-email-notification.png*


<!-- sync:81e03b93213c9360 -->

# 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-09/embedded-image-dw53phlv.png)
*18-disk-statistics-1.png*

##### Disk Usage Charts

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


<!-- sync:e0d65df5d72861e2 -->

# 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-09/embedded-image-u4ihxin8.png)*15-product-information.png*


<!-- sync:656d963843e3964f -->

