Advanced Billing For WHMCS
Contents |
About Advanced Billing For WHMCS
Advanced Billing For WHMCS enables you to implement flexible billing models based on the actual usage of resources such as bandwidth, CPU, and other server capabilities. This module supports multiple currencies and offers various billing options, including hourly billing, credit billing, and recurring billing. Advanced Billing For WHMCS is compatible with many popular modules, including cPanel, Plesk, and SolusVM, as well as a variety of ModulesGarden products. The Wiki page for Advanced Billing For WHMCS 3.x can be found here. |
- Core Features:
✔ Hourly Billing For Any WHMCS Module |
✔ Specific Resources Billing For Integrated WHMCS Modules |
✔ Configure And Manage Individual Product Billing |
✔ View List Of Current And Archived Billable Items For Next Invoices |
✔ View Item Resource Usage History |
✔ Manage Awaiting Invoices And Convert Them To Invoices |
✔ Define Summary Calculation Method |
✔ Define Time Period Between Resource Usage Checks |
✔ Configure Multithreaded Cron Job Settings |
✔ Set Clearance Automation For Item Archive |
✔ Customize Module Language Files With "Translations" Tool |
✔ Control Staff Access Level To Specific Resources With ACL |
✔ View And Manage Logs |
- 'Credit Billing' Configuration:
✔ Generate Invoice Every X Days |
✔ Define Minimum Amount Of Credits To Charge |
✔ Notify Clients Via Email About Low Credit Amount On Their Account |
✔ Automatically Suspend Account When Client Is Out Of Credits - With Override Support |
✔ Define Invoice Payment Due Date |
✔ List Summary Credit Billing Charges Of Any Hosting |
✔ Refund Credit Payment To Client |
✔ Use Client Credits To Pay Invoices |
- 'Fixed Pricing' Configuration:
✔ Bill Clients With Fixed Amount For Active Service Usage After X Hours |
✔ Define Number Of Hours For Service To Be Active |
✔ Automatically Apply Credits If Available In Client Balance |
✔ Add Tax To Generated Invoices |
✔ Define Invoice Payment Due Date |
✔ Define Fixed Payment Amounts In Available Currencies |
- 'Prepaid Billing' Configuration:
✔ Enable Clients To Top Up Account With Credits Available For Hosting |
✔ Define Minimum Amount Of Credits To Top Up Account |
✔ Generate Summation Every X Days |
✔ Access Summations Of Credit Usage By Client |
✔ Notify Clients Via Email About Low Credit Amount On Their Account |
✔ Automatically Suspend Account When Client Is Out Of Credits |
✔ Automatically Refill Client Credit Balance With Their WHMCS Credits |
✔ Define Invoice Payment Due Date When Topping Up Account |
- 'Recurring Billing' Configuration:
✔ Bill On Account Termination |
✔ Bill When Invoice Is Generated For Hosting |
✔ Bill On Specific Day Of Month |
✔ Bill Every X Days |
✔ Define Minimum Billing Amount |
✔ Automatically Generate Invoice |
✔ Define Invoice Payment Due Date |
✔ Automatically Apply Credits |
✔ Display Advanced Billing Information |
✔ Apply Discounts To Client Groups |
- 'Notifications' Configuration:
✔ Allow Clients To Create Multiple Resource Usage Reminders: |
✔ Define Frequency Of Resource Checks |
✔ Define Frequency Of Notifications |
✔ Define Resource Usage Limits |
✔ Define Maximum Number Of Reminders That Clients May Create |
✔ Send Email Reminders To Clients Once Limit Is Reached Or Exceeded |
✔ Choose Reminder Email Template |
- 'Usage Records' Configuration:
✔ Define Period For Counted Resource Usage |
✔ Define Resource Usage Counting Precision |
✔ Show History Of Resource Usage |
✔ Display Usage Records Pricing |
- 'Free Limit' Configuration:
✔ Use Product Configurable Options To Define Maximum Amount Of Usage Records That Will Not Be Charged |
- 'Graphs' Configuration:
✔ View Graphs In Admin And Client Area |
✔ Generate Time Graphs Of Chosen Resource Usage |
✔ Show Data For Selected Time Period |
✔ View Disk Storage Used To Archive Data |
- 'Product Auto Upgrade' Configuration:
✔ Live Upgrade/Downgrade Of Products Along With Their Configurable Options Depending On Used Resources |
✔ Admin Area: |
✔ Define Product Auto Upgrade Groups |
✔ Enable/Disable Product Auto Upgrade Groups |
✔ Create Product Auto Upgrade Options |
✔ Assign Product To Option - Configurable Options Support |
✔ Define Options Upgrade/Downgrade Rules |
✔ Set Up Minimum Upgrade/Downgrade Interval |
✔ Enable/Disable Any Product Auto Upgrade Option |
✔ Drag & Drop To Reorder Options |
✔ Define Client Area Features |
✔ View List Of Hosting Accounts Altered By Product Auto Upgrade |
✔ Access Product Auto Upgrade History Of Any Hosting |
✔ Client Area: |
✔ Enable/Disable Product Auto Upgrade And Product Auto Upgrade Options |
✔ Manage Product Auto Upgrade Option Rules |
✔ Set Up Minimum Upgrade/Downgrade Interval |
✔ View Product Auto Upgrade History Per Product |
✔ Set Up Notifications Rules |
✔ Define Minimum Notification Interval |
- Supported Modules:
✔ cPanel & cPanel Extended Integration: Hourly, Bandwidth, Storage, Databases, Addon Domains, Subdomains, Parked Domains, Domain Forwarders, FTP Accounts, Installed Applications, Email Accounts |
✔ DigitalOcean Droplets Integration: Hourly, Memory, Disk, Backups, Volumes, vCPUs, Size, Snapshots |
✔ DirectAdmin & DirectAdmin Extended Integration: Hourly, Bandwidth, Storage, Subdomains, Domain Pointers, FTP Accounts, MySQL Databases, Virtual Domains, Mailing Lists, POP Accounts, Email Forwarders, Email Autoresponders |
✔ EasyDCIM Dedicated Servers Integration: Bandwidth IN/OUT/TOTAL, 95th Percentile IN/OUT/TOTAL Bandwidth Overages |
✔ EasyDCIM Colocation Integration: Bandwidth IN/OUT/TOTAL, 95th Percentile Bandwidth IN/OUT/TOTAL Overages, Power Usage |
✔ Hetzner Cloud Servers Integration: Backups, CPU Usage, CPUs, Disk, Disk Bandwidth Read, Disk Bandwidth Write, Disk IOPS Read, Disk IOPS Write, Floating IP Addresses, Hourly, Ingoing Traffic, Memory, Network Bandwidth In, Network Bandwidth Out, Network PPS In, Network PPS Out, Outgoing Traffic, Snapshots, Volumes |
✔ OpenStack Projects Integration: CPU Time, Disk Device Read Bandwidth, Disk Device Read Requests, Disk Device Write Bandwidth, Disk Device Write Requests, (Custom) Floating IPs, Image Size, (Custom) IP Addresses, Load Balancers, Memory, Memory Usage, (Custom) Network Incoming Bytes Bandwidth, (Custom) Network Incoming Packets, (Custom) Network Outgoing Bytes Bandwidth, (Custom) Network Outgoing Packets, OS Images, Snapshot Size, Storage Volumes, VCPU Cores, Volume Size |
✔ OpenStack VPS & Cloud Integration: Hourly, vCPU Cores, Memory Usage, CPU Utilization, Incoming Bandwidth, Outgoing Bandwidth, Disk Root Used, Disk I/O Read, Disk I/O Write, Floating IP Address, Fixed IP Address, Backups Number, Load Balancers |
✔ Plesk & Plesk Extended Integration: Hourly, Subdomains, Disk Space, Email Boxes, Sites, Redirects, Mail Groups, Autoresponders, Mailing Lists, Users, Databases, Webapps, Traffic |
✔ Proxmox VE Cloud VPS Integration: Disk Usage (LXC), Disk Size, Bandwidth IN, Bandwidth OUT, Bandwidth Total, Memory Usage, Memory Size, Backups, CPU Number, CPU Usage, CPU Cores Usage, Snapshots |
✔ Proxmox VE VPS Integration: Hourly, Disk Usage (LXC), Bandwidth IN, Bandwidth OUT, Bandwidth Total, Memory Usage, Backups Usage, CPU Number, CPU Usage, CPU Cores Usage, Snapshots |
✔ Rackspace Email Extended Integration: Hourly, Mailbox Storage, Mailboxes, Sync Licenses, Blackberry Licenses, Exchange Storage, Exchange Mailboxes |
✔ SolusVM Extended Cloud Integration: Available Disk Size, Disk Usage, Available Bandwidth, Available Memory, Cores, IP Addresses, Disk Usage, Memory Usage (except KVM virtualization), Bandwidth Used |
✔ SolusVM & SolusVM Extended VPS Integration: Hourly, Disk Usage, Available Disk Size, Memory Usage (except KVM virtualization), Available Memory, Bandwidth Used, Bandwidth Total, CPU Number, Swap-Burst, IPv4, IPv6, Internal IP Addresses |
✔ SolusVM 2 VPS & Cloud & SolusVM 2.0 WHMCS Integration: Backups, CPU Units, Disk, Hourly, Images, IPv4, IPv6, Memory Usage |
✔ Virtualizor Integration: Bandwidth Usage, CPU Units, CPU Cores, CPU Usage, Disk Size, Disk Usage, RAM Size, RAM Usage, Network Speed IN, Network Speed OUT, I/O Disk Read, I/O Disk Write, IPv4 Addresses, IPv6 Addresses |
✔ Virtuozzo Hybrid Infrastructure S3 Integration: OPS Other, OPS GET, OPS PUT, OPS LIST, OPS Total and Uploaded, Downloaded, Storage |
✔ Virtuozzo Hybrid Server Integration: Templates, CPU Usage, Memory, Bandwidth IN, Bandwidth OUT, Disk Used, Backups Usage |
✔ Zimbra & Carbonio Email Integration: Hourly, Mailboxes, Email Aliases, Domain Aliases, Storage |
- General Info:
✔ Count Usage Of All Accounts Assigned To Reseller - cPanel, cPanel Extended, DirectAdmin & DirectAdmin Extended |
✔ Fast Billing Calculation Via Multithreading Cron Jobs |
✔ Multi-Currency Support |
✔ Multi-Language Support With Custom Translations Tool |
✔ Supports PHP 8.2 Back To PHP 7.4 |
✔ Supports WHMCS Themes "Six" And "Twenty-One" |
✔ Supports WHMCS V8.12 Back To WHMCS V8.9 |
✔ Requires ionCube Loader V13 Or Later |
✔ Easy Module Upgrade To Open Source Version |
Installation
In this tutorial, we will show you how to successfully install and manage Advanced Billing For WHMCS. We will guide you step by step through the whole installation and configuration process. |
1. Log in to our client area and download the module. |
2. Extract the package and upload its content into the main WHMCS directory.
The content of the package to upload should look like this. |
3. When you install Advanced Billing For WHMCS for the first time you have to rename 'license_RENAME.php' file. File is located in 'modules/addons/AdvancedBilling4/license_RENAME.php'. Rename it from 'license_RENAME.php' to 'license.php'. |
4. In order to configure your license key, you have to edit a previously renamed 'license.php' file. Enter your license key between the quotation marks as presented on the following screen. You can find your license key in our client area → 'My Products'. |
5. Now you have to activate the module in your WHMCS system. Log in to your WHMCS admin area. Click 'System Settings' , then choose 'Addon Modules'. |
6. In the next step, you need to permit access to this module. To do so, click on the 'Configure' button, tick the desired admin roles, and press 'Save Changes'. |
7. The last step is setting up a cron job. You can find it following the path: WHMCS → 'Addons' → 'Advanced Billing' → 'Settings' → 'Cron Job Settings' page. The cron can be customized with the following options:
|
Configuration and Management
Advanced Billing For WHMCS is a module that allows you to set up flexible billing models based on your client's actual usage of resources like bandwidth and CPU. Refer to the manual below to learn how to configure the module and make full use of its extensive features. |
Products
To enable Advanced Billing For WHMCS features for a product, navigate to 'Addons' → 'Advanced Billing' → 'Products' and click on the 'Add Product' button. Select your product from the dropdown list. |
Once your products are added use the action buttons to:
|
Pricing
Set pricing for each usage record for a product. The pricing list includes information on each usage record:
Click on the 'Edit' button to set up billing for a usage record. |
Under the general tab you can:
|
The pricing tab is where you set:
|
Product Configuration
The 'Settings' action will take you to the configuration window where you can adjust various features for the product. |
Product Settings
Set general product settings related to summaries, cron frequency and client area integration.
|
Module Settings
Configure product module-specific settings such as:
cPanel Extended
Proxmox VE Cloud VPS
OpenStack
and more. |
Credit Billing
Credit Billing allows your clients to be charged with their credits instead of the standard methods. Note: This function is separate from the WHMCS 'Credit Balance'. Enable the functionality with the 'Enable Credit Billing' toggle and configure the details:
|
Fixed Pricing
Fixed Billing charges clients a set amount after a specified number of hours of active service usage. This feature lets you define a fixed price per product, billed automatically once the usage threshold is reached.
|
Prepaid Billing
Prepaid Billing enables charging clients directly from their prepaid credit balance. It also provides summary billing, combining charges into a single summary instead of generating separate invoices.
|
The client area will include the summations and a way for the client to top up his credit balance. After the client indicates the amount of credits to be added to his account, an invoice will be generated for it. |
Recurring Billing
Recurring Billing automatically charges clients on a regular schedule for their products. This feature simplifies ongoing payments by setting up recurring billing cycles.
|
Notifications
Notifications allow clients to set up email reminders that are sent when their resource usage reaches or exceeds specified limits. This feature helps clients stay informed about their usage and avoid unexpected charges.
|
The predefined 'Advanced Billing Resource Usage Reminder' features variables that you can also use in your own templates:
|
Once the function is enabled, clients will see the 'Reminders' table where they can add and manage their notifications. To add a new notification click on the 'Add Reminder' button. |
Provide the following:
|
Once the reminder is added, it can be managed using the action buttons:
|
While defining the limits, you can scroll the list of resources horizontally. The fields for each include:
For example, we can set the reminder to be sent after the bandwidth is 'is more' than 20000MB, as shown on the screen below. |
Make sure to enable the reminder after the limits are defined for it. |
Usage Records
Usage Records displays clients' resource usage data and usage history directly on the product page in the client area. This feature allows clients to easily track their resource consumption over time.
|
Enabling the extension will display the current usage in the client area. Enabling the 'Records History' function will also display usage from previous periods. |
The 'Display Usage Records Pricing' will display the pricing table when clients prepare thier order. |
Free Limit
Free Limit allows you to set free usage limits for a product based on its Configurable Options.
This feature enables precise control over complimentary usage thresholds before charges apply. |
Graphs
Graphs provide a graphical display of usage records for each configured service. This feature helps visualize resource consumption trends over time. Use the 'Show Enabled Records Only' option to hide records with no pricing enabled. |
With the functionality enabled, clients will find a graph of their usage displayed in the client area. They will be able to change the graph's scope and resources displayed. |
Product Auto Upgrade
Product Auto Upgrade automatically upgrades or downgrades products based on resource usage, following the rules you set. Clients can choose whether to allow automatic adjustments and can even configure their own rules for product resizing. After enabling the function, take a look at the Product Auto Upgrade Management section to prepare the options. |
Depending on the settings, clients will be able to:
|
Items
Items with resource usage counted can be found in the 'Items' section. The 'Item List' includes current billable items, while the 'Item Archive' lists historical items that are already billed. |
Item List
You can find the 'Item List' under 'Items'. The list includes information such as:
And action button responsible for:
|
You can mark multiple items with the mass delete function when necessary as well. |
Clicking on the 'View Details' button will display the page with all the usage recorded. The page includes action buttons responsible for:
|
The 'View Graph' button will in turn display a resource usage graph for the item. You can aspects of the graph scope by clicking on the 'Edit' button. |
Select the resources and time scope you would like the graph to include. |
Item Archive
You can find the 'Item Archive' under 'Items'. It included items that are already billed. The list includes information such as:
And action button responsible for:
|
You can mark multiple items with the mass delete function when necessary as well. |
Finally, you can flush your archive, deleting items meeting the criteria set in Item Archive Configuration. |
Billing
All billing related management can be found under the 'Billing' section. This includes 'Invoices' and 'Credits'. |
Invoices
Invoices created both automatically and manually can be found here. The invoice list includes:
And action buttons responsible for:
|
You can also utilize the mass function to generate or delete multiple invoices at once. |
Invoice details consist of editable fields such as:
and every billed item with its:
|
Credits
This tab lists all credit top-ups issued by the clients with the 'Credit Billing' function. The list includes:
and an action button allowing the admin to 'Refund' the credits to WHMCS 'Credit Balance'. |
Multiple top-ups can be selected to refund them at the same time. |
Product Auto Upgrade Management
Under the 'Product auto Upgrade' you will be able to find tools to create and manage the auto upgrades based on resource usage. This section is only relevant for products with the Product Auto Upgrade function enabled. |
Configuration
Find the 'Configuration' tab under ' Product Auto Upgrade' and click on 'Add Group' to add a new group. |
As you create the group, complete the following fields:
|
Once the group is added, the action buttons will allow you to:
|
While editing the settings you will be able to change:
|
You can also change what the client is allowed to do:
|
The 'Options' action will take you to a page where you can define upgrade options within the group. To begin, click on the 'Add Option' button and name the option. |
Use the action buttons to:
|
The mass action feature can also be used to delete or change packages for multiple options at once. |
Click the 'Edit' button and define rules for both upgrades and downgrades, by selecting the 'Comparison Type' and 'Threshold' for any of the options. |
Accounts
Services or 'Accounts' that make use of the 'Product Auto Upgrade' are recorded and listed in the 'Accounts' section under 'Product Auto Upgrades'. The list includes information such as:
The 'Details' action button will display more information on a specific account. |
The details include a list of auto upgrades complete with:
|
Client Area
Depending on the option's setting, several features can be made available to the client. Assuming 'Client Rules Configuration' is enabled, clients will be able to change how their service interacts with the system by clicking on the 'Settings' icon under 'Auto Upgrade'. |
Options may include:
|
Under the 'Rules Options' tab, the client can select which rules to enable. |
Service upgrades are recorded and displayed in the 'Auto Upgrade History' table. |
Notification messages for upgrades can be set up by the user, first, click on the additional actions button. |
Enable the function and select the interval between each message. |
To add a new notification use the 'Add Notification' button. |
Select the resource, comparison and unit for the notification. |
You can add as many notifications as you would like. Action buttons allow you to edit or delete the notification. |
Settings
Cron Job Settings
The cron settings should be configured when you first set up the cron job for the module.
In depth information regarding these settings can be found in the Installation section. |
Item Archive Configuration
In this section, you can set up the item archive to your preferences. The top of the tab includes a counter that lists the total archived items and how much disk space it occupies.
|
Other
Other useful tools and features directly related to the module functioning can be found in the 'Other' section. This includes:
|
Translations
Customizing language files is now extremely easy with the "Translations" tool that is now available directly in the addon. Its user-friendly design makes managing various language file tweaks a smooth and efficient process. Prepare translations for the original English files with this handy built-in tool. For specific instructions on how to use this tool please refer to its dedicated article, you will find it here. |
Access Control
'Access Control' allows you to specify and control exactly which sections of the module can be accessed by your administrators. The way it works is that you create access control rules in which you decide if a specific admin, or admin role has full access, or is restricted to only specific sections. For more detailed information on the available modules that include this tool, please refer to the Access Control Tools Wiki Page. |
Rules
Start with creating a new rule, click on the 'Create Rule' button and a dedicated form will appear. Below you will find a description of every field required in the form. |
Fill out the following fields to create resources access rule:
Important: When picking specific sections, keep in mind that allowing a parent section will also allow all of its children. |
To edit or delete existing rules, use the icons to the right. |
Resources
Use the toggles in the 'Resources' section to specify which of them should be subject to logging, found in the 'Logs' section. Every time an administrator requests a toggled resource, it will be recorded. |
Access Control Logs
The logs section includes:
Use the trash bin icons to delete specific logs, or utilize the mass action function to delete multiple logs at once. |
Logs
The 'Logs' section under 'Other' is where the module logs are stored. You can filter the module logs by type with the 'Show' buttons:
|
You can delete logs either one by one or with the mass function. |
additional actions include:
|
In the settings you may decide:
|
While exporting you will have to specify which logs to export:
|
You may also delete specific logs without finding them manually. Simply define:
|
Tips
1. In version 4.0, the "Extensions" section has been removed, so the module license must now be placed in the "license.php" file. If upgrading from version V3.X, re-add the license to the "license.php" file and reissue it from your client area panel. |
Upgrade Guide
Seeking a solution that offers greater flexibility, customization tailored to your precise needs, and unrestricted availability? There is an option that not only proves to be cost-effective in the long run but also includes prioritized support services, making it a truly valuable investment. Opt for the Open Source version of your Advanced Billing For WHMCS module to unlock these benefits. Follow a comprehensive guide covering the transition process, the advantages it brings, and step-by-step instructions on what to do next after the order has been successfully finalized. |
Common Problems
1. When you have problems with connection, check whether your SELinux or firewall does not block ports. |
2. Cron Threads feature currently does not work for the EasyDCIM submodule. In case you have enabled Cron Threads, cron tasks for EasyDCIM submodule will be executed in a basic way. This option will be implemented in future releases of the Advanced Billing module. |
3. If you encounter metric calculation problems with OpenStack Projects products, make sure you are using version 1.9.0 or newer of OpenStack Projects, as earlier versions are not supported. |