Mikrotik VPN WHMCS module
The module is intended as an opportunity for IT companies to expand their offer for customers by offering paid VPN accounts. After installation, the module will fully manage the creation, edition, and suspension of VPN accounts and interact with the WHMCS billing system, exchanging data needed for settlements with customers, activations or service blocking. Initial assumptions: the company uses WHMCS and owns or is able to install Mikrotik routers. Mikrotik routers are necessary to provide VPN service (managing Mikrotik secrets users). WHMCS is necessary to manage the VPN service.
- Description
- Changelog
- Installation and configuration guide
- WHMCS setup(install/update)
- Setup guide: Mikrotik preparation and configuration
- Setup guide: WHMCS preparation and configuration
- Add server (router Mikrotik) in WHMCS
- Email Template (puqMikrotikVPN notification traffic limit)
- Email Template (puqMikrotikVPN Suspension Notification traffic limit)
- Product Configuration in WHMCS
- Product Addons Configuration in WHMCS
- Client Area
- Admin Area
Description
Order now | Dowload | FAQ
The module, fully installed and correctly implemented in the system, offers the following functionalities.
Module Functions:
- Auto create and deploy VPN account/accounts
- Suspend/Unsuspend/Terminate/Change Package/Change Password/Reset connection
- Use only Mikrotik API
- Possibility to set Bandwidth speed limits
- Possibility to set Bandwidth traffic limits
- Ability to buy additional traffic
- Traffic usage statistics
- Auto-Limiting the use of the service when the traffic limit is exhausted.
- Module supports multilingualism
- Link to instructions for setting up the service in the client area.
- User email notification traffic limit
- Suspend exceeding traffic limit email notification
- In the WHMCS settings, a list of IPs is specified for use by clients.
- Ability to use both private and public IPs for clients
Available options in the admin panel:
- Create users
- Suspend users
- Terminate users
- Unsuspend users
- Change password
- Change Package
- VPN connection status
- Reset Connection
- Traffic added history
Available options in the client panel:
- Change the VPN password
- VPN connection status
- Traffic balance
- Traffic statistics
- Traffic added history
WHMCS minimal version: 8 +
Mikrotik minimal version: 7 +
The settings of the whmcs module when it comes to upload and download speeds register the opposite values in the mikrotik router (e.g. download speed in whmcs 1mb = upload speed in mikrotirk 1mb). This is due to the fact that from the point of view of Mikrotik, the traffic is incoming, and from the point of view of the VPN client, this is outgoing traffic.
Please be aware that to ensure proper functionality of VPN connections, it is essential for you, as an administrator, to correctly configure the Mikrotik router. This entails configuring NAT, Firewall, routing, and all the required settings for VPN to operate correctly on your router.
Changelog
Order now | Dowload | FAQ
v1.3.5 Released 11-10-2023
- Support WHMCS v8.8.0
- Translations added/updated (Arabic, Azerbaijani, Catalan, Chinese, Croatian, Czech, Danish, Dutch, English, Estonian, Farsi, French, German, Hebrew, Hungarian, Italian, Macedonian, Norwegian, Polish, Romanian, Russian, Spanish, Swedish, Turkish, Ukrainian)
v1.3 Released 04-02-2023
- Changed client side. Added intuitive icons.
- Better code adaptation for PHP 8.1
- Bug fixed (Attempt to assign property "bytes_upload" on string in...puqMikrotikVPN.php:632)
v1.2 Released 04-01-2023
- Support WHMCS V8.6
- Support IonCube PHP Loader v12
- Support for PHP 8.1
- Changes made to templates
- Added the ability to select the frequency of collecting traffic statistics. Daily cron and per cron
- The method of collecting statistics has been changed. After each collection of statistics, the counters on Mikrotik are reset to zero.
- In the service settings, the choice of email template was changed to a drop-down menu.
v1.1 Released 28-10-2022
- Changes in design in the client area.
- Added translations, Ukrainian, Persian
- Changed the selection of the ppp secrets profile from text to a drop-down menu with a choice of spend, in the product configuration
v1.0 Released 01-08-2022
First version
Installation and configuration guide
WHMCS setup(install/update)
Order now | Dowload | FAQ
To install and update a module, you must perform one and the same action.
1. Download the latest version of the module.
PHP 8.1
wget http://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Mikrotik-VPN/PUQ_WHMCS-Mikrotik-VPN-latest.zip
PHP 7.4
wget http://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Mikrotik-VPN/php74/PUQ_WHMCS-Mikrotik-VPN-latest.zip
All versions are available via link: http://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Mikrotik-VPN/
2. Unzip the archive with the module.
unzip PUQ_WHMCS-Mikrotik-VPN-latest.zip
3. Copy and Replace "puqMikrotikVPN" to "WHMCS_WEB_DIR/modules/servers/"
Setup guide: Mikrotik preparation and configuration
Order now | Dowload | FAQ
Note: Enter the following commands one by one and wait for the command to complete.
I. Check RouterOS version
Make sure that the version of RouterOS is 7+
system/package/print
II. Enabling HTTPS Create your own root CA on your router
/certificate
add name=LocalCA common-name=LocalCA key-usage=key-cert-sign,crl-sign
III. Sign the newly created CA certificate
/certificate
sign LocalCA
IV. Create a new certificate for Webfig (non-root certificate)
Note: as common-name=XXX.XXX.XXX.XXX You enter public IP adddress of the router.
/certificate
add name=Webfig common-name=XXX.XXX.XXX.XXX
V. Sign the newly created certificate for Webfig
/certificate
sign Webfig ca=LocalCA
VI. Enable SSL (www-ssl) and specify to use the newly created certificate for Webfig
/ip service
set www-ssl certificate=Webfig disabled=no
VII. Enable api-ssl and specify to use the newly created certificate for Webfig
/ip service
set api-ssl certificate=Webfig disabled=no
VIII. Enable VPN server
To enable the VPN server
Setup guide: WHMCS preparation and configuration
Order now | Dowload | FAQ
1. Download the latest version of the module.
PHP 8.1
wget http://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Mikrotik-VPN/PUQ_WHMCS-Mikrotik-VPN-latest.zip
PHP 7.4
wget http://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Mikrotik-VPN/php74/PUQ_WHMCS-Mikrotik-VPN-latest.zip
All versions are available via link: http://download.puqcloud.com/WHMCS/servers/PUQ_WHMCS-Mikrotik-VPN/
2. Unzip the archive with the module.
unzip PUQ_WHMCS-Mikrotik-VPN-latest.zip
3. Copy "puqMikrotikVPN" to "WHMCS_WEB_DIR/modules/servers/"
4. Create new server Mikrotik in WHMCS (System Settings->Products/Services->Servers)
System Settings->Servers->Add New Server
- Enter the correct Name and Hostname
- In the "Assigned IP Addresses field", enter a list of IP addresses that will be issued to users.
- In the Server Details section, select the "PUQ Mikrotik VPN" module and enter the correct username and password for the Mikrotik router.
- To check, click the "Test connection" button
5. Create a new Products/Services
System Settings->Products/Services->Create a New Product
In the Module settings section, select the "PUQ mikrotik VPN" module
- License key: A pre-purchased license key for the "PUQ Mikrotik VPN" module. For the module to work correctly, the key must be active
- Comment PREFIX: The prefix that will be added to the VPN user's comment on the Mikrotik router
- Profile: PPP secret profile on mikrotik router
- Service: A service that will be available to a VPN user on a Mikrotik router
- Bandwidth Download: Download Bandwidth Limit in M/s
- Bandwidth Upload: Upload Bandwidth Limit M/s
- Traffic One Time/Monthly in GB/Traffic Quarterly in GB/Traffic Semi-Annually in GB/Traffic Annually in GB/Traffic Biennially in GB/Traffic Triennially in GB : Packet traffic that will be added to the balance every billing period, respectively
- Save traffic history (days): The number of days it takes to save user traffic usage statistics
- User notification traffic limit email template: The template of the letter that will be sent to the client if the remaining traffic is less than XXX
- Notification traffic remainder less than X GB: The amount of traffic on the client's balance below which a notification will be sent.
- Suspend exceeding traffic limit email template: The template of the letter that will be sent to the client if his traffic balance is 0 or less 0
- Link to instruction: Link to the instruction, if filled out, it will be reflected in the client area
- Support PPtP/Support L2TP: If checked, it will be reflected in the client zone
- L2TP IPSec PSK key: it will be reflected in the client zone
Add server (router Mikrotik) in WHMCS
Order now | Dowload | FAQ
Add a new server to the system WHMCS.
System Settings->Servers->Add New Server
- Enter the correct Name and Hostname
Name is just for Your convenience and You can put there anything You like ie: Mygreat mikrotik routr
You can choose whatever hostname You want. Valid entries look similar to: vpn.mydomain.com, ourgreatvpn.mydomain.net. You can also dedicate whole domain ie: myVPNservices.com if You like. The important thing is to resolve the choosen IP address of the Mikrotik router in DNS server for Your domain.
- In the "Assigned IP Addresses field", enter a list of IP addresses that will be issued to users.
- In the Server Details section, select the "PUQ Mikrotik VPN" module and enter the correct username and password for the Mikrotik router.
- To check, click the "Test connection" button
Email Template (puqMikrotikVPN notification traffic limit)
Order now | Dowload | FAQ
Create an email template for customer notifications.
System Settings->Email Templates->Create New Email Template
- Email Type: Product/service
- Unique Name: puqMikrotikVPN notification traffic limit
Subject:
Traffic less than {$notification_traffic_remainder} GB - {$username}
Body:
Dear {$client_name},
This letter informs you that the traffic limit of the service is coming to an end.
Product/Service: {$service_product_name}
Due Date: {$service_next_due_date}
Username: {$username}
Left traffic: {$traffic_balance_gb} GB
After renewing the service, {$traffic_billingcycle_gb} GB will be automatically added.
{$signature}
Email Template (puqMikrotikVPN Suspension Notification traffic limit)
Order now | Dowload | FAQ
Create an email template for customer notifications.
System Settings->Email Templates->Create New Email Template
- Email Type: Product/service
- Unique Name: puqMikrotikVPN Suspension Notification traffic limit
Subject:
Suspension Information - {$username}
Body:
Dear {$client_name},
This letter informs you that the VPN account has been suspended due to traffic exhaustion.
The traffic limit will be restored from the next service cycle.
It is also possible to switch to a package with a large amount of traffic.
Product/Service: {$service_product_name}
Due Date: {$service_next_due_date}
Username: {$username}
Left traffic: {$traffic_balance_gb} GB
After renewing the service, {$traffic_billingcycle_gb} GB will be automatically added.
{$signature}
Product Configuration in WHMCS
Order now | Dowload | FAQ
Add new product to WHMCS
System Settings->Products/Services->Create a New Product
In the Module settings section, select the "PUQ mikrotik VPN" module
- License key: A pre-purchased license key for the "PUQ Mikrotik VPN" module. For the module to work correctly, the key must be active
- Comment PREFIX: The prefix that will be added to the VPN user's comment on the Mikrotik router
- Profile: PPP secret profile on mikrotik router
- Service: A service that will be available to a VPN user on a Mikrotik router
- Bandwidth Download: Download Bandwidth Limit in M/s
- Bandwidth Upload: Upload Bandwidth Limit M/s
- Traffic One Time/Monthly in GB/Traffic Quarterly in GB/Traffic Semi-Annually in GB/Traffic Annually in GB/Traffic Biennially in GB/Traffic Triennially in GB : Packet traffic that will be added to the balance every billing period, respectively
- Save traffic history (days): The number of days it takes to save user traffic usage statistics
- User notification traffic limit email template: The template of the letter that will be sent to the client if the remaining traffic is less than XXX
- Notification traffic remainder less than X GB: The amount of traffic on the client's balance below which a notification will be sent.
- Suspend exceeding traffic limit email template: The template of the letter that will be sent to the client if his traffic balance is 0 or less 0
- Link to instruction: Link to the instruction, if filled out, it will be reflected in the client area
- Support PPtP/Support L2TP: If checked, it will be reflected in the client zone
- L2TP IPSec PSK key: it will be reflected in the client zone
- Statistics collection frequency : The frequency with which traffic usage statistics will be collected. It also checks the positive balance and if the traffic balance is exhausted, it disables the vpn account on the Mikrotik server.
Product Addons Configuration in WHMCS
Order now | Download | FAQ
In order to provide customers with the opportunity to purchase additional traffic, use Product Addons
Create new Product Addons in the WHMCS system.
System Settings->Product Addons->Add New Addon
- Product Type: Other
- Module Name: PUQ Mikkrotik VPN
- Traffic in GB : The amount of traffic that will be added after payment by the client
Client Area
Here is a brief summary of the options available in the customer panel
Home screen
Order now | Download | FAQ
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.).
- Valid VPN server address
- Information about available VPN protocols
- Access options
- Connection status
- Balance traffic
- Information about the bandwidth limit.
- Drop-down menu with option to buy additional traffic.
Screenshot view when the service is offline
Screenshot view when the service is online
Screenshot view when the account is blocked
Email notification
Order now | Download | FAQ
Below you can see an example of an email notification regarding exhausted traffic limit

Below you can see an example of an email notification regarding suspension Information
Traffic statistics
Order now | Download | FAQ
Traffic statistics shows the customer's traffic on a daily basis, broken down into incoming and outgoing.
Traffic usage statistics is available in the menu item "Traffic statistics"
Traffic Usage Charts
Traffic usage table
Traffic added history
Order now | Download | FAQ
A user who has exceeded the purchased transfer limit may purchase additional traffic. In this tab you can track purchases made for additional traffic.
Statistics of adding traffic is available in the menu item "Traffic added history"
A table that shows the dates and the amount of added traffic
Buy additional traffic
Order now | Download | FAQ
A user who has exceeded the purchased transfer limit may purchase additional traffic. In this tab you can track purchases made for additional traffic.
After selecting the desired item and pressing the "Order Now" button.
The customer is transferred to the cart for payment.
After you successfully purchase an additional transfer, the limit is updated on a regular basis.
Admin Area
Product Information
Order now | Download | FAQ
Product Information Screen