Personal tools
Namespaces

Variants
Actions

Advanced Billing For WHMCS

From ModulesGarden Wiki
(Difference between revisions)
Jump to: navigation, search
(About Advanced Billing For WHMCS)
(Logs)
 
(69 intermediate revisions by 5 users not shown)
Line 4: Line 4:
 
=About [https://www.modulesgarden.com/products/whmcs/advanced-billing Advanced Billing For WHMCS]=
 
=About [https://www.modulesgarden.com/products/whmcs/advanced-billing Advanced Billing For WHMCS]=
 
{|
 
{|
|style="padding: 10px 0px 10px 0px;"|'''Advanced Billing For WHMCS''' allows you to set up additional billing models for your products based on the actual usage of bandwidth, CPU and other server resources.<br />
+
|style="padding: 10px 0px 10px 0px;"|'''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.<br />
The module features multi-currency support, and enables such variants as hourly billing, ticket billing, credit billing, and recurring billing, to name but a few.<br />
+
This module supports multiple currencies and offers various billing options, including hourly billing, credit billing, and recurring billing.<br/> It automatically generates invoices according to your preferred settings and at customizable intervals, sending them directly to your customers.<br/>
In addition, it will automatically generate invoices in the preferred way and at freely adjusted time intervals, then send them to your customers.<br />
+
Additionally, clients can set up email reminders to notify them when they reach or exceed specified resource usage limits.<br/>
Moreover, your clients will be allowed to create email reminders to be sent when a specified resource usage limit is reached or exceeded.<br />
+
 
Advanced Billing For WHMCS is integrated with many popular modules, including not only cPanel, Plesk and SolusVM, but also a range of ModulesGarden products.
+
Advanced Billing For WHMCS is compatible with many popular modules, including cPanel, Plesk, and SolusVM, as well as a variety of ModulesGarden products.<br/>
 +
 
 +
The Wiki page for '''Advanced Billing For WHMCS 3.x''' can be found [https://www.docs.modulesgarden.com/Advanced_Billing_3.X_For_WHMCS here].<br/>
 
|}
 
|}
<!--Comment-->
 
 
*'''Core Features:'''
 
*'''Core Features:'''
 
{|
 
{|
Line 16: Line 17:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Ticket Billing
+
|style="padding: 0px 0px 0px 30px;"|✔ Specific Resources Billing For Integrated WHMCS Modules
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Configure Billing Per Product  
+
|style="padding: 0px 0px 0px 30px;"|✔ Configure And Manage Individual Product Billing
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Manage Extensions And Configure Them Per Product
+
|style="padding: 0px 0px 0px 30px;"|✔ View List Of Current And Archived Billable Items For Next Invoices
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ View Current List Of Billable Items For Next Invoices
+
|style="padding: 0px 0px 0px 30px;"|✔ View Item Resource Usage History
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ View Resource Usage History Of Any Item
+
|style="padding: 0px 0px 0px 30px;"|✔ Manage Awaiting Invoices And Convert Them To Invoices
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Manage Awaiting Invoices And Convert Them To Invoices
+
|style="padding: 0px 0px 0px 30px;"|✔ Define Summary Calculation Method
 
|}
 
|}
 
{|
 
{|
Line 37: Line 38:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Define Whether To Store Logs In Files Or Database
+
|style="padding: 0px 0px 0px 30px;"|✔ Configure Multithreaded Cron Job Settings
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Define Number Of Days To Pass To Clear Log Records
+
|style="padding: 0px 0px 0px 30px;"|✔ Set Clearance Automation For Item Archive
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 30px;"|✔ View Logs
+
|style="padding: 0px 0px 0px 30px;"|✔ Customize Module Language Files With "Translations" Tool
 
|}
 
|}
*''''Recurring Billing' Extension Features:'''
 
 
{|
 
{|
|style="padding: 10px 0px 0px 30px;"|✔ Bill On Account Termination
+
|style="padding: 0px 0px 0px 30px;"|✔ Control Staff Access Level To Specific Resources With ACL
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Bill When Invoice Is Generated For Hosting
+
|style="padding: 0px 0px 10px 30px;"|✔ View And Manage Logs
 
|}
 
|}
 +
 +
*''''Credit Billing' Configuration:'''
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Bill Each X Day Of Month
+
|style="padding: 10px 0px 0px 30px;"|✔ Generate Invoice Every X Days
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Bill Each X Days
+
|style="padding: 0px 0px 0px 30px;"|✔ Define Minimum Amount Of Credits To Charge
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Define Minimum Billing Amount
+
|style="padding: 0px 0px 0px 30px;"|✔ Notify Clients Via Email About Low Credit Amount On Their Account
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Automatically Generate Invoice
+
|style="padding: 0px 0px 0px 30px;"|✔ Automatically Suspend Account When Client Is Out Of Credits - With Override Support
 
|}
 
|}
 
{|
 
{|
Line 68: Line 70:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Automatically Apply Credits
+
|style="padding: 0px 0px 0px 30px;"|✔ List Summary Credit Billing Charges Of Any Hosting
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Display Advanced Billing Cycle Info
+
|style="padding: 0px 0px 0px 30px;"|✔ Refund Credit Payment To Client
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 30px;"|✔ Apply Discounts To Client Groups
+
|style="padding: 0px 0px 10px 30px;"|✔ Use Client Credits To Pay Invoices
 
|}
 
|}
*''''Prepaid Billing' Extension:'''
+
*''''Fixed Pricing' Configuration:'''
 
{|
 
{|
|style="padding: 10px 0px 0px 30px;"|✔ Enable Clients To Top Up Account With Credits Available For Hosting
+
|style="padding: 10px 0px 0px 30px;"|✔ Bill Clients With Fixed Amount For Active Service Usage After X Hours
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Define Minimum Amount Of Credits To Top Up Account
+
|style="padding: 0px 0px 0px 30px;"|✔ Define Number Of Hours For Service To Be Active
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Generate Summation Each X Days
+
|style="padding: 0px 0px 0px 30px;"|✔ Automatically Apply Credits If Available In Client Balance
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Access Summations Of Credit Usage By Client
+
|style="padding: 0px 0px 0px 30px;"|✔ Add Tax To Generated Invoices
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Send Email When Client's Credit Balance Falls Below Defined Credit Amount
+
|style="padding: 0px 0px 0px 30px;"|✔ Define Invoice Payment Due Date
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Automatically Suspend Account When Client Is Out Of Credits
+
|style="padding: 0px 0px 10px 30px;"|✔ Define Fixed Payment Amounts In Available Currencies
 
|}
 
|}
 +
*''''Prepaid Billing' Configuration:'''
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Automatically Refill Client's Credit Balance With Needed Amount Using Their WHMCS Credits
+
|style="padding: 10px 0px 0px 30px;"|✔ Enable Clients To Top Up Account With Credits Available For Hosting
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 30px;"|✔ Define Invoice Payment Due Date When Topping Up Account
+
|style="padding: 0px 0px 0px 30px;"|✔ Define Minimum Amount Of Credits To Top Up Account
 
|}
 
|}
*''''Credit Billing' Extension Features:'''
 
 
{|
 
{|
|style="padding: 10px 0px 0px 30px;"|✔ Generate Invoice Each X Days
+
|style="padding: 0px 0px 0px 30px;"|✔ Generate Summation Every X Days
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Define Minimum Amount Of Credits To Charge
+
|style="padding: 0px 0px 0px 30px;"|✔ Access Summations Of Credit Usage By Client
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Send Email When Client's Credit Balance Falls Below Defined Credit Amount
+
|style="padding: 0px 0px 0px 30px;"|✔ Notify Clients Via Email About Low Credit Amount On Their Account
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Automatically Suspend Account When Client Is Out Of Credits - With Override Support
+
|style="padding: 0px 0px 0px 30px;"|✔ Automatically Suspend Account When Client Is Out Of Credits
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Define Invoice Payment Due Date
+
|style="padding: 0px 0px 0px 30px;"|✔ Automatically Refill Client Credit Balance With Their WHMCS Credits
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ List Summary Credit Billing Charges Of Any Hosting
+
|style="padding: 0px 0px 10px 30px;"|✔ Define Invoice Payment Due Date When Topping Up Account
 
|}
 
|}
 +
*''''Recurring Billing' Configuration:'''
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Refund Credit Payment To Client
+
|style="padding: 10px 0px 0px 30px;"|✔ Bill On Account Termination
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Automatically Refill Client's Credit Balance Using Their Credit Card
+
|style="padding: 0px 0px 0px 30px;"|✔ Bill When Invoice Is Generated For Hosting
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 30px;"|✔ Client Can Enable/Disable Auto Refilling And Define Single Refill Amount
+
|style="padding: 0px 0px 0px 30px;"|✔ Bill On Specific Day Of Month
 
|}
 
|}
*''''Product Auto Upgrade' Extension'''
 
 
{|
 
{|
|style="padding: 10px 0px 0px 30px;"|✔ Live Upgrade/Downgrade Of Products Along With Their Configurable Options Depending On Used Resources
+
|style="padding: 0px 0px 0px 30px;"|✔ Bill Every X Days
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Admin Area:
+
|style="padding: 0px 0px 0px 30px;"|✔ Define Minimum Billing Amount
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Define Product Auto Upgrade Groups
+
|style="padding: 0px 0px 0px 30px;"|✔ Automatically Generate Invoice
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Enable/Disable Product Auto Upgrade Groups
+
|style="padding: 0px 0px 0px 30px;"|✔ Define Invoice Payment Due Date
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Create Product Auto Upgrade Options
+
|style="padding: 0px 0px 0px 30px;"|✔ Automatically Apply Credits
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Assign Product To Option - Configurable Options Support
+
|style="padding: 0px 0px 0px 30px;"|✔ Display Advanced Billing Information
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Define Options Upgrade/Downgrade Rules
+
|style="padding: 0px 0px 10px 30px;"|✔ Apply Discounts To Client Groups
 
|}
 
|}
 +
*''''Notifications' Configuration:'''
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Set Up Minimal Upgrade/Downgrade Interval
+
|style="padding: 10px 0px 0px 30px;"|✔ Allow Clients To Create Multiple Resource Usage Reminders:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Enable/Disable Any Product Auto Upgrade Option
+
|style="padding: 0px 0px 0px 30px;"|✔ Define Frequency Of Resource Checks
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Drag & Drop To Reorder Options
+
|style="padding: 0px 0px 0px 30px;"|✔ Define Frequency Of Notifications
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Define Client Area Features
+
|style="padding: 0px 0px 0px 30px;"|✔ Define Resource Usage Limits
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ View List Of Hosting Accounts Affected By Product Auto Upgrade
+
|style="padding: 0px 0px 0px 30px;"|✔ Define Maximum Number Of Reminders That Clients May Create
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Access Product Auto Upgrade History Of Any Hosting
+
|style="padding: 0px 0px 0px 30px;"|✔ Send Email Reminders To Clients Once Limit Is Reached Or Exceeded
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Client Area:
+
|style="padding: 0px 0px 10px 30px;"|✔ Choose Reminder Email Template
 
|}
 
|}
 +
*''''Usage Records' Configuration:'''
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Enable/Disable Product Auto Upgrade And Product Auto Upgrade Options
+
|style="padding: 10px 0px 0px 30px;"|✔ Define Period For Counted Resource Usage
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Manage Product Auto Upgrade Options Rules
+
|style="padding: 0px 0px 0px 30px;"|✔ Define Resource Usage Counting Precision
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Set Up Minimal Upgrade/Downgrade Interval
+
|style="padding: 0px 0px 0px 30px;"|✔ Show History Of Resource Usage
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ View Product Auto Upgrade History Per Product
+
|style="padding: 0px 0px 10px 30px;"|✔ Display Usage Records Pricing
 
|}
 
|}
 +
*''''Free Limit' Configuration:'''
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Set Up Notifications Rules
+
|style="padding: 10px 0px 10px 30px;"|✔ Use Product Configurable Options To Define Maximum Amount Of Usage Records That Will Not Be Charged
 
|}
 
|}
 +
*''''Graphs' Configuration:'''
 
{|
 
{|
|style="padding: 0px 0px 10px 45px;"|✔ Define Minimal Notification Interval
+
|style="padding: 10px 0px 0px 30px;"|✔ View Graphs In Admin And Client Area
 
|}
 
|}
*''''Fixed Pricing' Extension:'''
 
 
{|
 
{|
|style="padding: 10px 0px 0px 30px;"|✔ Bill Clients With Fixed Amount For Active Service Usage After X Hours
+
|style="padding: 0px 0px 0px 30px;"|✔ Generate Time Graphs Of Chosen Resource Usage
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Define Number Of Hours For Service To Be Active
+
|style="padding: 0px 0px 0px 30px;"|✔ Show Data For Selected Time Period
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Toggle Credits To Be Automatically Applied If Available In Client's Balance
+
|style="padding: 0px 0px 10px 30px;"|✔ View Disk Storage Used To Archive Data
 
|}
 
|}
 +
*''''Product Auto Upgrade' Configuration:'''
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Toggle Tax To Be Added To Generated Invoices
+
|style="padding: 10px 0px 0px 30px;"|✔ Live Upgrade/Downgrade Of Products Along With Their Configurable Options Depending On Used Resources
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Define Invoice Payment Due Date
+
|style="padding: 0px 0px 0px 30px;"|✔ Admin Area:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 30px;"|✔ Define Fixed Payment Amounts In Available Currencies
+
|style="padding: 0px 0px 0px 45px;"|✔ Define Product Auto Upgrade Groups
 
|}
 
|}
*''''Notifications' Extension:'''
 
 
{|
 
{|
|style="padding: 10px 0px 0px 30px;"|✔ Allow Clients To Create Multiple Resource Usage Reminders:
+
|style="padding: 0px 0px 0px 45px;"|✔ Enable/Disable Product Auto Upgrade Groups
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Define Frequency Of Resource Checks
+
|style="padding: 0px 0px 0px 45px;"|✔ Create Product Auto Upgrade Options
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Define Frequency Of Notifications
+
|style="padding: 0px 0px 0px 45px;"|✔ Assign Product To Option - Configurable Options Support
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Define Resource Usage Limits
+
|style="padding: 0px 0px 0px 45px;"|✔ Define Options Upgrade/Downgrade Rules
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Define Maximum Number Of Reminders That Clients May Create
+
|style="padding: 0px 0px 0px 45px;"|✔ Set Up Minimum Upgrade/Downgrade Interval
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Send Email Reminders To Clients Once Limit Is Reached Or Exceeded
+
|style="padding: 0px 0px 0px 45px;"|✔ Enable/Disable Any Product Auto Upgrade Option
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 30px;"|✔ Choose Reminder Email Template
+
|style="padding: 0px 0px 0px 45px;"|✔ Drag & Drop To Reorder Options
 
|}
 
|}
*''''Resource Usage' Extension Features:'''
 
 
{|
 
{|
|style="padding: 10px 0px 0px 30px;"|✔ Define Period For Counted Resource Usage
+
|style="padding: 0px 0px 0px 45px;"|✔ Define Client Area Features
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Define Resource Usage Counting Precision
+
|style="padding: 0px 0px 0px 45px;"|✔ View List Of Hosting Accounts Altered By Product Auto Upgrade
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Show History Of Resource Usage
+
|style="padding: 0px 0px 0px 45px;"|✔ Access Product Auto Upgrade History Of Any Hosting
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 30px;"|✔ Define Number Of Usage Records Displayed Per Page
+
|style="padding: 0px 0px 0px 30px;"|✔ Client Area:
 
|}
 
|}
*''''Graphs' Extension Features:'''
 
 
{|
 
{|
|style="padding: 10px 0px 0px 30px;"|✔ View Graphs In Admin And Client Area
+
|style="padding: 0px 0px 0px 45px;"|✔ Enable/Disable Product Auto Upgrade And Product Auto Upgrade Options
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Generate Time Graphs Of Chosen Resource Usage
+
|style="padding: 0px 0px 0px 45px;"|✔ Manage Product Auto Upgrade Option Rules
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Show Data For Selected Time Period
+
|style="padding: 0px 0px 0px 45px;"|✔ Set Up Minimum Upgrade/Downgrade Interval
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ View Disk Storage Used To Archive Data
+
|style="padding: 0px 0px 0px 45px;"|✔ View Product Auto Upgrade History Per Product
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 30px;"|✔ Flush Archived Data Immediately Or After X Days
+
|style="padding: 0px 0px 0px 45px;"|✔ Set Up Notifications Rules
 
|}
 
|}
 
*''''Free Limit' Extension Features:'''
 
 
{|
 
{|
|style="padding: 10px 0px 0px 30px;"|✔ Use Product Configurable Options To Define Maximum Amount Of Usage Records That Will Not Be Charged
+
|style="padding: 0px 0px 10px 45px;"|✔ Define Minimum Notification Interval
 
|}
 
|}
 
*'''Additional Extensions:'''
 
{|
 
|style="padding: 10px 0px 10px 30px;"|✔ [https://www.modulesgarden.com/products/whmcs/proxmox-cloud-autoscaling#features Proxmox Cloud Autoscaling] - Scale Proxmox Servers Within Defined Limits On The Fly
 
|}
 
 
 
*'''Supported Modules:'''
 
*'''Supported Modules:'''
 
{|
 
{|
Line 282: Line 277:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ [https://www.modulesgarden.com/products/whmcs/easydcim-dedicated-servers EasyDCIM Dedicated Servers] Integration: Bandwidth, 95th Percentile Bandwidth Overages
+
|style="padding: 0px 0px 0px 30px;"|✔ [https://www.modulesgarden.com/products/whmcs/easydcim-dedicated-servers EasyDCIM Dedicated Servers] Integration: Bandwidth IN/OUT/TOTAL, 95th Percentile IN/OUT/TOTAL Bandwidth Overages
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ [https://www.modulesgarden.com/products/whmcs/easydcim-colocation EasyDCIM Colocation] Integration: Bandwidth, 95th Percentile Bandwidth Overages, Power Usage
+
|style="padding: 0px 0px 0px 30px;"|✔ [https://www.modulesgarden.com/products/whmcs/easydcim-colocation EasyDCIM Colocation] Integration: Bandwidth IN/OUT/TOTAL, 95th Percentile Bandwidth IN/OUT/TOTAL Overages, Power Usage
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ [https://www.modulesgarden.com/products/whmcs/hetzner-vps Hetzner VPS For WHMCS] Integration: Backups, CPU Usage, CPUs, Disk, Disk Bandwidth Read, Disk Bandwidth Write, Disk IOPS Read, Disk IOPS Write, Floating IPs, Hourly, Ingoing Traffic, Memory, Network Bandwidth In, Network Bandwidth Out,<br/> Network PPS In, Network PPS Out, Outgoing Traffic, Snapshots, Volumes  
+
|style="padding: 0px 0px 0px 30px;"|✔ [https://www.modulesgarden.com/products/whmcs/hetzner-cloud-servers 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,<br/> Network PPS In, Network PPS Out, Outgoing Traffic, Snapshots, Volumes  
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ [https://www.modulesgarden.com/products/whmcs/openstack-projects OpenStack Projects] Integration: CPU Time, Disk Device Read Bandwidth, Disk Device Read Requests, Disk Device Write Bandwidth, Disk Device Write Requests, Floating IPs, Image Size, Memory, Memory Usage, Network Incoming Bytes Bandwidth,<br/> Network Incoming Packets, Network Outgoing Bytes Bandwidth, Network Outgoing Packets, OS Images, Snapshot Size, Storage Volumes, Usage Record, VCPU Cores, Volume Size
+
|style="padding: 0px 0px 0px 30px;"|✔ [https://www.modulesgarden.com/products/whmcs/openstack-projects 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,<br/> 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
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ [https://www.modulesgarden.com/products/whmcs/openstack-vps-and-cloud 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, Fixed IP, Backups Number
+
|style="padding: 0px 0px 0px 30px;"|✔ [https://www.modulesgarden.com/products/whmcs/openstack-vps-and-cloud 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
 
|}
 
|}
 
{|
 
{|
Line 300: Line 295:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ [https://www.modulesgarden.com/products/whmcs/proxmox-cloud-vps 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
+
|style="padding: 0px 0px 0px 30px;"|✔ [https://www.modulesgarden.com/products/whmcs/proxmox-ve-cloud-vps 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
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ [https://www.modulesgarden.com/products/whmcs/proxmox-vps Proxmox VE VPS] Integration: Hourly, Disk Usage (LXC), Bandwidth IN, Bandwidth OUT, Bandwidth Total, Memory Usage, Backups Usage, CPU Number, CPU Usage
+
|style="padding: 0px 0px 0px 30px;"|✔ [https://www.modulesgarden.com/products/whmcs/proxmox-ve-vps 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
 
|}
 
|}
 
{|
 
{|
Line 312: Line 307:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ SolusVM & [http://www.modulesgarden.com/products/whmcs/solusvm-extended-vps SolusVM Extended VPS] Integration: Hourly, Disk Usage, Memory Usage (except KVM virtualization), Bandwidth Used
+
|style="padding: 0px 0px 0px 30px;"|✔ SolusVM & [https://www.modulesgarden.com/products/whmcs/solusvm-extended-vps 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
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ [https://www.modulesgarden.com/products/whmcs/solusvm-2-vps-and-cloud SolusVM 2 VPS & Cloud] & SolusVM 2.0 WHMCS Integration: Backups, CPU Units, Disk, Hourly, Images, IPv4, IPv6, Memory Usage
 
|}
 
|}
 
{|
 
{|
Line 318: Line 316:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ [https://www.modulesgarden.com/products/whmcs/virtuozzo-vps#features Virtuozzo VPS] Integration: Templates, CPU Usage, Memory, Bandwidth IN, Bandwidth OUT, Disk Used, Backups Usage
+
|style="padding: 0px 0px 0px 30px;"|✔ [https://www.modulesgarden.com/products/whmcs/virtuozzo-hybrid-infrastructure-s3 Virtuozzo Hybrid Infrastructure S3] Integration: OPS Other, OPS GET, OPS PUT, OPS LIST, OPS Total and Uploaded, Downloaded, Storage
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 30px;"|✔ [https://www.modulesgarden.com/products/whmcs/zimbra-email#features Zimbra Email] Integration: Hourly, Mailboxes, Email Aliases, Domain Aliases, Storage
+
|style="padding: 0px 0px 0px 30px;"|✔ [https://www.modulesgarden.com/products/whmcs/virtuozzo-hybrid-server Virtuozzo Hybrid Server] Integration: Templates, CPU Usage, Memory, Bandwidth IN, Bandwidth OUT, Disk Used, Backups Usage
 
|}
 
|}
*'''General Info:'''
 
 
{|
 
{|
|style="padding: 10px 0px 0px 30px;"|✔ Store Usage Records In WHMCS Or External MongoDB Database (4.0 And Higher)
+
|style="padding: 0px 0px 10px 30px;"|✔ [https://www.modulesgarden.com/products/whmcs/zimbra-and-carbonio-email Zimbra & Carbonio Email] Integration: Hourly, Mailboxes, Email Aliases, Domain Aliases, Storage
 
|}
 
|}
 +
*'''General Info:'''
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Count Usage Of All Accounts Assigned To Reseller - cPanel, [https://www.modulesgarden.com/products/whmcs/cpanel-extended#features cPanel Extended], DirectAdmin & [https://www.modulesgarden.com/products/whmcs/directadmin-extended#features DirectAdmin Extended]
+
|style="padding: 10px 0px 0px 30px;"|✔ Count Usage Of All Accounts Assigned To Reseller - cPanel, [https://www.modulesgarden.com/products/whmcs/cpanel-extended#features cPanel Extended], DirectAdmin & [https://www.modulesgarden.com/products/whmcs/directadmin-extended#features DirectAdmin Extended]
 
|}
 
|}
 
{|
 
{|
Line 337: Line 335:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Multi-Language Support
+
|style="padding: 0px 0px 0px 30px;"|✔ Multi-Language Support With Custom Translations Tool
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Supports PHP 7.2 Up To PHP 7.4
+
|style="padding: 0px 0px 0px 30px;"|✔ Supports PHP 8.2 Back To PHP 7.4
 
|}
 
|}
 
{|
 
{|
Line 346: Line 344:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Supports WHMCS V8.1 And Later
+
|style="padding: 0px 0px 0px 30px;"|✔ Supports WHMCS V8.12 Back To WHMCS V8.9
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 30px;"|✔ Easy Module Upgrade To [https://www.modulesgarden.com/products/whmcs/advanced-billing#open-source-version Open Source Version]
+
|style="padding: 0px 0px 0px 30px;"|✔ Requires ionCube Loader V13 Or Later
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 30px;"|✔ Easy [https://www.docs.modulesgarden.com/How_To_Upgrade_WHMCS_Module Module Upgrade] To [https://www.modulesgarden.com/products/whmcs/advanced-billing#open-source-version Open Source Version]
 
|}
 
|}
  
 
=Installation=
 
=Installation=
 
{|
 
{|
|style="padding: 10px 0px 0px 0px;"|'''In this tutorial we will show you how to successfully install and manage [https://www.modulesgarden.com/products/whmcs/advanced-billing Advanced Billing For WHMCS.]'''<br />
+
|style="padding: 10px 0px 0px 0px;"|'''In this tutorial, we will show you how to successfully install and manage [https://www.modulesgarden.com/products/whmcs/advanced-billing Advanced Billing For WHMCS.]'''<br />
 
We will guide you step by step through the whole installation and configuration process.
 
We will guide you step by step through the whole installation and configuration process.
 
|}
 
|}
Line 361: Line 362:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB2_1.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_1.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''2. In the downloaded file you might find one or two packages that support different PHP versions.'''<br/>
+
|style="padding: 0px 0px 15px 15px;"|'''2. Extract the package and upload its content into the main WHMCS directory.
In the most recent versions of the module, you will find only one package that supports PHP 7.2 and later.<br/> <!-- If you need a package for the previous versions of PHP, please [https://www.modulesgarden.com/support/ticket/general-support contact our support]. -->
+
The content of the package to upload should look like this.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PHP72_74.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_2.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''Previous updates of the module may contain two packages dedicated to various PHP versions.'''<br/>
+
|style="padding: 0px 0px 15px 15px;"|'''3. When you install Advanced Billing For WHMCS for the first time you have to rename '' 'license_RENAME.php' '' file.'''<br />
The first one that supports PHP 5.6 up to PHP 7.1, and the second one addressed to PHP 7.2 up to PHP 7.4.<br/>
+
File is located in '' 'modules/addons/AdvancedBilling4/license_RENAME.php'. '' Rename it from '' 'license_RENAME.php' '' to '' 'license.php'. ''
'''''Note:''' Keep in mind that PHP versions 5.6 up to 7.1 are no longer officially supported and their security issues are not fixed or released any more. Find more info [http://php.net/supported-versions.php here].''
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PHP56_74.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_2_1.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 15px;"|<!-- '' '''Important''': This situation does not affect [https://www.modulesgarden.com/products/whmcs/advanced-billing#open-source-version '''the open source version'''] of this module which can be applied to any PHP from version 5.6 and later.''<br/>''--> '''Note''': You can check the current PHP version in your WHMCS. To do so, proceed to ''' 'Utilities' → 'System' → 'PHP Info'.'''
+
|style="padding: 0px 0px 15px 15px;"|'''4. In order to configure your license key, you have to edit a previously renamed '' 'license.php' '' file.'''<br />
 +
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'. ''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''3. Extract the package and upload its content into the main WHMCS directory.
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_2_2.png]]
The content of the package to upload should look like this.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_3.png]]
+
|style="padding: 0px 0px 15px 15px;"|'''5. Now you have to activate the module in your WHMCS system.'''<br />
 +
Log in to your WHMCS admin area. Click '' 'System Settings' '', then choose '' 'Addon Modules'. ''<br />
 +
Afterward, find '' 'Advanced Billing' '' and press the '' 'Activate' '' button.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''4. Now you have to activate the module in your WHMCS system.'''<br />
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_3.png]]
Log in to your WHMCS admin area. Click '' 'Setup' '', then choose '' 'Addon Modules'. ''<br />
+
Afterwards, find '' 'Advanced Billing' '' and press the '' 'Activate' '' button.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_5.png]]
+
|style="padding: 0px 0px 15px 15px;"|'''6. In the next step, you need to permit access to this module.'''<br />
 +
To do so, click on the '' 'Configure' '' button, tick the desired admin roles, and press '' 'Save Changes'. ''<br />
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''5. In the next step you need to configure your module. To do so, press the '' 'Configure' '' button.<br/>
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_4.png]]
Select database driver for usage records:
+
*'''WHMCS Database'''
+
*'''External MongoDB Database''' ''(the module supports MongoDB in version 4.0 and higher)''<br/>
+
If you choose MongoDB, you will additionally have to provide:
+
*Hostname
+
*Database Name
+
*Username
+
*Password<br/>
+
Here, you may enable the ''Cron Threads'' option.
+
*'''Cron Threds''' - check to enable the option to speed up the cron tasks execution.
+
*'''Threads Limit''' - enter a maximum number of allowed threads run simultaneously.
+
*'''Accounts Per Thread''' - enter the number of accounts that can be included in a single thread.<br/> '''''Note 1:''' PHP extension [https://php.net/manual/en/book.pcntl.php PCNTL] must be available to be able to use this feature correctly.'' <br/> '''''Note 2:''' This feature is optional, yet it is advised to turn it on for systems with a big number of products. If turned off, cron tasks will be executed in the standard manner, that is one by one.''  <br/>
+
Next, decide if you wish to enable option to regularly clear the log records.
+
*'''Clear Logs''' - check to clear the log records automatically (run once a day).
+
*'''Clear After [days]''' - type in the number of days that must pass to clear the logs. If left empty, 365 is treated as a default number.
+
Choose the desired admin roles groups to grant access to the module and '' 'Save Changes'. ''<br/>
+
|}'''
+
{|
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB_6.png]]
+
|}
+
 
+
{|
+
|style="padding: 0px 0px 15px 15px;"|'''6. Now, proceed to the [[#Extensions|Extensions]] section to find more about configuring the license.
+
 
|}
 
|}
 
{|  
 
{|  
|style="padding: 0px 0px 20px 15px;"|'''7. The last step is setting up a cron job. You can find it following the path: WHMCS → '' 'Addons' '' → '' 'Advanced Billing' '' → '' 'Configuration' '' page. '''
+
|style="padding: 0px 0px 20px 15px;"|'''<div id="kotwica"></div>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. '''<br/>
|}
+
The cron can be customized with the following options:
{|
+
*'''Cron Memory Limit''' - limit how much memory the cron can use (in megabytes). If exceeded, the cron will restart. Leave empty or set to '' 0' '' to disable the limit.
|style="padding: 0px 0px 20px 25px;"|[[File:AB_7.png]]
+
*'''Cron Threads''' - toggle to enable cron threading.
|}
+
*'''Threads Limit''' - limit the number of threads for the above function.
{|
+
*'''Thread Accounts''' - limit the number of accounts per thread
|style="padding: 0px 0px 15px 15px;"|'''Well done, you have just successfully installed your Advanced Billing For WHMCS! '''
+
*'''Clear Logs''' - toggle to have the cron clear logs.
 +
*'''Clear After [days]''' - enter how old the logs have to be to be subject to clearing (in days). The default is 365 days.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 15px;"|'''If you used the previous version of Advanced Billing For WHMCS and you would like to migrate the data to the current version,<br/>
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB4_5.png]]
please see the [[#How To Update|How To Update]] section and follow the instructions listed there.
+
 
|}
 
|}
  
 
=Configuration and Management=
 
=Configuration and Management=
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|Now, let us learn more about the functionalities of the module. We will show you the possibilities of our product, using cPanel Extended For WHMCS as an example.<br />
+
|style="padding: 10px 0px 30px 15px;"|'''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.'''<br/>
Please note that the billing features are different in both modules, but the core functionality of Advanced Billing remains the same.<br />
+
Refer to the manual below to learn how to configure the module and make full use of its extensive features.
First, choose your module from the'' 'Enable Advanced Billing For' '' dropdown menu as shown on the screen below.<br />
+
For demonstration we have chosen '' 'cPanel Premium' '' with the cPanel Extended module.
+
 
|}
 
|}
 +
==Products==
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:AB_8.png]]
+
|style="padding: 10px 0px 20px 15px;"|To enable Advanced Billing For WHMCS features for a product, navigate to '' 'Addons' '' → '' 'Advanced Billing' '' → '' 'Products' '' and click on the '' 'Add Product' '' button.<br/>
 +
Select your product from the dropdown list.
 
|}
 
|}
==Core==
 
 
{|
 
{|
|style="padding: 10px 0px 30px 15px;"|Our module core has been designed in such a way so as to allow the collection of records and invoices management.<br />
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_6.png]]
Any extra features are handled by extensions which can be easily enabled/disabled, and are always configured per product.
+
 
|}
 
|}
===Product List===
 
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|On the Products List you can find all products which have Advanced Billing enabled.<br/>
+
|style="padding: 0px 0px 15px 15px;"|Once your products are added use the action buttons to:
If the product's submodule is not supported, the '' 'default' '' mode will be used instead. It enables you to bill your client only for an hourly usage of the product.<br />
+
*'''Set Pricing'''
Apart from the products and their submodules, the '' 'Products List' '' contains also the following options:
+
*'''Configure Settings'''
*Control the status of your product billing, enable/disable Advanced Billing for a product
+
*'''Show Related Items'''
*Manage cron frequency
+
*'''Delete Product from the List'''
*Use action buttons:
+
**Pricing
+
**Settings
+
**View Items
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:AB_9.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB4_7.png]]
 
|}
 
|}
====Settings====
+
===Pricing===
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|Clicking on the '' 'Settings' '' button will allow you to see the '' 'Module Settings' '' only for cPanel/cPanel Extended modules and other enabled extensions. We will discuss them later.<br />
+
|style="padding: 10px 0px 15px 15px;"|Set pricing for each usage record for a product.<br/>
 +
The pricing list includes information on each usage record:
 +
*'''Name'''
 +
*'''Unit'''
 +
*'''Billing Status'''
 +
*'''Extended Pricing'''
 +
Click on the '' 'Edit' '' button to set up billing for a usage record.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 25px;"|[[File:AB_10_1.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_8.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Here you can set both Application Manager (Softaculous/Installatron) and cPanel theme.<br />
+
|style="padding: 0px 0px 15px 15px;"|Under the general tab you can:
Simply enter a theme name as shown on the screen below.
+
*'''Enable or Disable Billing for the Record'''
 +
*'''Select Billing Type'''
 +
**Last - calculates the total based on the most recent reading only.
 +
**Summary - sums all collected records and bills based on the cumulative amount.
 +
**Hourly - averages hourly readings and bills according to that average.
 +
*'''Select Unit'''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:AB_10.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_9.png]]
 
|}
 
|}
 
====Used Resource Pricing====
 
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|Moving to the '' 'Pricing' '' section will allow you to set up billing for a specific server resource usage like bandwidth.<br />
+
|style="padding: 0px 0px 15px 15px;"|The pricing tab is where you set:
 +
*'''Price''' - the value per unit that clients will be billed with.
 +
*'''Free Usage Amount''' - the number of set units that, when exceeded, will enable billing.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_11.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB4_10.png]]
 
|}
 
|}
{|
 
|style="padding: 0px 0px 15px 15px;"|Manage each usage record by setting up its:
 
*'''[[#Free_Limit|Free Limit]]''' - used to set the amount of usage records for which a customer will not be charged.<br />
 
In our case, as you can see on the screen below, a customer will not be charged for 1GB (1024MB) bandwidth.<br /> '''''Note:''' Free limits can be also set up based on the product configurable options, read more about the dedicated [[#Free_Limit|extension]].''
 
*'''Price''' - defines how much your client will have to pay for a specific resource. Note that we provide two types of charging: units per hour and units used since the last cron run.<br />
 
For example, users pay for a quantity of subdomains each hour, but when the traffic is generated, bandwidth used since the last cron run will have to be paid once only.<br />
 
*'''Display Unit''' - defines the manner in which the record usage will be displayed. It does not affect free limit and pricing - they are calculated in a basic unit.<br />
 
If you select the '' 'GB' '' option, free limit will be still 1024 MB, and the price will be MB/hr, '''not''' GB/hr.<br />
 
*'''Status''' - allows you to enable/disable billing for this resource.<br />
 
To proceed, choose your usage records, units, statuses, set up the prices and free limits. Afterwards, press '' 'Save'. ''<br/>
 
  
'''''Important:''' Remember to set up the pricing rules in every currency that you offer the product in.'' 
+
===Product Configuration===
|}
+
{|
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB_11_1.png]]
+
|}
+
 
{|
 
{|
|style="padding: 0px 0px 30px 15px;"|As you probably noticed, there is also the '' 'Configure' '' column to the right.<br />
+
|style="padding: 10px 0px 10px 15px;"|The '' 'Settings' '' action will take you to the configuration window where you can adjust various features for the product.
It allows you to set up different free limits and pricing depending on the resource origin.<br />
+
Currently, only '' 'Viruozzo' '' and '' 'Openstack VPS & Cloud' '' submodules support this feature.
+
 
|}
 
|}
  
===Items===
+
====Product Settings====
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|To view the counted resource usage, go to the '' 'Items' '' tab.<br />
+
|style="padding: 10px 0px 15px 15px;"|Set general product settings related to summaries, cron frequency and client area integration.
Each cron run will create an item for each customer (if it does not exist at the moment) and add new records to the existing ones.<br />
+
*'''Cron Frequency''' - define how often the cron will run for the product. Use seconds as the unit.
In this way you can see the resource usage of the current server for the last billing period.<br />
+
*'''Summary Calculation Method''' - choose how summaries are calculated:
Automatic generation of invoices is based precisely on the previously created items.<br />
+
**Total Sum
To view more details, click on '' 'View Details' '' as shown on the following screen.<br />
+
**Total Average (Hourly only)
You can also easily remove billing for a specific hosting. To do so, press '' 'Delete Records' '' in the '' 'Actions' '' column.
+
*'''Client Area Integration''' - toggle to enable client area integration for the product, this option does not add features on its own but is a requisite for other functions to be displayed in the client area.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_13.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB4_11.png]]
 
|}
 
|}
 +
 +
====Module Settings====
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"| This section will show you some more detailed information on Bandwidth, Storage, Domains and other enabled records.<br/>
+
|style="padding: 10px 0px 15px 15px;"|Configure product module-specific settings such as:
See the price and usage, the last cron run date and the total records summary.<br/>
+
'''cPanel Extended'''
Press the '' 'Delete' '' button to remove entries.
+
*Application Manager
 +
*cPanel Theme
 +
'''Proxmox VE Cloud VPS'''
 +
*Free IPv4 Addresses
 +
*Free IPv6 Addresses
 +
'''OpenStack'''
 +
*OpenStack Timezone
 +
*Local Timezone
 +
and more.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_14.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB4_12.png]]
 
|}
 
|}
  
===Invoices===
+
====Credit Billing====
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|In the '' 'Invoices' '' section you can manage all of your awaiting invoices. They can be generated both automatically and manually.<br />
+
|style="padding: 10px 0px 15px 15px;"|Credit Billing allows your clients to be charged with their credits instead of the standard methods.<br/>'''''Note:''' This function is separate from the WHMCS 'Credit Balance'.''<br/>
On the screen below you can see a previously generated invoice for our cPanel Extended account.<br />
+
Enable the functionality with the '' 'Enable Credit Billing' '' toggle and configure the details:
To view more detailed information about a particular invoice, press the '' 'Show Details' '' button.
+
*'''Create Invoice Every''' - dictates how often invoices are generated for the product.
 +
*'''Minimum Credit''' - the minimum amount that will be charged from the client account credit balance.
 +
*'''Low Credit Notification''' -  if this value is higher than the credits on the client's account, an email will be sent to your client regarding the low credit amount.
 +
*'''Email Interval''' -  defines how often low credit notification email will be sent, the interval refers to the number of days.
 +
*'''Autosuspend''' - when the credit balance reaches 0, the product ordered by the client is automatically suspended and an invoice reminding of the lacking amount will be generated.<br />'' '''Note:''' This function also takes account of the '[https://docs.whmcs.com/Products_Management#Overide_Auto_Suspension 'Override Auto-Suspend'] feature.''
 +
*'''Due Date''' - determines how many days after the invoice is generated the payment is due.
 +
*'''Use Client Credits''' - if enabled, the invoices can be paid with the client credits. If disabled, the default payment method will be used.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_17.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB4_13.png]]
 
|}
 
|}
 +
 +
====Fixed Pricing====
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Here you can verify and modify your awaiting invoices. To avoid any risks, you should double check that all your invoices have been generated correctly.<br />
+
|style="padding: 10px 0px 15px 15px;"|Fixed Billing charges clients a set amount after a specified number of hours of active service usage.<br/> This feature lets you define a fixed price per product, billed automatically once the usage threshold is reached.
 +
*'''Auto Apply Credits''' - enable to automatically apply user credits if available.
 +
*'''Tax''' - if enabled, the tax will be added to the created invoice.
 +
*'''Hours''' - define a number of hours that must pass before the service is billed at a monthly rate.
 +
*'''Due Date''' - define payment due date.
 +
*'''Currency''' - set the pricing amount in any currency to bill clients after a declared number of hours has passed.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_18.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB4_14.png]]
 
|}
 
|}
 +
 +
====Prepaid Billing====
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Now, let us manually generate a sample invoice for your customer.<br />
+
|style="padding: 10px 0px 15px 15px;"|Prepaid Billing enables charging clients directly from their prepaid credit balance.<br/> It also provides summary billing, combining charges into a single summary instead of generating separate invoices.
For this purpose, simply click on '' 'Generate' '' next to the chosen invoice.
+
*'''Summation Interval (Days)''' - define how often summations should be generated.
 +
*'''Minimum Credit''' - determine the minimum amount that will be charged from the client's account.
 +
*'''Low Credit Notification''' - define the credit balance low point when an email notification will be sent.
 +
*'''Email Interval''' - set interval for email notifications, measured in days.
 +
*'''Autosuspend''' - suspend the account automatically if the user does not have sufficient funds.
 +
*'''Due Date''' - number of days between the invoice being generated and due date.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_18_1.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_15.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 15px;"|After changing the product's package, the invoice will be automatically generated for an old package.
+
|style="padding: 0px 0px 15px 15px;"|The client area will include the summations and a way for the client to top up his credit balance.<br/>
 +
After the client indicates the amount of credits to be added to his account, an invoice will be generated for it.<br/>
 +
Only after the invoice is paid, will the client receive the credits.
 
|}
 
|}
 
===Settings===
 
 
{|
 
{|
|style="padding: 10px 0px 30px 15px;"|In the '' 'Settings' '' tab you can find pages such as '' 'Logs', 'Integration' '' and '' 'Extensions'. ''
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB4_13_1.png]]
 
|}
 
|}
  
====Integration Code====
+
====Recurring Billing====
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|The '' 'Integration' '' page contains codes required to integrate Advanced Billing For WHMCS with your client area.<br />
+
|style="padding: 10px 0px 15px 15px;"|Recurring Billing automatically charges clients on a regular schedule for their products.<br/> This feature simplifies ongoing payments by setting up recurring billing cycles.
The first code allows you to display product pricing while placing an order. <br /><br />
+
*'''Invoice on Termination''' - when the account connected with your module is terminated, an invoice for the account will be generated.
'' '''Note:''' The integration code path may vary depending on the order template you use.''
+
*'''Billing Type''' - enables you to choose how to bill your client.
 +
**'''Bill On Invoice Generated''' - new items will appear on the renewal invoice for the hosting account just as it is generated by WHMCS.
 +
**'''Bill On Specific Day''' - generates invoices each month on the day specified in the 'Billing Type Value'.
 +
**'''Bill Every X Days''' - generates an invoice each X days where X is the number specified in the 'Billing Type Value' field.
 +
*'''Due Date''' - the number of days in which your customers will have to pay the invoice.
 +
*'''Auto Generate Invoice''' - if enabled, the invoices are automatically generated and sent directly to your customers.
 +
*'''Auto Apply Credits''' - automatically applies any available credits when an invoice is created. Works only if the 'Auto Generate Invoice' option is enabled.
 +
*'''Show Advanced Billing Information''' - this will replace any 'Billing Cycle' with 'Hourly Billing' on the product management page in the client area.
 +
*'''Apply Group Discount''' - enable if you want to apply the discount to the invoice set in the [https://docs.whmcs.com/Client_Groups client group].
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_21.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB4_16.png]]
 
|}
 
|}
 +
 +
====Notifications====
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|If the code has been typed in correctly, the sample order should look like this: 
+
|style="padding: 10px 0px 15px 15px;"|Notifications allow clients to set up email reminders that are sent when their resource usage reaches or exceeds specified limits.<br/> This feature helps clients stay informed about their usage and avoid unexpected charges.
 +
*'''Reminder Limit''' - limit how many reminders a client can create.
 +
*'''Email Template''' - email template that will be used.<br/>
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_21_1.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_17.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|The second integration code is responsible for displaying usage records in the client area. <br />
+
|style="padding: 0px 0px 15px 15px;"|The predefined '' 'Advanced Billing Resource Usage Reminder' '' features variables that you can also use in your own templates:
'' '''Note:''' To display usage records in the client area, you need to enable '[https://www.docs.modulesgarden.com/Advanced_Billing_For_WHMCS#Usage_Records Usage Records]' or '[https://www.docs.modulesgarden.com/Advanced_Billing_For_WHMCS#Notifications Notifications]' extension for the product.''
+
*'''{$reminder_name}''' - the name of a reminder set by a client.
 +
*'''{$type}''' -  the resource type for which the limit has been set by a client. E. g. '' 'Storage' '', '' 'Bandwidth' '' etc.
 +
*'''{$usage}''' - the current recorded usage value of the resource type the limit is set for.
 +
*'''{$limit}''' - the limit value defined by a client whose reaching or exceeding results in sending the notification.
 +
*'''{$unit}''' - the unit of the billed record. E.g. '' 'MB' '', '' 'GB' '' etc.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_22.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_17_2.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|If the code has been typed in correctly, the sample resource usage should display like this:
+
|style="padding: 0px 0px 15px 15px;"|Once the function is enabled, clients will see the '' 'Reminders' '' table where they can add and manage their notifications.<br/>
 +
To add a new notification click on the '' 'Add Reminder' '' button.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:AB_23.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_17_1.png]]
 
|}
 
|}
 
====Items Archive====
 
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|On this page, you can find information regarding the archived usage records. Once a client has paid for the used resources, the usage history will be automatically moved to the archive.  
+
|style="padding: 0px 0px 15px 15px;"|Provide the following:
There is a number of archived items along with the space they take up on the disk.
+
*'''Name''' - name your reminder, it is used in the default notification template.
 +
*'''Checks Frequency''' - how often a resource check is performed, in hours.
 +
*'''Reminders Frequency''' - limits how often a reminder can be sent, in hours.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_23_1.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_17_3.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|Use the '' 'Flush' '' option to clear the archive and remove all stored data. You can also set the time interval to indicate the number of days after which the archive will be cleaned automatically.
+
|style="padding: 0px 0px 15px 15px;"|Once the reminder is added, it can be managed using the action buttons:
 +
*'''Edit Reminder'''
 +
*'''Define Limits'''
 +
*'''Delete'''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:AB_23_2.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_17_4.png]]
 
|}
 
|}
 
====Logs====
 
{|
 
|style="padding: 10px 0px 15px 15px;"|On the '' 'Logs' '' page you will find information about the module's activity.<br/>
 
You can view logs in the form of a '' 'Database' '' or a '' 'File' ''. You can select it in the place marked on the screen below.
 
|}
 
{|
 
|style="padding: 0px 0px 20px 25px;"|[[File:AB_19_1.png]]
 
|}
 
{|
 
|style="padding: 0px 0px 20px 15px;"|Here you will see different types of logs including informative logs, error logs and critical logs.<br />
 
New log files are created every day to help you always find the information you are interested in.<br/>
 
|}
 
{|
 
|style="padding: 0px 0px 30px 25px;"|[[File:AB_19.png]]
 
|}
 
 
==Extensions==
 
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|In this section, we will describe each extension step by step.<br />
+
|style="padding: 0px 0px 15px 15px;"|While defining the limits, you can scroll the list of resources horizontally.<br/> The fields for each include:
'''Important:''' Only five of them are included in Advanced Billing For WHMCS. You can enable each one of them after moving to the '' 'Settings' → 'Extensions' '' section.<br/> You can see all six extensions on the screen below. The rest of the extensions listed there can be obtained separately.<br />
+
*'''Used''' - current recorded usage of the given resource.
The five default extensions in Advanced Billing For WHMCS include '' 'Recurring Billing', 'Usage Records', 'Credit Billing', 'Graphs' and '' 'Notifications' ''.<br />
+
*'''Operator''' - logical operator used for the argument.
'' '''Note:''' Do not mistake Recurring Billing extension for Advanced Billing with the [https://www.modulesgarden.com/products/whmcs/recurring-contract-billing Recurring Contract Billing For WHMCS] module.<br/><br/>
+
*'''Value''' - the value for the logical operation.
Each extension can be configured per product, thus allowing you to use different sets of extensions according to your needs.<br />
+
For example, we can set the reminder to be sent after the bandwidth is '' 'is more' '' than 20000MB, as shown on the screen below.
To start using an extension, you need to first activate it. To do that, go to '' 'Settings' '' → '' 'Extensions' '' page.<br />
+
Afterwards, '' 'enable' '' the extension you wish to use, and new options will appear in Advanced Billing For WHMCS.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_24.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_17_5.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|If you skip the steps 3-4 from the installation instruction, you have to configure the license for each of the 4 base extensions.<br />
+
|style="padding: 0px 0px 20px 15px;"|Make sure to enable the reminder after the limits are defined for it.
Note that each of them uses the Advanced Billing license key.<br />
+
Press '' 'Configure', '' paste your license key and confirm changes.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:AB_25.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB4_17_6.png]]
 
|}
 
|}
  
===Usage Records===
+
====Usage Records====
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|This extension displays usage records and usage records history in the client area products page.<br />
+
|style="padding: 10px 0px 15px 15px;"|Usage Records displays clients' resource usage data and usage history directly on the product page in the client area.<br/> This feature allows clients to easily track their resource consumption over time.
To use it, you need to of course first enable it, and then place an integration code.<br />
+
*'''Display Summary From''' - defines the period for which usage records will be counted.
This extension can be configured per product. To do so, proceed to the product configuration in Advanced Billing.<br />
+
As you can see, a new tab is available.
+
*'''Enable''' - enables the display of usage records for that product in the client area.
+
*'''Display Summary From''' - defines the period from which usage records will be counted.
+
 
*'''Usage Records Precision''' - the number of decimal digits indicating the precision of usage records.
 
*'''Usage Records Precision''' - the number of decimal digits indicating the precision of usage records.
 
*'''Records History''' - displays history of usage records.
 
*'''Records History''' - displays history of usage records.
*'''Usage Records Per Page''' - defines how many usage records should be displayed per page.
+
*'''Display Usage Records Pricing''' - displays usage record pricing for the product during the order process.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_30.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_18.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|For example, the client area with the DirectAdmin Extended product will look like this:
+
|style="padding: 0px 0px 15px 15px;"|Enabling the extension will display the current usage in the client area.<br/> Enabling the '' 'Records History' '' function will also display usage from previous periods.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_23.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_18_2.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|As another example, have a look at the client area for the OpenStack Projects product.  
+
|style="padding: 0px 0px 20px 15px;"|The '' 'Display Usage Records Pricing' '' will display the pricing table when clients prepare thier order.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:AB_23_3.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB4_18_1.png]]
 
|}
 
|}
  
===Credit Billing===
+
====Free Limit====
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|'' 'Credit Billing' '' extension allows you to charge your clients for a product from the client credit balance.<br/>
+
|style="padding: 10px 0px 15px 15px;"|Free Limit allows you to set free usage limits for a product based on its Configurable Options.
To enable this option for a single product, click on the '' 'Settings' '' button next to the chosen product. If the extension is enabled, a new tab will appear.
+
This feature enables precise control over complimentary usage thresholds before charges apply.<br/>
 +
After enabling the feature with the '' 'Enable Free Limit' '' toggle, select the configurable options responsible for the resources below.<br/>
 +
The configurable option has to be created for the product first. The configurable option value represents the resource in units selected under '' 'Products' '' → '' 'Pricing'.''<br/>
 +
Leave fields empty, to not enable the free limit on selected resources.  
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_27_1.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB4_19.png]]
|}
+
{|
+
|style="padding: 0px 0px 30px 15px;"|
+
*'''Enable Credit Billing''' - this option enables/disables credit billing for this module (if credit billing is enabled, standard billing will be turned off).<br />
+
*'''Create Invoices Each''' - this option defines how often an invoice will be generated for this product (30 days is a default value).<br />
+
*'''Minimum Credit''' - minimum amount that will be charged from the client account credit balance.<br />
+
*'''Low Credit Notification''' - if this value is higher than credits on the client's account, an email to your client about low credit amount will be sent.<br />
+
*'''Email Interval''' - defines how often low credit notification email will be sent, the interval refers to the number of days.<br />
+
*'''Autosuspend''' - when credit balance reaches 0, the product ordered by the client is automatically suspended and an invoice reminding of the lacking amount will be generated.<br />'' '''Note:''' This function also takes account of the '[https://docs.whmcs.com/Products_Management#Overide_Auto_Suspension 'Override Auto-Suspend'] feature.''
+
*'''Due Date''' - the number of days when your customers have to pay for the invoice.<br />
+
*'''Credit Autorefill''' - if enabled, client's credit balance may be refilled from his credit card each time it became empty.<br />
+
*'''Gateway''' - gateway used to charge client's credit card if autorefill is enabled.<br />
+
*'''Minimum Amount''' - minimum amount to charge from client's CC.<br />
+
*'''Maximum Amount''' - maximum amount to charge from client's CC.<br />'' '''Note:''' Clients can [https://www.docs.modulesgarden.com/images/b/b1/AB_27_2.png define] if they wish to use autorefill functionality as well as choose amount to refill in a single run.''
+
|}
+
{|
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB_27.png]]
+
|}
+
{|
+
|style="padding: 0px 0px 30px 15px;"|When the option '' 'Autosuspend' '' is enabled and your client's credit balance reaches 0, the client's product will be suspended. Additionally, an invoice reminding of the lacking amount will be generated.<br />
+
If it is disabled and the credit balance reaches 0, the client's product will not be suspended and invoice will be generated according to the number of days set in the '' 'Create Invoices Each' '' field.
+
|}
+
====Credits====
+
{|
+
|style="padding: 10px 0px 15px 15px;"|All information related to the credit payment for hosting can be found in the '' 'Credits' '' tab that will appear in your menu when enabled.<br/>
+
As you can see, there are two columns with credits.<br />
+
The first one, '' 'Internal Credit' '' contains credits which were not used for payment, but are reserved for it. It was created to increase the accuracy of credit billing.<br />
+
The second column, '' 'Already Paid For Hosting' '' contains a summary of the credit payment for hosting.<br />
+
You can order a refund of any hosting by pressing the '' 'Refund' '' button next to the hosting service. The client will receive a sum of '' 'Internal Credit' '' and '' 'Already Paid For Hosting' '' rounded down to 0.01.
+
|}
+
{|
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB_28.png]]
+
 
|}
 
|}
  
===Prepaid Billing===
+
====Graphs====
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|This extension allows you to charge clients for their products from their prepaid credit balance as well as create summations instead of generating invoices.<br />
+
|style="padding: 10px 0px 15px 15px;"|Graphs provide a graphical display of usage records for each configured service.<br/> This feature helps visualize resource consumption trends over time.<br/> Use the '' 'Show Enabled Records Only' '' option to hide records with no pricing enabled.
 
+
*'''Enable Prepaid Billing''' - check to enable this billing type (remember that Fixed Pricing, Recurring Billing, Credit Billing, and Prepaid Billing extensions cannot be enabled simultaneously)<br />
+
*'''Create Summation Every''' - define how often summations should be generated.<br />
+
*'''Minimum Credit''' - determine the minimum amount that will be charged from the client's account.<br />
+
*'''Low Credit Notification''' - send email notifications about the low credit amount in the account.<br />
+
*'''Email Interval''' - set a number of days interval for email notifications.<br />
+
*'''Autosuspend''' - suspend the account automatically if the user does not have sufficient funds.<br />  
+
*'''Due Date''' - the number of days in which your customers will have to pay the invoice.<br />
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:AB_29_1.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_20.png]]
 
|}
 
|}
 
===Recurring Billing===
 
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|This extension allows you to set up recurring billing for your product.<br />
+
|style="padding: 0px 0px 15px 15px;"|With the functionality enabled, clients will find a graph of their usage displayed in the client area.<br/>
 
+
They will be able to change the graph's scope and resources displayed.
*'''Enable Recurring Billing''' - check to enable this billing type (remember that Recurring Billing and Credit Billing cannot be both enabled at the same time)<br />
+
*'''Bill On Termination''' - when the account connected with your module is terminated, an invoice for the account will be generated.<br />
+
*'''Billing Type''' - enables you to choose how to bill your client.<br />
+
**'''Bill On Invoice Generation''' - customers will receive an invoice at the same time as the invoice for their hosting account.<br />
+
**'''Bill On Specific Day''' - generates invoices each month on the day specified in the '''Billing Type Value'''.<br />
+
**'''Bill Each X Days''' - as the very name suggests, generates an invoice each X days where X is the number specified in the '''Billing Type Value''' field.<br />
+
*'''Due Date''' - the number of days in which your customers will have to pay the invoice.<br />
+
*'''Auto Generate Invoice''' - if enabled, the invoices are automatically generated and sent directly to your customers.<br />
+
*'''Auto Apply Credits''' - automatically applies any available credits when an invoice is created. Works only if the '' 'Autogenerate Invoice' '' option is enabled.
+
*'''Advanced Billing Cycle Info''' - if enabled the billing cycle information in client area product view will be replaced to '' '[https://www.docs.modulesgarden.com/images/d/df/AB_29_2.png Hourly Billing]' ''.
+
*'''Apply Group Discount''' - enable if you want to apply the discount to the invoice set in the [https://docs.whmcs.com/Client_Groups client group].
+
 
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:AB_29.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB4_20_1.png]]
 
|}
 
|}
  
===Fixed Pricing===
+
====Product Auto Upgrade====
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|Use the '' 'Fixed Pricicng' '' extension to bill your customers after a specified number of hours of active service usage. Set a defined amount that will be billed per product.  
+
|style="padding: 10px 0px 15px 15px;"|Product Auto Upgrade automatically upgrades or downgrades products based on resource usage, following the rules you set.<br/> Clients can choose whether to allow automatic adjustments and can even configure their own rules for product resizing.<br/>
 +
After enabling the function, take a look at the [[#Product_Auto_Upgrade_Management| Product Auto Upgrade Management]] section to prepare the options.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_56.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_21.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|First of all, enable the extension for a single product. Keep in mind that '' 'Fixed Pricing' '' cannot be enabled together with '' 'Credit Billing' '' and '' 'Recurring Billing' '' extensions.<br/>
+
|style="padding: 0px 0px 15px 15px;"|Depending on the settings, clients will be able to:
*'''Auto Apply Credits''' - enable to automatically apply credits if there are any available in the client's credit balance.
+
*Enable/disable automatic upgrades for their product.
*'''Tax''' - if enabled, tax will be added to the created invoice.
+
*Set a minimum time interval that has to pass between upgrades.
*'''Hours''' - define a number of hours that must pass before the service is billed at a monthly rate.
+
*Include/exclude certain upgrade options.
*'''Due Date''' - define payment due date.
+
*See and/or change upgrade conditions.
*'''USD or any available currency''' - set the pricing amount in any currency to bill clients after a declared number of hours has passed.
+
*See their upgrade history.
In case the defined in '' 'Settings' ''hour treshold is not reached, the client will be billed for generated usage in a standard manner.  
+
*Set upgrade notifications based on resource usage.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:AB_57.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB4_21_1.png]]
 
|}
 
|}
  
===Free Limit===
+
==Items==
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|Enable the '' 'Free Limit' '' extension to allow defining such limits with the means of the product configurable options.
+
|style="padding: 10px 0px 10px 15px;"|Items with resource usage counted can be found in the '' 'Items' '' section.<br/>
 +
The '' 'Item List' '' includes current billable items, while the '' 'Item Archive' '' lists historical items that are already billed.  
 
|}
 
|}
 +
===Item List===
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_57_1.png]]
+
|style="padding: 10px 0px 15px 15px;"|You can find the '' 'Item List' '' under '' 'Items'.''<br/>
 +
The list includes information such as:
 +
*'''Item ID'''
 +
*'''Hosting Name'''
 +
*'''Client Name'''
 +
*'''Total Amount'''
 +
*'''Last update'''
 +
And action button responsible for:
 +
*'''Viewing details'''
 +
*'''Viewing the graph'''
 +
*'''Deleting the item from the list'''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|How to set up free limit per single configurable option:<br/>
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_22.png]]
1. Open file json file located in: ''modules/addons/AdvancedBilling/config/configurable-free-limits.json'' and find:
+
  {
+
      "configOptionName": "resourceName"
+
  }
+
 
+
2. Check your available configurable options for the product you are going to set up the free limits at: '' 'System Settings' → 'Configurable options' → e.g.: 'Configurable options for cPenel Extended product' ''<br/>
+
 
+
3. Find the appropriate section with the desired product details on wiki in the [[#Measurement_Units|Measurement Units]] section.<br/> Use data after '' 'Resource name' '' marked in bold. For example:
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_57_2.png]]
+
|style="padding: 0px 0px 20px 15px;"|You can mark multiple items with the mass delete function when necessary as well.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 15px;"|4. Based on the available CO and the resource name, you can now set up for cPanel, for example: <br/>
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_23.png]]
  {
+
      "MyStorageLimit": "storage",
+
      "databases": "databases",
+
      "FTP Accounts": "ftp_accounts",
+
      "dropdownlimit": "email_forwarders"
+
  }
+
 
+
5. Now, provided the '' 'Free Limit' '' extension has been enabled in Advanced Billing addon and the single configurable options values are numerical, these configurable options' values will be now considered as free limits.  
+
 
|}
 
|}
 
===Graphs===
 
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|Enable the '' 'Graphs' '' extension to gain access to the graphical display of usage records for every configured service in your Advanced Billing module.
+
|style="padding: 0px 0px 15px 15px;"|Clicking on the '' 'View Details' '' button will display the page with all the usage recorded.<br/>
 +
The page includes action buttons responsible for:
 +
*'''Deleting the item'''
 +
*'''Generating an invoice for the item'''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_42.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_24.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|When enabled, a new entry in your navigation menu appears → '' 'Graphs'. ''
+
|style="padding: 0px 0px 15px 15px;"|The '' 'View Graph' '' button will in turn display a resource usage graph for the item.<br/> You can aspects of the graph scope by clicking on the '' 'Edit' '' button.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_43.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_25.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Please note that before proceeding, you must also enable the '' 'Graphs' '' extension for the product. To do so, move to '' 'Configuration' → 'Products List' → 'Settings' → 'Graphs'. ''<br/> Enable the extension and save the changes.  
+
|style="padding: 0px 0px 20px 15px;"|Select the resources and time scope you would like the graph to include.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_43_1.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB4_26.png]]
 
|}
 
|}
 +
 +
===Item Archive===
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|In the '' 'Graphs' ''section you will find an extended list of all services in your system.<br/> Press the '' 'Show Graph' '' button and you will be moved to the generated line chart.
+
|style="padding: 10px 0px 15px 15px;"|You can find the '' 'Item Archive' '' under '' 'Items'.''<br/> It included items that are already billed.<br/>
 +
The list includes information such as:
 +
*'''Item ID'''
 +
*'''Hosting Name'''
 +
*'''Client Name'''
 +
And action button responsible for:
 +
*'''Viewing details'''
 +
*'''Deleting the item from the list'''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_44.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_27.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|You will immediately see a line chart generated for a default resource usage and time period.<br/> You may change the requirements at any time to see a customized version of the graph with data that you actually need, and the time period you desire.<br/> Use options located to the left of the graph to personalize the chart statistics.
+
|style="padding: 0px 0px 20px 15px;"|You can mark multiple items with the mass delete function when necessary as well.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_45.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_28.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Line charts can be displayed not only by administrators in their panel but the clients as well.<br/> Find '' 'Resource Usage Chart' '' in the product's details to preview the generated graph.<br/>Clients, just like admins in the admin area may specify the time range and select resources which they wish to see in the graphical mode.
+
|style="padding: 0px 0px 20px 15px;"|Finally, you can flush your archive, deleting items meeting the criteria set in [[#Item_Archive_Configuration|Item Archive Configuration]].
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:AB_46.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB4_28_1.png]]
 
|}
 
|}
  
===Notifications===
+
==Billing==
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|Enable the '' 'Notifications' '' extension to allow your clients to set email reminders that will be sent when a specified resource usage limit is reached or exceeded.
+
|style="padding: 10px 0px 10px 15px;"|All billing related management can be found under the '' 'Billing' '' section.<br/>
 +
This includes '' 'Invoices' '' and '' 'Credits'.''
 
|}
 
|}
 +
===Invoices===
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_47.png]]
+
|style="padding: 10px 0px 15px 15px;"|Invoices created both automatically and manually can be found here.<br/>
 +
The invoice list includes:
 +
*'''Invoice ID'''
 +
*'''Client Name'''
 +
*'''Hosting Name'''
 +
*'''Product Name'''
 +
*'''Total'''
 +
*'''Date'''
 +
*'''Due Date'''
 +
And action buttons responsible for:
 +
*'''Generating the invoice'''
 +
*'''Displaying details'''
 +
*'''Deleting the invoice'''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Before your clients will be able to configure reminders, you have to enable the '' 'Notifications' '' extension for the product. To do so, move to '' 'Configuration' → 'Products List' → 'Settings' → 'Notifications'. ''<br/> Enable the extension and, if you wish, define a maximum nuber of notifications a client may create and change the default email template.<br/> Save the changes when ready.  
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_30.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_48.png]]
+
|style="padding: 0px 0px 15px 15px;"|You can also utilize the mass function to generate or delete multiple invoices at once.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|You will find a list of email templates in the '' 'WHMCS' → 'Setup' → 'Email Templates' '' section.<br/> By default, the  '' 'Advanced Billing Resource Usage Reminder' ''  template in '' 'Product/Service Messages' '' is used. <br/>
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_31.png]]
You can modify the template to your needs, or alternatively create a new one, then assign it in a previous step. <br/><br/>
+
Note that beside the WHMCS default '' 'Available Merge Fields' '' you can also use the following variables for the extension purposes:
+
*'''{$reminder_name}''' - the name of a reminder set by a client
+
*'''{$type}''' -  the resource type for which the limit has been set by a client. E. g. '' 'Storage' '', '' 'Bandwidth' '' etc.
+
*'''{$usage}''' - the current recorded usage value of the resource type the limit is set for
+
*'''{$limit}''' - the limit value defined by a client whose reaching or exceeding results in sending the notification
+
*'''{$unit}''' - the unit of the billed record. E.g. '' 'MB' '', '' 'GB' '' etc.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_49.png]]
+
|style="padding: 0px 0px 15px 15px;"|Invoice details consist of editable fields such as:
 +
*'''Invoice Date'''
 +
*'''Invoice Due Date'''
 +
and every billed item with its:
 +
*'''Description'''
 +
*'''Amount'''
 +
*'''Tax toggle'''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Now, while in the client area, you can see the tab with new reminders.<br/> Press '' 'Show' '' to expand it and click on the '' 'Add Reminder' '' button.
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB4_32.png]]
 
|}
 
|}
 +
 +
===Credits===
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_50.png]]
+
|style="padding: 10px 0px 15px 15px;"|This tab lists all credit top-ups issued by the clients with the '' 'Credit Billing' '' function.<br/>
 +
The list includes:
 +
*'''Client Name'''
 +
*'''Hosting'''
 +
*'''Credits Reserved'''
 +
*'''Amount Paid'''
 +
and an action button allowing the admin to '' 'Refund' '' the credits to WHMCS '' 'Credit Balance'.''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Set the name of a reminder name along with the frequency with which the module will check the usage and send notification emails once the limits are reached or exceeded.<br/>
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_33.png]]
Note that in addition to selecting the default frequency option from the dropdown menu, you can enter a different numeric value that will determine the frequency in hours.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_51.png]]
+
|style="padding: 0px 0px 20px 15px;"|Multiple top-ups can be selected to refund them at the same time.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|Now you can define resource limits on the basis of which notifications will be sent.
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB4_33_1.png]]
|}
+
{|
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB_52.png]]
+
|}
+
{|
+
|style="padding: 0px 0px 20px 15px;"|Determine if reminders shall be dispatched after a particular value is reached, exceeded or both.
+
|}
+
{|
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB_53.png]]
+
|}
+
{|
+
|style="padding: 0px 0px 15px 15px;"|If any of defined conditions is fulfilled, the reminder is sent to the client with the frequency set in the previous step.<br/>
+
The reminder will no longer be sent if, after the resource usage check, it turns out the level of a given resource type is once again below a defined limit.
+
|}
+
{|
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB_54.png]]
+
|}
+
{|
+
|style="padding: 0px 0px 15px 15px;"|Keep in mind that you can add multiple reminders, each with different limits and different frequencies of checking resources and sending notifications.<br/>
+
Once created, you can easily toggle the status of every notification, as well as modify its settings whenever required.
+
|}
+
{|
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB_55.png]]
+
 
|}
 
|}
  
===Product Auto Upgrade===
+
==Product Auto Upgrade Management==
{|
+
|style="padding: 10px 0px 15px 15px;"|'''Product Auto Upgrade For WHMCS''' extension is an automatic upgrade/downgrade of a product according to its usage.<br/>
+
It will allow you to set rules related to the server resource usage according to which the module will resize your products and their configurable options.<br/>
+
You will also be able to let your clients decide if they want their products to be modified as well as enable them to set the rules on their own.<br/>
+
'''Important:''' Product Auto Upgrade For WHMCS uses '' 'Change Package' '' functionality to switch the products.<br/>Therefore it is required that the products also support this feature.
+
|}
+
{|
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB2_51.png]]
+
|}
+
{|
+
|style="padding: 0px 0px 20px 15px;"|Before you can do anything you must enable the products you want to work with for Advanced Billing.
+
|}
+
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PAU_10.png]]  
+
|style="padding: 10px 0px 10px 15px;"|Under the '' 'Product auto Upgrade' '' you will be able to find tools to create and manage the auto upgrades based on resource usage.<br/>
 +
This section is only relevant for products with the [[#Product_Auto_Upgrade|Product Auto Upgrade]] function enabled.
 
|}
 
|}
 +
===Configuration===
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Only then you have to enable the extension Product Auto Upgrade For WHMCS for each of the products.<br/>Move to '' 'Settings', '' find appropriate section and enable the extension.
+
|style="padding: 10px 0px 20px 15px;"|Find the '' 'Configuration' '' tab under ' ''Product Auto Upgrade' '' and click on '' 'Add Group' '' to add a new group.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:PAU_10_1.png]]  
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_34.png]]
 
|}
 
|}
====Configuration====
 
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|As you might have already noticed, a new tab dedicated to the extension appeared on your Advanced Billing For WHMCS module main menu.<br/>Under this section there is located the whole management of the extension.<br/>
+
|style="padding: 0px 0px 15px 15px;"|As you create the group, complete the following fields:
Let's move to '' 'Configuration' '' firstly.
+
*'''Name''' - name the group, the name will not be visible to clients.
 +
*'''Product''' - select the product the group will be applicable for.
 +
*'''Configurable Options Group''' - optionally include a configurable options group.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PAU_11.png]]  
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_34_1.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|What you will find there is a full list of autoscaling groups displayed.<br/>
+
|style="padding: 0px 0px 20px 15px;"|Once the group is added, the action buttons will allow you to:
Here you can find information such as status of a group, its name and used submodule.<br/>What is more, you can manage groups through using buttons in '' 'Actions' '' column to prepare rules for scaling services.
+
*'''Edit the group's settings.'''
 +
*'''Add and manage upgrade options within the group.'''
 +
*'''Delete the group from the list.'''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PAU_11_1.png]]  
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_35.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|Let's see now how to create a new group.<br/>
+
|style="padding: 0px 0px 15px 15px;"|While editing the settings you will be able to change:
Press '' 'Create New Group' '' button and a short formula will appear.
+
*'''Group Name'''
 +
*'''Server Type'''
 +
*'''Time Interval''' - how often upgrades can happen (in minutes).
 +
*'''Notification Time Interval''' - how often the notification can be sent (in minutes).
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PAU_12.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_36.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|You can add products and define rules inside of the group which will result in upgrading/downgrading client's hosting.<br/>
+
|style="padding: 0px 0px 15px 15px;"|You can also change what the client is allowed to do:
Name your new group - this name is only for your information and convenience. Then select the product that can be automatically upgraded or downgraded according to resource usage count.<br/>Optionally, you can enable and choose configurable option group that will be used to define products options.<br/>
+
*'''Client Rules Configuration''' - display rules configuration in the client area.
Save the group when it is ready.
+
*'''Rules Configuration''' - enable clients to change the upgrade rules for themselves.
 +
*'''Rules Disable''' - permit clients to disable some of the upgrade rules.
 +
*'''Time Interval''' - give clients the option to modify upgrades time interval.
 +
*'''Time Interval Values''' - define the allowed range for upgrades time interval (minutes).
 +
*'''Notifications''' - allow clients to manage notifications.
 +
*'''Notifications Time Interval ''' - allow clients to modify notifications time interval.
 +
*'''Notifications Time Interval Values''' - define the allowed range for notifications time interval (minutes).
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PAU_13.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_37.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|Your newly created group appeared on the list. Now you can configure it according to your specific needs.
+
|style="padding: 0px 0px 20px 15px;"|The '' 'Options' '' action will take you to a page where you can define upgrade options within the group.<br/>
 +
To begin, click on the '' 'Add Option' '' button and name the option.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PAU_13_1.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_38.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|There are two main sections where a group can be configured.  
+
|style="padding: 0px 0px 20px 15px;"|Use the action buttons to:
#'' 'Settings' '' - a place where general and client area configuration is set up.
+
*'''Edit''' - define the upgrade and downgrade rules.
#'' 'Options' '' - detailed configuration of rules to scale services automatically.
+
*'''Change Package''' - select which package will be used for the option.
 +
*'''Change Description''' - add descriptions to each option's configuration.
 +
*'''Delete''' - delete the option from the group.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:PAU_14.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_39.png]]
 
|}
 
|}
=====Group Settings=====
 
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|'''General Configuration'''
+
|style="padding: 0px 0px 20px 15px;"|The mass action feature can also be used to delete or change packages for multiple options at once.
*'''Group Name''' - name of a group, can be changed at any time and is visible only to the admin.
+
*'''Server Type''' - module type of the product allowed in the group.
+
*'''Time Interval''' - minimum time period between the two products changes that can be made on a single hosting.
+
*'''Notifications Time Interval''' - defines time between notifications sent to a client.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PAU_14_1.png]]  
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_40.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''Client Area Configuration'''
+
|style="padding: 0px 0px 20px 15px;"|Click the '' 'Edit' '' button and define rules for both upgrades and downgrades, by selecting the '' 'Comparison Type' '' and '' 'Threshold' '' for any of the options.
*'''Client Rules Configuration''' - shows rules of this group for clients with products configured in the group.
+
*'''Rules Configuration''' - client can modify group rules, changes will affect their product only.
+
*'''Time Interval''' - client can modify the minimum time between two switches on a single hosting.
+
*'''Time Interval Values''' - specifies what time interval a client can use (they will be displayed in the form of a dropdown menu or a textbox with a limited range).
+
*'''Notifications''' - allows the client to enable/disable notifications.
+
*'''Notifications Time Interval''' - allows the client to modify minimum time between two notifications.
+
*'''Notifications Time Interval Values''' - defines values which can be used by client.<br/>
+
Do not forget to save the configuration when it is ready.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:PAU_14_2.png]]  
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB4_41.png]]
 
|}
 
|}
  
=====Group Options=====
+
===Accounts===
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|The second place where the group rules are configured is '''Options''' section.<br/>
+
|style="padding: 10px 0px 15px 15px;"|Services or '' 'Accounts' '' that make use of the '' 'Product Auto Upgrade' '' are recorded and listed in the '' 'Accounts' '' section under '' 'Product Auto Upgrades'.'' <br/>
These rules will be used by the extension to determine which service should be changed.<br/>Service will be changed according to the parameters set in rules options if the condition of either downgrade rules or upgrade rules has been met.  
+
The list includes information such as:
 +
*'''Hosting ID'''
 +
*'''Client Name'''
 +
*'''Product Name'''
 +
*'''Option ID'''
 +
The '' 'Details' '' action button will display more information on a specific account.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PAU_15.png]]  
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_43.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Every group has already some predefined basic options - disabled at the start.<br/>You can base your rules configuration on them or add your own ones in case they are not sufficient.<br/>Let us show how to set the autoscaling rules on the basis of these options.<br/>
+
|style="padding: 0px 0px 20px 15px;"|The details include a list of auto upgrades complete with:
Before you can do anything, you must configure the upgrade and downgarade rules.
+
*'''Date of the update'''
 +
*'''Type'''
 +
*'''Option before the upgrade'''
 +
*'''Option after the upgrade'''
 +
*'''Message regarding the action taken'''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PAU_16.png]]  
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB4_44.png]]
 
|}
 
|}
 +
===Client Area===
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'' 'Upgrade Rules'/'Downgrade Rules' '' can have multiple rules defined.<br/>
+
|style="padding: 10px 0px 15px 15px;"|Depending on the option's setting, several features can be made available to the client.<br/>
To add a new rule, select it from a dropdown menu marked on the following screen and press '' 'Add'.''
+
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'.''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PAU_17.png]]  
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_44_1.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|You can define comparison type and threshold of any added rule.<br/>
+
|style="padding: 0px 0px 20px 15px;"|Options may include:
To add a rule which will be fulfilled when the product has more or equal than 3 FTP accounts, choose '' '' '' from '' 'Comparison Type' '' and type '' '3' '' into '' 'Threshold' '' field.<br/>
+
*'''Enable Auto Upgrade''' - can be turned off to disable auto upgrades altogether.
This example can be seen on the following screen.
+
*'''Time Interval''' - change the minimum time that has to pass between upgrades.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PAU_18.png]]  
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_44_2.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|You also have to define a product for each package that will be used when upgrading/downgrading.<br/>Press button marked on the screen to go on.
+
|style="padding: 0px 0px 20px 15px;"|Under the '' 'Rules Options' '' tab, the client can select which rules to enable.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PAU_18_1.png]]  
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_44_3.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Select the product you need from the available in the dropdown menu.<br/>
+
|style="padding: 0px 0px 20px 15px;"|Service upgrades are recorded and displayed in the '' 'Auto Upgrade History' '' table.
Then select option you wish to be used by clients and add it. Save the changes.<br/>
+
'''Important!''' Options selection is available only if a supported configurable options group has been enabled for the group of rules on its creation.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PAU_18_2.png]]  
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_44_4.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|Every selected option appears in the box above. Here you can specify available selection under '' 'Setting' '' or delete it.
+
|style="padding: 0px 0px 20px 15px;"|Notification messages for upgrades can be set up by the user, first, click on the additional actions button.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:PAU_18_3.png]]  
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_44_5.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Repeat that for all packages that you want to enable.<br/>
+
|style="padding: 0px 0px 20px 15px;"|Enable the function and select the interval between each message.
Note that only packages with selected products can be enabled!
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PAU_19.png]]  
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_44_6.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|Additionally, you can change the order the rules are displayed, simply drag and drop a rule and make a previously downgrade rule an upgrade.
+
|style="padding: 0px 0px 20px 15px;"|To add a new notification use the '' 'Add Notification' '' button.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PAU_20.png]]  
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_44_7.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|Add new option, just type in its name, press '' 'Add New Option' '' and then configure it like the previous ones.
+
|style="padding: 0px 0px 20px 15px;"|Select the resource, comparison and unit for the notification.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PAU_21.png]]  
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_44_8.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Finally, you can describe shortly each option. Press ' ''Description' '' and a text area will appear.<br/>Type in your description there. As you can see you can prepare a few language versions of the description.
+
|style="padding: 0px 0px 15px 15px;"|You can add as many notifications as you would like.<br/>Action buttons allow you to edit or delete the notification.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:PAU_22.png]]  
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_44_9.png]]
 
|}
 
|}
  
====Accounts====
+
==Settings==
 +
===Cron Job Settings===
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|To access the list of hostings affected by the autoscaling groups proceed to '' 'Product Auto Upgrade' '' → '' 'Accounts'. ''<br/>
+
|style="padding: 10px 0px 30px 15px;"|The cron settings should be configured when you first set up the cron job for the module.  
Information about each hosting can be found here along with access to the hosting history.<br/>
+
In depth information regarding these settings can be found in the [[#kotwica |Installation]] section.
Press '' 'View History' '' near desired hosting to view its history of changes.
+
|}
+
{|
+
|style="padding: 0px 0px 20px 25px;"|[[File:PAU_23.png]]  
+
|}
+
{|
+
|style="padding: 0px 0px 20px 15px;"|Hosting history contains the list of changes ever made for the hosting.
+
|}
+
{|
+
|style="padding: 0px 0px 30px 25px;"|[[File:PAU_24.png]]
+
 
|}
 
|}
  
====Client Area====
+
===Item Archive Configuration===
{|
+
|style="padding: 10px 0px 15px 15px;"|In the following section we will show you client area with all autoscaling features enabled.<br/>
+
As you can see, autoscaling is displayed on the main page of a product right below the Advanced Billing For WHMCS usage records.<br/>
+
Press '' 'Show' '' to view details.
+
|}
+
{|
+
|style="padding: 0px 0px 20px 25px;"|[[File:PAU_25.png]]
+
|}
+
{|
+
|style="padding: 0px 0px 15px 15px;"|You can easily enable/disable autoscaling (red) or a selected option (blue) through pressing '' 'Enabled'/'Disabled' '' button and saving the changes.<br/>
+
To browse other options, use their names marked on the following screen.
+
|}
+
{|
+
|style="padding: 0px 0px 20px 25px;"|[[File:PAU_26.png]]
+
|}
+
{|
+
|style="padding: 0px 0px 15px 15px;"|Through pressing '' 'Show Rules' '' you can manage switching rules of currently displayed option.<br/>
+
Additionally, you can change the minimum interval between the changes through using marked field.
+
|}
+
{|
+
|style="padding: 0px 0px 20px 25px;"|[[File:PAU_27.png]]
+
|}
+
{|
+
|style="padding: 0px 0px 15px 15px;"|Rules are displayed in a table, press pencil icon next to the rule you wish to change.<br/>
+
Do not forget to save changes when you finish.
+
|}
+
{|
+
|style="padding: 0px 0px 20px 25px;"|[[File:PAU_28.png]]
+
|}
+
{|
+
|style="padding: 0px 0px 20px 15px;"|Besides the management of autoscaling, you can view the history of switches made on a hosting through pressing '' 'History'. ''
+
|}
+
{|
+
|style="padding: 0px 0px 20px 25px;"|[[File:PAU_29.png]]
+
|}
+
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Client can also set up notifications, they will be sent when requirements defined by a client are met.<br/>
+
|style="padding: 10px 0px 15px 15px;"|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.
For the settings shown on the following screen, notification will be sent once in ten minutes if the following rules are met.<br/>
+
*'''Clear Automatically''' - Enable to automatically clear the item archive under specified conditions.
The product number of Installed applications is equal or higher than 10.
+
*'''Flush Interval''' - Decide how often (in days) the flush should happen.
 +
*'''Delete Archive Items Older than''' - Decide how old the archive items have to be to be subject for deletion during flush.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:PAU_30.png]]  
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB4_5_1.png]]
 
|}
 
|}
  
====Sample Usage====
+
==Other==
 
{|
 
{|
|style="padding: 10px 0px 5px 15px;"|In this section we will show you a sample situation when Product Auto Upgrade For WHMCS is used simultaneously with another built-in extension to Advanced Billing - [[Advanced_Billing_For_WHMCS#Recurring_Billing|Recurring Billing]].
+
|style="padding: 10px 0px 10px 15px;"|Other useful tools and features directly related to the module functioning can be found in the '' 'Other' '' section.<br/>
 +
This includes:
 +
*'''Translations Tool'''
 +
*'''Access Control'''
 +
*'''Module Logs'''
 
|}
 
|}
 +
===[https://www.docs.modulesgarden.com/Translations_Tool Translations]===
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|Let's say you have configured 3 cPanel Extended products enabled for Advanced Billing.
+
|style="padding: 10px 0px 15px 15px;"|Customizing language files is now extremely easy with the '' "Translations" '' tool that is now available directly in the addon.<br.> Its user-friendly design makes managing various language file tweaks a smooth and efficient process. <br/>
 +
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 [https://www.docs.modulesgarden.com/Translations_Tool here].
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:PAU_31.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB4_tr.png]]
|}
+
{|
+
|style="padding: 0px 0px 15px 15px;"|Each of the products has different limits set:<br />
+
*'''Product A''': Max 4 FTP accounts and 500 MB storage.
+
*'''Product B''': Max 10 FTP accounts and 1 GB storage.
+
*'''Product C''': Max 20 FTP accounts and 5 GB storage.<br/>
+
Afterwards, you have created an autoscaling group, added products listed above to it and defined them with following rules.
+
|}
+
{|
+
|style="padding: 0px 0px 20px 25px;"|[[File:PAU_32.png]]
+
|}
+
{|
+
|style="padding: 0px 0px 15px 15px;"|
+
*'''Product A - Lowest'''
+
**Upgrade Rule: &ge; 3 FTP accounts & &ge; 400 MB storage
+
*'''Product B - Middle'''
+
**Upgrade Rule: &ge; 9 FTP accounts & &ge; 8 GB storage
+
**Downgrade Rule: &le; 3 FTP accounts & &le; 300 MB storage
+
*'''Product C - Highest'''
+
**Downgrade Rule: &le; 8 FTP accounts & &le; 7 GB storage
+
|}
+
{|
+
|style="padding: 0px 0px 20px 25px;"|[[File:PAU_33.png]]
+
|}
+
{|
+
|style="padding: 0px 0px 10px 15px;"|Now, this is which is going to happen:<br />
+
1. A client, John orders product C and creates 3 FTP accounts in it.<br />
+
2. Advanced Billing cron job changes product C to product B with the first run, and further to product A in the second run (if provided minimum time interval has passed).<br />
+
3. John  uploads 450 MB of files, so now his product meets product A top rule requirement.<br />
+
4. Cron runs again, and changes his product to product B.<br />
+
5. John creates additional 7 FTP accounts and uploads files with total size of 550 MB.<br />
+
6. Now, his product meets product B upgrade rules only partially, therefore cron run does nothing.<br />
+
7. Some time passes and total amount of storage used by John reaches 8 GB.<br />
+
8. This time his product meets product B upgrade rules completely and is updated to product C.<br />
+
9. John removes 4 of his FTP accounts and 1 GB of files.<br />
+
10. Therefore his product meets product C bottom rules requirements and is downgraded to product B.<br />
+
|}
+
{|
+
|style="padding: 0px 0px 30px 15px;"|
+
That was all about upgrading/downgrading the products, but let us now see how the payments look like.<br/>
+
If your client orders product C and their product gets downgraded to  product B, they will be billed with product C price.<br/>
+
However, if the prices and free limits are set per resources, you will help your clients to avoid additional payments if their resource usage is low.<br/>
+
If you do it this way, clients will pay fixed price each month, but additional payment will depend on the resource they use.<br/>
+
In case you own only limited amount of resources, Product Auto Upgrade For WHMCS extension will allow you to use them more efficiently.<br/> Whereas the core Advanced Billing For WHMCS features will let you bill your clients adequately.
+
 
|}
 
|}
  
===[https://www.modulesgarden.com/products/whmcs/proxmox_cloud_autoscaling/features Proxmox Cloud Autoscaling (Sold Separately)]===
+
===Access Control===
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|'''Proxmox Cloud Autoscaling For WHMCS''' enables automatic alterations of servers provisioned by Proxmox VE Cloud VPS For WHMCS depending on their load.<br/>
+
|style="padding: 10px 0px 10px 15px;"|'' 'Access Control' '' allows you to specify and control exactly which sections of the module can be accessed by your administrators. <br/>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.<br/>
The module will allow you to set out rules on VPS resources according to which servers will be modified through resizing or cloning.<br/>In addition, you will be able to grant your clients permission to change rules or toggle module functionality.
+
For more detailed information on the available modules that include this tool, please refer to the [https://www.docs.modulesgarden.com/Access_Control_Tool Access Control Tools Wiki Page].
<br/><br/>
+
For more information about Proxmox Cloud Autoscaling For WHMCS, visit its [https://www.docs.modulesgarden.com/Proxmox_Cloud_Autoscaling_For_WHMCS Wiki].
+
 
|}
 
|}
{|
 
|style="padding: 0px 0px 30px 25px;"|[[File:AB_PCA.png]]
 
|}
 
 
==Billing Types==
 
  
 +
====Rules====
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|'''Hourly''' billing allows you to charge your customers for each hour of use of the product (hourly billing calculations are based on the '' 'Registration Date' '' product).<br />
+
|style="padding: 10px 0px 20px 15px;"|
You can enable hourly billing for any product type.<br />
+
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.
Regardless of whether it is a server, web hosting account or other type, customers will be billed for each hour of using the product.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_32.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_46.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|With the '''Summary''' billing type, you can charge your customers for the summed usage over the billing period.<br/> For example, if a client uses 200 MB over the first hour, 0 MB over the second hour, and 300 MB over the third hour, the summed usage is 500 MB.
+
|style="padding: 0px 0px 15px 15px;"|Fill out the following fields to create resources access rule:
 +
*'''Rule Name''' - Pick a name for your rule.
 +
*'''Grant Full Access''' - Enable to grant full access to all sections of the module to the specified personnel. Disable to specify in two additional fields below, to which resources access will be granted, and to which it will be denied.
 +
*'''Allow Access To''' - Designate the resources that the specified personnel will have access to.
 +
*'''Restrict Access To''' - Specify the resources that the specified personnel will not have access to.
 +
*'''Administrators''' - Specify which singular administrators will be subject to the new rule. If the specific administrator is already included in the group you have picked, you do not need to add him separately. <br/> '''''Note:''' All restrictions for specific administrators are summed with the restrictions on their role groups, across all rules.''
 +
*'''Administrator Roles''' - Specify which administrator role groups will be subject to the new rule.<br/>
 +
'''Important:''' When picking specific sections, keep in mind that allowing a parent section '''will also allow all of its children.''' <br/>
 +
For example by allowing 'Access Control' you allow every section of it<br/>
 +
If you would like to give access to everything about Access Control, but the ability to delete logs, you can pick 'Access Control' in 'Allow Access To' and then 'Access Control → Logs → Delete' in 'Restrict Access To.'<br/> '''Restrict''' takes precedence over '''Allow,''' so if a specific section is included in both, it will be restricted.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_32_1.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_47.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|The '''Highest''' billing type enables you to charge your customers basing on the highest value.<br/> For example, if a client has 5 Floating IPs and removes 2 of them, the module will take into account the highest value which is 5, even when a client now has 3 Floating IPs.  
+
|style="padding: 0px 0px 20px 15px;"|To edit or delete existing rules, use the icons to the right.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:AB_32_2.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB4_48.png]]
 
|}
 
|}
==Ticket Billing==
+
 
 +
====Resources====
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|Ticket billing works exactly as it sounds. When enabled, it bills your customers for each opened ticket.<br />
+
|style="padding: 10px 0px 15px 15px;"|Use the toggles in the 'Resources' section to specify which of them should be subject to logging, found in the 'Logs' section. <br/> Every time an administrator requests a toggled resource, it will be recorded.
Remember that you must have a product with Ticket Billing submodule assigned to it.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_33_1.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB4_49.png]]
|}
+
{|
+
|style="padding: 0px 0px 15px 15px;"|As in the case of hourly billing, you can enable ticket billing for any product type.
+
|}
+
{|
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB_33.png]]
+
 
|}
 
|}
  
==Sample Configuration==
+
====Access Control Logs====
{|
+
|style="padding: 10px 0px 30px 15px;"|In this section, we will show you two samples of configuration of Advanced Billing.
+
|}
+
===Two Weeks Billing===
+
{|
+
|style="padding: 10px 0px 15px 15px;"|In order to set up the invoice generation for resource usage every 2 weeks, follow these steps:<br />
+
1. Go to '' 'Addons' '' → '' 'Advanced Billing' '' and select your product from '' 'Enable Advanced Billing For:' ''
+
|}
+
{|
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB_34.png]]
+
|}
+
{|
+
|style="padding: 0px 0px 15px 15px;"|2. Go to '' 'Products List' → (your product's) 'Settings' → 'Recurring Billing' '', enable the extension together with the '' 'Bill on Termination' '' option.<br />
+
Additionally, choose '' 'Bill Every X Days' '' from the '' 'Billing Type' '' dropdown menu. Enter '' '14' '' into the '' 'Billing Type Value' '' textbox and set '' 'Due Date' '' to '' '7' '' days.<br/>
+
Afterwards, press '' 'Save' '' to save changes.
+
|}
+
{|
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB_35.png]]
+
|}
+
{|
+
|style="padding: 0px 0px 15px 15px;"|3. Remember to enter your pricing settings.<br />
+
|}
+
{|
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB_36.png]]
+
|}
+
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Congratulations, you have just successfully configured your billing options!<br />
+
|style="padding: 10px 0px 15px 15px;"|The logs section includes:
Your Advanced Billing main page should look like the screen below.<br/>
+
*Log ID
Note that you can also change Cron Frequency per product here.
+
*Name of the administrator
 +
*Requested resource
 +
*Applied Resource
 +
*Rule Name
 +
*Date
 +
Use the trash bin icons to delete specific logs, or utilize the mass action function to delete multiple logs at once.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:AB_37.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB4_50.png]]
 
|}
 
|}
  
===$20 Billing===
+
===Logs===
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|To bill your client as frequently as possible, follow these steps:<br />
+
|style="padding: 10px 0px 15px 15px;"|The '' 'Logs' '' section under '' 'Other' '' is where the module logs are stored.<br/>
1.Go to '' 'Addons' '' '' 'Advanced Billing' '' and select your product from '' 'Enable Advanced Billing For:' ''
+
You can filter the module logs by type with the '' 'Show' '' buttons:
 +
*'''Error'''
 +
*'''Info'''
 +
*'''Both (Total)'''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_34.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_51.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|2. Go to '' 'Products List' → (your product's) 'Settings' → 'Credit Billing' '' and press '' 'Enable'. ''<br />
+
|style="padding: 0px 0px 20px 15px;"|You can delete logs either one by one or with the mass function.
Afterwards, enter '' '1' '' into '' 'Create Invoices Each', '20' '' into '' 'Minimum Credit' '' and '' '50' '' into '' 'Low Credit Notification'. ''<br />
+
With these settings your client will be billed from credit balance as soon as the payment for resource usage has reached $20.<br />
+
They will also receive an email if their credit balance falls below $50.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_39.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_52.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|3. Remember to set up your pricing.
+
|style="padding: 0px 0px 15px 15px;"|Additional actions include:
 +
*'''Logging Settings'''
 +
*'''Log Export'''
 +
*'''Rule Based Deletion'''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:AB_40.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_53.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Congratulations, you have just successfully configured your billing options!<br />
+
|style="padding: 0px 0px 15px 15px;"|In the settings you may decide:
Your Advanced Billing main page should look like the screen below.<br/>
+
*'''Log Types''' - which type of logs should be recorded.
Note that you can also change '' 'Cron Frequency' '' per product here.<br/>
+
*'''Clear automatically''' - if you would like to automatically delete logs older than defined number of days.
 +
*'''Delete Logs Older Than''' - how many days should pass before logs are automatically deleted.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:AB_41.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_54.png]]
 
|}
 
|}
 
==Measurement Units==
 
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|Take a look at the table below, you will find precise data on the measurement units used for billing purposes per each supported submodule. <br/>
+
|style="padding: 0px 0px 15px 15px;"|While exporting you will have to specify which logs to export:
*Resource → unit; default units are marked in bold → Resource name. Mentioned resource name is strictly connected with the '''[[#Free_Limit|Free Limit]]''' extension. 
+
*'''From'''
 +
*'''To'''
 +
*'''Log Types'''
 
|}
 
|}
 
 
{|
 
{|
|style="vertical-align: top; padding: 15px 5px 0px 5px; width: 500px;"|'''Default'''
+
|style="padding: 0px 0px 20px 25px;"|[[File:AB4_55.png]]
* Hourly (H)  - ''Resource name:'' '''hourly'''
+
 
+
|style="vertical-align: top; padding: 15px 5px 0px 5px; width: 500px;"|'''cPanel/ cPanelExtended'''
+
* Bandwidth ('''MB''', GB) - ''Resource name:'' '''bandwidth'''
+
* Storage  (GB/hr) - ''Resource name:'' '''storage'''
+
* Databases (/hr) - ''Resource name:'' '''databases'''
+
* Addon Domains (/hr) - ''Resource name:'' '''addon_domains'''
+
* Subdomains (/hr) - ''Resource name:'' '''subdomains'''
+
* Parked Domains (/hr) - ''Resource name:'' '''parked_domains'''
+
* Email Accounts (/hr) - ''Resource name:'' '''email_accounts'''
+
* Installed Applications (/hr) - ''Resource name:'' '''installed_applications'''
+
* FTP Accounts (/hr) - ''Resource name:'' '''ftp_accounts'''
+
* Email Forwarders (/hr) - ''Resource name:'' '''email_forwarders'''
+
* Domain Forwarders (/hr) - ''Resource name:'' '''domain_forwarders'''
+
* Hourly (H) - ''Resource name:'' '''hourly'''
+
 
+
|style="vertical-align: top; padding: 15px 5px 0px 5px; width: 500px;"|'''Digital Ocean Droplets'''
+
* Memory (/hr)  - ''Resource name:'' '''memory'''
+
* Vcpus (/hr)  - ''Resource name:'' '''vcpus'''
+
* Disk (/hr) -  ''Resource name:'' '''disk'''
+
* Size (/hr) - ''Resource name:'' '''size'''
+
* Backups (/hr) - ''Resource name:'' '''buckups'''
+
* Snapshots (/hr) - ''Resource name:'' '''snapshots'''
+
* Volumes (/hr) - ''Resource name:'' '''volumes'''
+
* Hourly (H) - ''Resource name:'' '''hourly'''
+
 
|}
 
|}
 
 
{|
 
{|
|style="vertical-align: top; padding: 15px 5px 0px 5px; width: 500px;"|'''Direct Admin/Direct Admin Extended'''
+
|style="padding: 0px 0px 15px 15px;"|You may also delete specific logs without finding them manually.<br/> Simply define:
* Bandwidth ('''MB''', GB) - ''Resource name:'' '''bandwidth'''
+
*'''Log Types'''
* Storage ('''MB/hr''', GB/hr)  - ''Resource name:'' '''storage'''
+
*'''Delete Logs Older Than'''
* Virtual Domains (/hr)  - ''Resource name:'' '''vdomains'''
+
* Subdomains (/hr)  - ''Resource name:'' '''nsubdomains'''
+
* Domain Pointers (/hr) - ''Resource name:'' '''domainptr'''
+
* FTP Accounts (/hr)  - ''Resource name:'' '''ftp'''
+
* MySQL Databases (/hr) - ''Resource name:'' '''mysql'''
+
* Email Forwarders (/hr)  ''Resource name:'' '''nemailf'''
+
* Mailing Lists (/hr) - ''Resource name:'' '''nemailml'''
+
* Email Autoresponders (/hr) - ''Resource name:'' '''nemailr'''
+
* POP Accounts (/hr) - ''Resource name:'' '''nemails'''
+
* Hourly (H) - ''Resource name:'' '''hourly'''
+
 
+
|style="vertical-align: top; padding: 15px 5px 0px 5px; width: 500px;"|'''Hetzner VPS'''
+
* CPUs (CPU/hr) - ''Resource name:'' '''cpus'''
+
* Memory (GB/hr) - ''Resource name:'' '''memory'''
+
* Disk ('''GB/hr''', TB/hr) - ''Resource name:'' '''disk'''
+
* Backups (/hr) - ''Resource name:'' '''backups'''
+
* Floating IPs (1/hr) - ''Resource name:'' '''floatingips'''
+
* Snapshots (/hr) - ''Resource name:'' '''snapshots'''
+
* Volumes ('''GB/hr''', TB/hr) - ''Resource name:'' '''volumes'''
+
* CPU Usage (%/hr) - ''Resource name:'' '''cpu'''
+
* Outgoing Traffic (B, kB, MB, '''GB''', TB) - ''Resource name:'' ''' outgoingTraffic'''
+
* Ingoing Traffic (B, kB, MB, '''GB''', TB) - ''Resource name:'' '''ingoingTraffic'''
+
* Disk Iops Read (op/hr) - ''Resource name:'' '''diskIopsRead'''
+
* Disk Iops Write (op/hr) - ''Resource name:'' '''diskIopsWrite'''
+
* Disk Bandwidth Read <br/> (B/hr, kB/hr, '''MB/hr''', GB/hr, TB/hr) - ''Resource name:'' '''diskBandwidthRead'''
+
* Disk Bandwidth Write <br/>(B/hr, kB/hr, '''MB/hr''', GB/hr, TB/hr) - ''Resource name:'' ''' diskBandwidthWrite'''
+
* Network Pps In (packet/hr) - ''Resource name:'' '''networkPpsIn'''
+
* Network Pps Out (packet/hr) - ''Resource name:'' '''networkPpsOut'''
+
* Network Bandwidth In <br/>(B/hr, kB/hr, MB/hr, '''GB/hr''', TB/hr) - ''Resource name:'' '''networkBandwidthIn'''
+
* Network Bandwidth Out <br/>(B/hr, kB/hr, MB/hr, '''GB/hr''', TB/hr) - ''Resource name:'' ''' networkBandwidthOut'''
+
* Hourly (H) - ''Resource name:'' '''hourly'''
+
 
+
|style="vertical-align: top; padding: 15px 5px 0px 5px; width: 500px;"|'''Openstack VPS/Openstack VPS Cloud'''
+
* Hourly (H) - ''Resource name:'' '''hourly'''
+
* VCPU Cores (Core-Hours) - ''Resource name:'' '''vcpus'''
+
* Memory Usage ('''MiB-Hours''', GiB-Hours) - ''Resource name:'' '''memory'''
+
* CPU Utilization (Qnty) - ''Resource name:'' '''cpuUtil'''
+
* Incoming Bandwidth ('''MiB-Hours''', GiB-Hours) - ''Resource name:'' '''incomingMegaBytes'''
+
* Outgoing Bandwidth ('''MiB-Hours''', GiB-Hours)- ''Resource name:'' '''outgoingMegaBytes'''
+
* Disk Root Used (GiB-Hours) - ''Resource name:'' '''diskRootGBSize'''
+
* Disk Read Requests (Requests) - ''Resource name:'' '''diskReadRequests'''
+
* Disk Write Requests (Requests) - ''Resource name:'' '''diskWriteRequests'''
+
* Floating IP (IP-Hours) - ''Resource name:'' '''floatingIP'''
+
* Fixed IP (IP-Hours) - ''Resource name:'' '''fixedIP'''
+
* Backups Number (Qnty) - ''Resource name:'' '''backupNumber'''
+
 
|}
 
|}
 
 
{|
 
{|
|style="vertical-align: top; padding: 15px 5px 0px 5px; width: 500px;"|'''Openstack Projects'''
+
|style="padding: 0px 0px 30px 25px;"|[[File:AB4_56.png]]
* Memory (GiB-Hours) - ''Resource name:'' ''' memory'''
+
* Memory Usage (GiB-Hours) - ''Resource name:'' ''' memory.usage'''
+
* VCPU Cores (Core-Hours) - ''Resource name:'' '''vcpus'''
+
* CPU Time (Util-Hours) - ''Resource name:'' '''cpu'''
+
* Disk Device Read Requests (Qnty) - ''Resource name:'' '''disk.device.read.requests'''
+
* Disk Device Write Requests (Qnty) - ''Resource name:'' '''disk.device.write.requests'''
+
* Disk Device Read Bandwidth ('''GiB''', MiB, KiB) - ''Resource name:'' '''disk.device.read.bytes'''
+
* Disk Device Write Bandwidth ('''(GiB-Hours)''' GiB, MiB, KiB) - ''Resource name:'' ''' disk.device.write.bytes'''
+
* Network Incoming Bytes Bandwidth ('''GiB''', MiB, KiB) - ''Resource name:'' '''network.incoming.bytes'''
+
* Network Outgoing Bytes Bandwidth ('''GiB''', MiB, KiB) - ''Resource name:'' '''network.outgoing.bytes'''
+
* Network Incoming Packets (Qnty) - ''Resource name:'' '''network.incoming.packets'''
+
* Network Outgoing Packets (Qnty) - ''Resource name:'' '''network.outgoing.packets'''
+
* Image Size ('''GiB-Hours''', MiB-Hours) - ''Resource name:'' '''image.size'''
+
* Volume Size (GiB-Hours) - ''Resource name:'' '''volume.size'''
+
* Snapshot Size (GiB-Hours) - ''Resource name:'' '''snapshot.size'''
+
* IPs (Qnty) - ''Resource name:'' '''ips'''
+
* Floating IPs (Qnty) - ''Resource name:'' '''floating.ips'''
+
* Loadbalancers (Qnty) - ''Resource name:'' '''loadbalancers'''
+
 
+
'''Openstack Projects Dynamic Resources'''
+
* Volumes (GiB-Hours) - ''Resource name:'' '''volumes'''
+
* Images (Qnty-Hours) - ''Resource name:'' ''' images'''
+
 
+
|style="vertical-align: top; padding: 15px 5px 0px 5px; width: 500px;"|'''Plesk/Plesk Extended'''
+
* Subdomains (/hr) - ''Resource name:'' '''subdomains'''
+
* Disk Space (MB/hr) - ''Resource name:'' '''disk_space'''
+
* Email Boxes (/hr) - ''Resource name:'' '''postboxs'''
+
* Redirects (/hr) - ''Resource name:'' '''redirects'''
+
* Mail Groups (/hr) - ''Resource name:'' ''' mail_groups'''
+
* Autoresponders (/hr) - ''Resource name:'' '''mail_resps'''
+
* Mailing Lists (/hr) - ''Resource name:'' '''mail_lists'''
+
* Users (/hr) - ''Resource name:'' ''' web_users'''
+
* Databases (/hr) - ''Resource name:'' '''data_bases'''
+
* Webapps (/hr) - ''Resource name:'' '''webapps'''
+
* Traffic ('''MB''', GB) - ''Resource name:'' '''traffic'''
+
* Domains (/hr) - ''Resource name:'' '''sites'''
+
* Hourly (H) - ''Resource name:'' '''hourly'''
+
 
+
|style="vertical-align: top; padding: 15px 5px 0px 5px; width: 500px;"|'''Proxmox VPS/Proxmox Cloud VPS'''
+
* Hourly (H) - ''Resource name:'' '''hourly'''
+
* Bandwidth IN ('''MB''', GB) - ''Resource name:'' '''bandwidth_in'''
+
* Bandwidth OUT ('''MB''', GB) - ''Resource name:'' '''bandwidth_out'''
+
* Bandwidth TOTAL ('''MB''', GB) - ''Resource name:'' '''bandwidth_total'''
+
* Disk Usage ('''MB/hr''', GB/hr) - ''Resource name:'' '''disk'''
+
* Disk Size ('''MB/hr''', GB/hr) - ''Resource name:'' ''' disk_size'''
+
* Memory Usage ('''MB/hr''', GB/hr) - ''Resource name:'' '''memory'''
+
* Memory Size ('''MB/hr''', GB/hr) - ''Resource name:'' '''memory_size'''
+
* Backups Usage ('''MB/hr''', GB/hr) - ''Resource name:'' '''backups'''
+
* CPU Number (/hr) - ''Resource name:'' '''cpu_number'''
+
* CPU Usage (/hr) - ''Resource name:'' '''cpu_usage'''
+
* CPU Cores Usage (/hr) - ''Resource name:'' '''cpu_cores_usage'''
+
* IPv4 (Qnty) - ''Resource name:'' '''ipv4'''
+
* IPv6 (Qnty) - ''Resource name:'' '''ipv6'''
+
* Snapshots (Qnty) - ''Resource name:'' '''snapshots'''
+
 
|}
 
|}
  
 +
=Tips=
 
{|
 
{|
|style="vertical-align: top; padding: 15px 5px 0px 5px; width: 500px;"|'''Rackspace Email Extended'''
+
|style="padding: 10px 0px 30px 15px;"|1. '''In version 4.0, the "Extensions" section has been removed, so the module license must now be placed in the "license.php" file.'''<br/> If upgrading from version V3.X, re-add the license to the "license.php" file and reissue it from your client area panel.
* Mailbox Storage ('''MB/hr''', GB/hr) - ''Resource name:'' '''mailbox_storage'''
+
* Mailboxes (/hr) - ''Resource name:'' '''mailboxes'''
+
* Sync Licenses (/hr) - ''Resource name:'' '''sync_licenses'''
+
* Blackberry Licenses (/hr) - ''Resource name:'' '''blackberry_licenses'''
+
* Exchange Storage ('''MB/hr''', GB/hr) - ''Resource name:'' '''exchange_storage'''
+
* Exchange Mailboxes (/hr) - ''Resource name:'' '''exchange_mailboxes'''
+
* Hourly (H) - ''Resource name:'' '''hourly'''
+
 
+
|style="vertical-align: top; padding: 15px 5px 0px 5px; width: 500px;"|'''Solusvm Extended Cloud'''
+
* Available Disk Size ('''MB/hr''', GB/hr) - ''Resource name:'' '''disk_size'''
+
* Disk Usage ('''MB/hr''', GB/hr) - ''Resource name:'' '''disk_used'''
+
* Available Bandwidth ('''MB/hr''', GB/hr) - ''Resource name:'' '''total_bandwidth'''
+
* Bandwidth Used ('''MB''', GB) - ''Resource name:'' '''bandwidth_used'''
+
* Memory Usage ('''MB/hr''', GB/hr) - ''Resource name:'' '''memory_used'''
+
* Available Memory ('''MB/hr''', GB/hr) - ''Resource name:'' '''total_memory'''
+
* Cores (/hr) - ''Resource name:'' '''cores'''
+
* IP Addresses (/hr) - ''Resource name:'' '''ipaddresses'''
+
 
+
|style="vertical-align: top; padding: 15px 5px 0px 5px; width: 500px;"|'''Solusvm Extended VPS'''
+
* Hourly (H) - ''Resource name:'' '''hourly'''
+
* isk Size ('''MB/hr''', GB/hr) - ''Resource name:'' '''disk_size'''
+
* Disk Usage ('''MB/hr''', GB/hr) - ''Resource name:'' '''disk'''
+
* Bandwidth Total ('''MB''', GB) - ''Resource name:'' '''bandwidth_total'''
+
* Bandwidth ('''MB''', GB) - ''Resource name:'' '''bandwidth'''
+
* Available Memory ('''MB/hr''', GB/hr) - ''Resource name:'' '''memory'''
+
* Memory Usage ('''MB/hr''', GB/hr) - ''Resource name:'' '''total_memory'''
+
* CPUs Number (/hr) - ''Resource name:'' '''cpus'''
+
* IPv4 (Qnty) - ''Resource name:'' '''ipv4'''
+
* IPv6 (Qnty) - ''Resource name:'' '''ipv6'''
+
* Swap-Burst ('''MB/hr''', GB/hr) - ''Resource name:'' '''swap_burst'''
+
* Internal IPs (Qnty) - ''Resource name:'' '''internalips'''
+
 
|}
 
|}
  
 +
=Update Instructions=
 
{|
 
{|
|style="vertical-align: top; padding: 15px 5px 0px 5px; width: 500px;"|'''Solusvm Pro'''
+
|style="padding: 10px 0px 5px 15px;"|Essential guidance through the process of updating the module is offered '''[https://www.docs.modulesgarden.com/How_To_Update_WHMCS_Module here]'''<br/>
* Hourly (H) - ''Resource name:'' '''hourly'''
+
Ensure successful completion of the module update by carefully following each step, thereby preventing data loss or any unforeseen issues.<br/> Additionally, you will find a current list of supplementary actions necessary for a smooth update process there.
* isk Size ('''MB/hr''', GB/hr) - ''Resource name:'' '''disk_size'''
+
* Disk Usage ('''MB/hr''', GB/hr) - ''Resource name:'' '''disk'''
+
* Bandwidth Total ('''MB''', GB) - ''Resource name:'' '''bandwidth_total'''
+
* Bandwidth ('''MB''', GB) - ''Resource name:'' '''bandwidth'''
+
* Available Memory ('''MB/hr''', GB/hr) - ''Resource name:'' '''memory'''
+
* Memory Usage ('''MB/hr''', GB/hr) - ''Resource name:'' '''total_memory'''
+
* CPUs Number (/hr) - ''Resource name:'' '''cpus'''
+
* IPv4 (Qnty) - ''Resource name:'' '''ipv4'''
+
* IPv6 (Qnty) - ''Resource name:'' '''ipv6'''
+
* Swap-Burst ('''MB/hr''', GB/hr) - ''Resource name:'' '''swap_burst'''
+
* Internal IPs (Qnty) - ''Resource name:'' '''internalips'''
+
 
+
|style="vertical-align: top; padding: 15px 5px 0px 5px; width: 500px;"|'''Ticket Billing'''
+
* Opened Tickets (Qnty) - ''Resource name:'' '''opened_tickets'''
+
 
+
|style="vertical-align: top; padding: 15px 5px 0px 5px; width: 500px;"|'''Virtualizor'''
+
* Bandwidth Usage ('''MB''', GB) - ''Resource name:'' '''bandwidthUsed'''
+
* CPU Units (/hr) - ''Resource name:'' '''cpuUnits'''
+
* CPU Cores (/hr) - ''Resource name:'' '''cpuCores'''
+
* CPU Usage (/hr) - ''Resource name:'' '''cpuUsed'''
+
* Disk Size (GB/hr) - ''Resource name:'' '''diskSize'''
+
* Disk Usage (GB/hr) - ''Resource name:'' '''diskUsed'''
+
* RAM Size ('''MB/hr''', GB/hr) - ''Resource name:'' '''ram'''
+
* RAM Usage ('''MB/hr''', GB/hr) - ''Resource name:'' '''ramUsed'''
+
* Network Speed IN ('''MB/hr''', GB/hr) - ''Resource name:'' '''networkIn'''
+
* Network Speed OUT ('''MB/hr''', GB/hr) - ''Resource name:'' '''networkOut'''
+
* I/O Disk Read ('''MB/hr''', GB/hr) - ''Resource name:'' '''ioRead'''
+
* I/O Disk Write ('''MB/hr''', GB/hr) - ''Resource name:'' '''ioWrite'''
+
* IPv4 Addresses (/hr) - ''Resource name:'' '''ipv4'''
+
* IPv6 Addresses (/hr) - ''Resource name:'' '''ipv6'''
+
 
|}
 
|}
 
+
==Module Upgrade From V3.X to V4.X==
 
{|
 
{|
|style="vertical-align: top; padding: 15px 5px 0px 5px; width: 500px;"|'''Virtuozzo Hybrid Infrastructure S3'''
+
|style="padding: 10px 0px 30px 15px;"|Upgrading from version 3.X to 4.0 requires additional steps due to the changes in the module structure. Please follow the instructions carefully to ensure a smooth transition.
* OPS Other (K ops/min) - ''Resource name:'' '''other'''
+
# Optionally backup your language files and license.<br/>
* OPS GET (K ops/min) - ''Resource name:'' '''get'''
+
# Delete all old module files.<br/>
* OPS PUT (K ops/min) - ''Resource name:'' '''put'''
+
# Upload new module files from version 4.0.<br/>
* OPS LIST (K ops/min) - ''Resource name:'' '''list'''
+
# Re-add the license to license.php and reissue it in your client area.<br/>
* OPS Total (K ops/min) - ''Resource name:'' '''opsTotal'''
+
# Cron Job Update:<br/>
* Uploaded (GiB) - ''Resource name:'' '''uploaded'''
+
#* Delete the old cron job.
* Downloaded (GiB) - ''Resource name:'' '''downloaded'''
+
#* Kill the cron process.
* Storage (GiB) - ''Resource name:'' '''storage'''
+
#* Run the upgrade command: <pre>php -q whmcs/modules/addons/AdvancedBilling4/cron/cron.php upgrade run "4.0.0" </pre>
 
+
#* Set the new cron job, make sure to replace '' 'your_WHMCS' '' with your WHMCS directory path: <pre>php -q /your_WHMCS/modules/addons/AdvancedBilling4/cron/cron.php cron </pre>
|style="vertical-align: top; padding: 15px 5px 0px 5px; width: 500px;"|'''Virtuozzo'''
+
* Template (/hr) - ''Resource name:'' '''template'''
+
* CPU Cores (Qnty) - ''Resource name:'' '''cpu_cores'''
+
* CPU Usage (/hr) - ''Resource name:'' '''cpu_usage'''
+
* CPU Limit (MHz) - ''Resource name:'' '''cpu_limit'''
+
* Memory Usage ('''MB/hr''', GB/hr) - ''Resource name:'' '''memory'''
+
* Memory Limit ('''MB''', GB) - ''Resource name:'' '''memory_limit'''
+
* Incoming Bandwidth ('''MB''', GB) - ''Resource name:'' '''bandwidth_incoming'''
+
* Outgoing Bandwidth ('''MB''', GB) - ''Resource name:'' '''bandwidth_outgoing'''
+
* Disk Used (GB/hr) - ''Resource name:'' '''disk_used'''
+
* Disk Limit (GB) - ''Resource name:'' '''disk_quota'''
+
* Public IP (Qnty) - ''Resource name:'' ''' ip_number'''
+
* Private IP (Qnty) - ''Resource name:'' '''ip_number_secondary'''
+
* Disk I/O Limit (/hr) - ''Resource name:'' '''io_limit'''
+
* Disk I/O ps Limit (/hr) - ''Resource name:'' '''iops_limit'''
+
* Backup Space Used (GB/hr) - ''Resource name:'' '''backup_usage'''
+
 
+
|style="vertical-align: top; padding: 15px 5px 0px 5px; width: 500px;"|'''Virtuozzo VPS'''
+
* Template (/hr) - ''Resource name:'' '''template'''
+
* CPU Cores (Qnty) - ''Resource name:'' '''cpu_cores'''
+
* CPU Usage (/hr) - ''Resource name:'' '''cpu_usage'''
+
* CPU Limit (MHz) - ''Resource name:'' '''cpu_limit'''
+
* Memory Usage ('''MB/hr''', GB/hr) - ''Resource name:'' '''memory'''
+
* Memory Limit ('''MB''', GB) - ''Resource name:'' '''memory_limit'''
+
* Incoming Bandwidth ('''MB''', GB) - ''Resource name:'' '''bandwidth_incoming'''
+
* Outgoing Bandwidth ('''MB''', GB) - ''Resource name:'' '''bandwidth_outgoing'''
+
* Disk Used (GB/hr) - ''Resource name:'' '''disk_used'''
+
* Disk Limit (GB) - ''Resource name:'' '''disk_quota'''
+
* Public IP (Qnty) - ''Resource name:'' ''' ip_number'''
+
* Private IP (Qnty) - ''Resource name:'' '''ip_number_secondary'''
+
* Disk I/O Limit (/hr) - ''Resource name:'' '''io_limit'''
+
* Disk I/O ps Limit (/hr) - ''Resource name:'' '''iops_limit'''
+
* Backup Space Used (GB/hr) - ''Resource name:'' '''backup_usage'''
+
 
|}
 
|}
  
 +
=Upgrade Guide=
 
{|
 
{|
|style="vertical-align: top; padding: 15px 5px 30px 5px; width: 500px;"|'''Zimbra Email'''
+
|style="padding: 10px 0px 30px 15px;"|Seeking a solution that offers greater flexibility, customization tailored to your precise needs, and unrestricted availability?<br/> 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.<br/>
* Hourly (H)- ''Resource name:'' '''hourly'''
+
* Mailboxes (/hr) - ''Resource name:'' '''mailboxes'''
+
* Email Aliases (/hr) - ''Resource name:'' ''' aliases'''
+
* Domain Aliases (/hr) - ''Resource name:'' '''domain_aliases'''
+
* Storage ('''MB/hr''', GB/hr) - ''Resource name:'' '''storage'''
+
|}
+
  
=Tips=
+
Opt for the [https://www.modulesgarden.com/products/whmcs/advanced-billing#open-source-version Open Source version] of your Advanced Billing For WHMCS module to unlock these benefits.<br/> Simply click on either the '''Get Source Code''' or '''Upgrade To Lifetime''' button found on the product's page in our client area to complete the one-step upgrade process, with a '''dedicated discount''' already applied.<br/>  
{|
+
|style="padding: 10px 0px 5px 15px;"|1. Deactivation of the module removes products' configuration, usage records and awaiting invoices.<br />
+
|}
+
{|
+
|style="padding: 0px 0px 10px 15px;"|2. '' 'Installed Applications' '' usage record supports both Softaculous and Installatron.
+
|}
+
{|
+
|style="padding: 0px 0px 10px 15px;"|3. You can set up as many products as you want.
+
|}
+
{|
+
|style="padding: 0px 0px 10px 15px;"|4. If your client uses currency that is not WHMCS base currency (for example, WHMCS base currency is €, while client uses $): <br/>An invoice for such client will be generated in the chosen currency, while usage record and calculation in Advanced Billing will use base currency.
+
|}
+
{|
+
|style="padding: 0px 0px 10px 15px;"|5. You can modify record names along with their format that are displayed in the '' 'Usage Records' '' section of the client area.<br/>To do this, you need to find a file that is located here: ''' modules\addons\AdvancedBilling\extensions\ClientAreaUsageRecords\lang\english.php'''. <br/> Next, provide the preferred names of records that should be shown up to clients. Please take a look at the below example to see which part of the line can be altered: <br/>
+
<pre> $_LANG['ClientAreaUsageRecords']['Databases'] = 'Your Translation' </pre>
+
|}
+
{|
+
|style="padding: 0px 0px 30px 15px;"|6. If you would like to edit the translation of extensions, you need to proceed to the following file: <br/> ''' your_whmcs\modules\addons\AdvancedBilling\extensions\your_extension\lang '''
+
The translation for the module can be found here: ''' your_whmcs\modules\addons\AdvancedBilling\langs '''
+
|}
+
  
=Update Instructions=
+
Follow a [https://www.docs.modulesgarden.com/How_To_Upgrade_WHMCS_Module 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.  
{|
+
|style="padding: 10px 0px 30px 15px;"|Essential guidance through the process of updating the module is offered '''[https://www.docs.modulesgarden.com/How_To_Update_WHMCS_Module here]'''.<br/><br/>
+
If you switch from Advanced Billing '''v2.x to v3.x''', all data from your previous version of the module have to be migrated to the latest one.<br/>To do so, simply follow the basic steps below:<br/>
+
1. Copy new files to a correct directory in your WHCMS.<br/>
+
2. Proceed to '' 'Setup' → 'Addon Moduels', '' find '' 'Advanced Billing' '' on the list, press '' 'Configure' '' to select a proper database you wish to use.<br/>
+
3. Move to the addon: '' 'Addons' → 'Advanced Billing' '' and run the following script:
+
 
+
/your_whmcs/modules/addons/AdvancedBilling/migrationScript.php
+
 
+
If you '''already own Advanced Billing v3.x''' and would like to switch to a newer version, just overwrite the files as you would do during a regular update.<br/><br/>
+
 
+
Keep in mind there is a quick and easy option in our client area that will let you upgrade the license of your module to an open source version at any time - and at a lower price!<br/>
+
To take advantage of it, simply use the '''License Upgrade''' button located on the product's page and a discounted invoice will be generated automatically.<br/>
+
 
|}
 
|}
  
 
=Common Problems=
 
=Common Problems=
<!--
 
{|
 
|style="padding: 10px 0px 5px 15px;"|1. When you see an error message as shown on the screen below, that means your '' 'cron' '' directory privileges are insufficient.<br />
 
To fix this, allow <strong>Read</strong> permissions to directory. In most cases chmod 755 solves the problem.
 
|}
 
{|
 
|style="padding: 0px 0px 10px 25px;"|[[File:AB2_39.png]]
 
|}
 
-->
 
 
{|
 
{|
 
|style="padding: 0px 0px 10px 15px;"|'''1. When you have problems with connection, check whether your SELinux or firewall does not block ports.'''
 
|style="padding: 0px 0px 10px 15px;"|'''1. When you have problems with connection, check whether your SELinux or firewall does not block ports.'''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 15px;"|2. You have problems with finding the specified line in clientareaproductdetails.tpl.<br />
+
|style="padding: 0px 0px 0px 15px;"|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.<br/>
''Cause 1:'' You use Classic or Portal template.<br />
+
This option will be implemented in future releases of the Advanced Billing module.  
''Solution 1:'' If this is the case, place the required code after this line:
+
<nowiki><div align="center">{$moduleclientarea}</div></nowiki><br />
+
''Cause 2:'' You use extensively customized template.<br />
+
''Solution 2:''  Create a ticket and one of our specialists will help you set up the module.
+
|}
+
{|
+
|style="padding: 0px 0px 10px 15px;"|3. If your cron has encountered an error and cannot start again, please check the cron folder in the '' 'yourWHMCS/modules/addons/AdvancedBilling/cron' '' path.<br />
+
If there is the '' 'pid.php' '' file, delete it and try to execute the cron again. If there is still an error occur, check the details in the [https://www.docs.modulesgarden.com/Advanced_Billing_For_WHMCS#Logs logs].
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 15px;"|4. 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.<br/>
+
|style="padding: 0px 0px 30px 15px;"|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.
This option will be implemented into the Advanced Billing module the future releases.  
+
 
|}
 
|}

Latest revision as of 13:19, 11 February 2025

Contents

[edit] 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.
It automatically generates invoices according to your preferred settings and at customizable intervals, sending them directly to your customers.
Additionally, clients can set up email reminders to notify them when they reach or exceed specified resource usage limits.

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

[edit] 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.
AB4 1.png
2. Extract the package and upload its content into the main WHMCS directory.

The content of the package to upload should look like this.

AB4 2.png
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'.

AB4 2 1.png
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'.

AB4 2 2.png
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'.
Afterward, find 'Advanced Billing' and press the 'Activate' button.

AB4 3.png
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'.

AB4 4.png
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:

  • Cron Memory Limit - limit how much memory the cron can use (in megabytes). If exceeded, the cron will restart. Leave empty or set to 0' to disable the limit.
  • Cron Threads - toggle to enable cron threading.
  • Threads Limit - limit the number of threads for the above function.
  • Thread Accounts - limit the number of accounts per thread
  • Clear Logs - toggle to have the cron clear logs.
  • Clear After [days] - enter how old the logs have to be to be subject to clearing (in days). The default is 365 days.
AB4 5.png

[edit] 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.

[edit] 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.

AB4 6.png
Once your products are added use the action buttons to:
  • Set Pricing
  • Configure Settings
  • Show Related Items
  • Delete Product from the List
AB4 7.png

[edit] Pricing

Set pricing for each usage record for a product.

The pricing list includes information on each usage record:

  • Name
  • Unit
  • Billing Status
  • Extended Pricing

Click on the 'Edit' button to set up billing for a usage record.

AB4 8.png
Under the general tab you can:
  • Enable or Disable Billing for the Record
  • Select Billing Type
    • Last - calculates the total based on the most recent reading only.
    • Summary - sums all collected records and bills based on the cumulative amount.
    • Hourly - averages hourly readings and bills according to that average.
  • Select Unit
AB4 9.png
The pricing tab is where you set:
  • Price - the value per unit that clients will be billed with.
  • Free Usage Amount - the number of set units that, when exceeded, will enable billing.
AB4 10.png

[edit] Product Configuration

The 'Settings' action will take you to the configuration window where you can adjust various features for the product.

[edit] Product Settings

Set general product settings related to summaries, cron frequency and client area integration.
  • Cron Frequency - define how often the cron will run for the product. Use seconds as the unit.
  • Summary Calculation Method - choose how summaries are calculated:
    • Total Sum
    • Total Average (Hourly only)
  • Client Area Integration - toggle to enable client area integration for the product, this option does not add features on its own but is a requisite for other functions to be displayed in the client area.
AB4 11.png

[edit] Module Settings

Configure product module-specific settings such as:

cPanel Extended

  • Application Manager
  • cPanel Theme

Proxmox VE Cloud VPS

  • Free IPv4 Addresses
  • Free IPv6 Addresses

OpenStack

  • OpenStack Timezone
  • Local Timezone

and more.

AB4 12.png

[edit] 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:

  • Create Invoice Every - dictates how often invoices are generated for the product.
  • Minimum Credit - the minimum amount that will be charged from the client account credit balance.
  • Low Credit Notification - if this value is higher than the credits on the client's account, an email will be sent to your client regarding the low credit amount.
  • Email Interval - defines how often low credit notification email will be sent, the interval refers to the number of days.
  • Autosuspend - when the credit balance reaches 0, the product ordered by the client is automatically suspended and an invoice reminding of the lacking amount will be generated.
    Note: This function also takes account of the ''Override Auto-Suspend' feature.
  • Due Date - determines how many days after the invoice is generated the payment is due.
  • Use Client Credits - if enabled, the invoices can be paid with the client credits. If disabled, the default payment method will be used.
AB4 13.png

[edit] 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.
  • Auto Apply Credits - enable to automatically apply user credits if available.
  • Tax - if enabled, the tax will be added to the created invoice.
  • Hours - define a number of hours that must pass before the service is billed at a monthly rate.
  • Due Date - define payment due date.
  • Currency - set the pricing amount in any currency to bill clients after a declared number of hours has passed.
AB4 14.png

[edit] 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.
  • Summation Interval (Days) - define how often summations should be generated.
  • Minimum Credit - determine the minimum amount that will be charged from the client's account.
  • Low Credit Notification - define the credit balance low point when an email notification will be sent.
  • Email Interval - set interval for email notifications, measured in days.
  • Autosuspend - suspend the account automatically if the user does not have sufficient funds.
  • Due Date - number of days between the invoice being generated and due date.
AB4 15.png
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.
Only after the invoice is paid, will the client receive the credits.

AB4 13 1.png

[edit] 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.
  • Invoice on Termination - when the account connected with your module is terminated, an invoice for the account will be generated.
  • Billing Type - enables you to choose how to bill your client.
    • Bill On Invoice Generated - new items will appear on the renewal invoice for the hosting account just as it is generated by WHMCS.
    • Bill On Specific Day - generates invoices each month on the day specified in the 'Billing Type Value'.
    • Bill Every X Days - generates an invoice each X days where X is the number specified in the 'Billing Type Value' field.
  • Due Date - the number of days in which your customers will have to pay the invoice.
  • Auto Generate Invoice - if enabled, the invoices are automatically generated and sent directly to your customers.
  • Auto Apply Credits - automatically applies any available credits when an invoice is created. Works only if the 'Auto Generate Invoice' option is enabled.
  • Show Advanced Billing Information - this will replace any 'Billing Cycle' with 'Hourly Billing' on the product management page in the client area.
  • Apply Group Discount - enable if you want to apply the discount to the invoice set in the client group.
AB4 16.png

[edit] 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.
  • Reminder Limit - limit how many reminders a client can create.
  • Email Template - email template that will be used.
AB4 17.png
The predefined 'Advanced Billing Resource Usage Reminder' features variables that you can also use in your own templates:
  • {$reminder_name} - the name of a reminder set by a client.
  • {$type} - the resource type for which the limit has been set by a client. E. g. 'Storage' , 'Bandwidth' etc.
  • {$usage} - the current recorded usage value of the resource type the limit is set for.
  • {$limit} - the limit value defined by a client whose reaching or exceeding results in sending the notification.
  • {$unit} - the unit of the billed record. E.g. 'MB' , 'GB' etc.
AB4 17 2.png
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.

AB4 17 1.png
Provide the following:
  • Name - name your reminder, it is used in the default notification template.
  • Checks Frequency - how often a resource check is performed, in hours.
  • Reminders Frequency - limits how often a reminder can be sent, in hours.
AB4 17 3.png
Once the reminder is added, it can be managed using the action buttons:
  • Edit Reminder
  • Define Limits
  • Delete
AB4 17 4.png
While defining the limits, you can scroll the list of resources horizontally.
The fields for each include:
  • Used - current recorded usage of the given resource.
  • Operator - logical operator used for the argument.
  • Value - the value for the logical operation.

For example, we can set the reminder to be sent after the bandwidth is 'is more' than 20000MB, as shown on the screen below.

AB4 17 5.png
Make sure to enable the reminder after the limits are defined for it.
AB4 17 6.png

[edit] 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.
  • Display Summary From - defines the period for which usage records will be counted.
  • Usage Records Precision - the number of decimal digits indicating the precision of usage records.
  • Records History - displays history of usage records.
  • Display Usage Records Pricing - displays usage record pricing for the product during the order process.
AB4 18.png
Enabling the extension will display the current usage in the client area.
Enabling the 'Records History' function will also display usage from previous periods.
AB4 18 2.png
The 'Display Usage Records Pricing' will display the pricing table when clients prepare thier order.
AB4 18 1.png

[edit] 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.
After enabling the feature with the 'Enable Free Limit' toggle, select the configurable options responsible for the resources below.
The configurable option has to be created for the product first. The configurable option value represents the resource in units selected under 'Products' 'Pricing'.
Leave fields empty, to not enable the free limit on selected resources.

AB4 19.png

[edit] 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.
AB4 20.png
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.

AB4 20 1.png

[edit] 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.

AB4 21.png
Depending on the settings, clients will be able to:
  • Enable/disable automatic upgrades for their product.
  • Set a minimum time interval that has to pass between upgrades.
  • Include/exclude certain upgrade options.
  • See and/or change upgrade conditions.
  • See their upgrade history.
  • Set upgrade notifications based on resource usage.
AB4 21 1.png

[edit] 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.

[edit] Item List

You can find the 'Item List' under 'Items'.

The list includes information such as:

  • Item ID
  • Hosting Name
  • Client Name
  • Total Amount
  • Last update

And action button responsible for:

  • Viewing details
  • Viewing the graph
  • Deleting the item from the list
AB4 22.png
You can mark multiple items with the mass delete function when necessary as well.
AB4 23.png
Clicking on the 'View Details' button will display the page with all the usage recorded.

The page includes action buttons responsible for:

  • Deleting the item
  • Generating an invoice for the item
AB4 24.png
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.
AB4 25.png
Select the resources and time scope you would like the graph to include.
AB4 26.png

[edit] Item Archive

You can find the 'Item Archive' under 'Items'.
It included items that are already billed.

The list includes information such as:

  • Item ID
  • Hosting Name
  • Client Name

And action button responsible for:

  • Viewing details
  • Deleting the item from the list
AB4 27.png
You can mark multiple items with the mass delete function when necessary as well.
AB4 28.png
Finally, you can flush your archive, deleting items meeting the criteria set in Item Archive Configuration.
AB4 28 1.png

[edit] Billing

All billing related management can be found under the 'Billing' section.

This includes 'Invoices' and 'Credits'.

[edit] Invoices

Invoices created both automatically and manually can be found here.

The invoice list includes:

  • Invoice ID
  • Client Name
  • Hosting Name
  • Product Name
  • Total
  • Date
  • Due Date

And action buttons responsible for:

  • Generating the invoice
  • Displaying details
  • Deleting the invoice
AB4 30.png
You can also utilize the mass function to generate or delete multiple invoices at once.
AB4 31.png
Invoice details consist of editable fields such as:
  • Invoice Date
  • Invoice Due Date

and every billed item with its:

  • Description
  • Amount
  • Tax toggle
AB4 32.png

[edit] Credits

This tab lists all credit top-ups issued by the clients with the 'Credit Billing' function.

The list includes:

  • Client Name
  • Hosting
  • Credits Reserved
  • Amount Paid

and an action button allowing the admin to 'Refund' the credits to WHMCS 'Credit Balance'.

AB4 33.png
Multiple top-ups can be selected to refund them at the same time.
AB4 33 1.png

[edit] 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.

[edit] Configuration

Find the 'Configuration' tab under ' Product Auto Upgrade' and click on 'Add Group' to add a new group.
AB4 34.png
As you create the group, complete the following fields:
  • Name - name the group, the name will not be visible to clients.
  • Product - select the product the group will be applicable for.
  • Configurable Options Group - optionally include a configurable options group.
AB4 34 1.png
Once the group is added, the action buttons will allow you to:
  • Edit the group's settings.
  • Add and manage upgrade options within the group.
  • Delete the group from the list.
AB4 35.png
While editing the settings you will be able to change:
  • Group Name
  • Server Type
  • Time Interval - how often upgrades can happen (in minutes).
  • Notification Time Interval - how often the notification can be sent (in minutes).
AB4 36.png
You can also change what the client is allowed to do:
  • Client Rules Configuration - display rules configuration in the client area.
  • Rules Configuration - enable clients to change the upgrade rules for themselves.
  • Rules Disable - permit clients to disable some of the upgrade rules.
  • Time Interval - give clients the option to modify upgrades time interval.
  • Time Interval Values - define the allowed range for upgrades time interval (minutes).
  • Notifications - allow clients to manage notifications.
  • Notifications Time Interval - allow clients to modify notifications time interval.
  • Notifications Time Interval Values - define the allowed range for notifications time interval (minutes).
AB4 37.png
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.

AB4 38.png
Use the action buttons to:
  • Edit - define the upgrade and downgrade rules.
  • Change Package - select which package will be used for the option.
  • Change Description - add descriptions to each option's configuration.
  • Delete - delete the option from the group.
AB4 39.png
The mass action feature can also be used to delete or change packages for multiple options at once.
AB4 40.png
Click the 'Edit' button and define rules for both upgrades and downgrades, by selecting the 'Comparison Type' and 'Threshold' for any of the options.
AB4 41.png

[edit] 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:

  • Hosting ID
  • Client Name
  • Product Name
  • Option ID

The 'Details' action button will display more information on a specific account.

AB4 43.png
The details include a list of auto upgrades complete with:
  • Date of the update
  • Type
  • Option before the upgrade
  • Option after the upgrade
  • Message regarding the action taken
AB4 44.png

[edit] 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'.

AB4 44 1.png
Options may include:
  • Enable Auto Upgrade - can be turned off to disable auto upgrades altogether.
  • Time Interval - change the minimum time that has to pass between upgrades.
AB4 44 2.png
Under the 'Rules Options' tab, the client can select which rules to enable.
AB4 44 3.png
Service upgrades are recorded and displayed in the 'Auto Upgrade History' table.
AB4 44 4.png
Notification messages for upgrades can be set up by the user, first, click on the additional actions button.
AB4 44 5.png
Enable the function and select the interval between each message.
AB4 44 6.png
To add a new notification use the 'Add Notification' button.
AB4 44 7.png
Select the resource, comparison and unit for the notification.
AB4 44 8.png
You can add as many notifications as you would like.
Action buttons allow you to edit or delete the notification.
AB4 44 9.png

[edit] Settings

[edit] 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.

[edit] 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.
  • Clear Automatically - Enable to automatically clear the item archive under specified conditions.
  • Flush Interval - Decide how often (in days) the flush should happen.
  • Delete Archive Items Older than - Decide how old the archive items have to be to be subject for deletion during flush.
AB4 5 1.png

[edit] Other

Other useful tools and features directly related to the module functioning can be found in the 'Other' section.

This includes:

  • Translations Tool
  • Access Control
  • Module Logs

[edit] 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.

AB4 tr.png

[edit] 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.

[edit] 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.

AB4 46.png
Fill out the following fields to create resources access rule:
  • Rule Name - Pick a name for your rule.
  • Grant Full Access - Enable to grant full access to all sections of the module to the specified personnel. Disable to specify in two additional fields below, to which resources access will be granted, and to which it will be denied.
  • Allow Access To - Designate the resources that the specified personnel will have access to.
  • Restrict Access To - Specify the resources that the specified personnel will not have access to.
  • Administrators - Specify which singular administrators will be subject to the new rule. If the specific administrator is already included in the group you have picked, you do not need to add him separately.
    Note: All restrictions for specific administrators are summed with the restrictions on their role groups, across all rules.
  • Administrator Roles - Specify which administrator role groups will be subject to the new rule.

Important: When picking specific sections, keep in mind that allowing a parent section will also allow all of its children.
For example by allowing 'Access Control' you allow every section of it
If you would like to give access to everything about Access Control, but the ability to delete logs, you can pick 'Access Control' in 'Allow Access To' and then 'Access Control → Logs → Delete' in 'Restrict Access To.'
Restrict takes precedence over Allow, so if a specific section is included in both, it will be restricted.

AB4 47.png
To edit or delete existing rules, use the icons to the right.
AB4 48.png

[edit] 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.
AB4 49.png

[edit] Access Control Logs

The logs section includes:
  • Log ID
  • Name of the administrator
  • Requested resource
  • Applied Resource
  • Rule Name
  • Date

Use the trash bin icons to delete specific logs, or utilize the mass action function to delete multiple logs at once.

AB4 50.png

[edit] 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:

  • Error
  • Info
  • Both (Total)
AB4 51.png
You can delete logs either one by one or with the mass function.
AB4 52.png
Additional actions include:
  • Logging Settings
  • Log Export
  • Rule Based Deletion
AB4 53.png
In the settings you may decide:
  • Log Types - which type of logs should be recorded.
  • Clear automatically - if you would like to automatically delete logs older than defined number of days.
  • Delete Logs Older Than - how many days should pass before logs are automatically deleted.
AB4 54.png
While exporting you will have to specify which logs to export:
  • From
  • To
  • Log Types
AB4 55.png
You may also delete specific logs without finding them manually.
Simply define:
  • Log Types
  • Delete Logs Older Than
AB4 56.png

[edit] 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.

[edit] Update Instructions

Essential guidance through the process of updating the module is offered here

Ensure successful completion of the module update by carefully following each step, thereby preventing data loss or any unforeseen issues.
Additionally, you will find a current list of supplementary actions necessary for a smooth update process there.

[edit] Module Upgrade From V3.X to V4.X

Upgrading from version 3.X to 4.0 requires additional steps due to the changes in the module structure. Please follow the instructions carefully to ensure a smooth transition.
  1. Optionally backup your language files and license.
  2. Delete all old module files.
  3. Upload new module files from version 4.0.
  4. Re-add the license to license.php and reissue it in your client area.
  5. Cron Job Update:
    • Delete the old cron job.
    • Kill the cron process.
    • Run the upgrade command:
      php -q whmcs/modules/addons/AdvancedBilling4/cron/cron.php upgrade run "4.0.0" 
    • Set the new cron job, make sure to replace 'your_WHMCS' with your WHMCS directory path:
      php -q /your_WHMCS/modules/addons/AdvancedBilling4/cron/cron.php cron 

[edit] 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.
Simply click on either the Get Source Code or Upgrade To Lifetime button found on the product's page in our client area to complete the one-step upgrade process, with a dedicated discount already applied.

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.

[edit] 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.
Navigation
WHMCS Modules
WHMCS Widgets
Tools And Applications
Translations
cPanel Modules
General
FAQ
Community
Advanced Billing For WHMCS