Recurring Contract Billing For WHMCS
Contents |
About Recurring Contract Billing For WHMCS
Recurring Contract Billing For WHMCS will allow you to draw up fixed-term contracts for your clients concerning the offered products and services. You will be able to define which products require contract acceptance, then set the time span of each contract along with its possible discount and penalty amount. |
- Admin Area Features:
✔ Create, View And Manage Signed Contracts |
✔ Create Multiple Contracts Per Product |
✔ Request Contract Signing For Selected Service |
✔ View Recently Signed And Ended Contracts |
✔ View Contracts And Revenue Summaries |
✔ Configure Contract Content |
✔ Configure Contract Signature Types |
✔ Define Time Of Notifications Before Contract Expiration |
✔ Define Time After Which Contract Is Defined As Broken |
✔ Define Services Suspension Rules |
✔ Customize Module Language Files With "Translations" Tool |
✔ Control Staff Access Level To Specific Resources With ACL |
✔ View And Manage Logs |
- Contact Features:
✔ Define Contract Content In Multiple Languages: |
✔ Create Contract Content With WYSIWYG Editor |
✔ Use Merge Fields For Contract Template |
✔ Create Contract Templates: |
✔ Assign Product To Contract Template |
✔ Define Discounts And Penalty Types |
✔ Define Multiple Contracts Sets For Specified Currencies And Billing Cycles: |
✔ Define Contract Length - Up To 5 Years |
✔ Define Discount And Penalty Amounts |
✔ Define Days Before Expiration To Cancel Contract Without Penalty |
✔ Define Trial Period Length |
✔ Define Time To Send Renewal Notification |
✔ View Total And Recurring Prices |
✔ View Amount Of Penalty |
✔ Choose Contract Signature Type: |
✔ Adobe Acrobat Sign |
✔ Checkbox |
✔ DocuSign |
✔ Dropbox Sign |
✔ File Upload |
✔ SignNow |
✔ Define Contract Length Selection Type: |
✔ Dropdown Menu |
✔ Radio-Button |
✔ Allow Orders Without Contract |
✔ Define Renewal Type |
✔ Renewal Without Contract |
✔ Renewal With Contract |
✔ Cancel |
✔ Toggle Availability Of Cancellation Request |
- Client Area Features:
✔ Choose Contract Length During Order |
✔ View Contract Content Before Accepting It |
✔ Sign Contract Using Configured Signature Type |
✔ View Details Of All Signed Contracts |
✔ View History Of Any Signed Contract |
✔ Receive Contract Email Notification Upon Order Creation |
- General Info:
✔ Multi-Language Support With Custom Translations Tool |
✔ Supports PHP 8.2 Back To PHP V8.1 |
✔ Supports WHMCS Themes "Six", "Twenty-One" And "Lagom WHMCS Client Theme" |
✔ Supports WHMCS V8.12 Back To WHMCS V8.9 |
✔ Requires ionCube Loader V13 Or Later |
✔ Easy Module Upgrade To Open Source Version |
Installation and Activation
This tutorial will show you how to successfully install and configure Recurring Contract Billing For WHMCS. We will guide you step by step through the whole installation and configuration process. |
Installation
1. Log in to our client area and download the module. |
2. Extract the package and upload its content into the main WHMCS directory.
The content of the package to upload should look like this. |
3. When you install Recurring Contract Billing For WHMCS for the first time you have to rename 'license_RENAME.php' file. The file is located in 'modules/addons/recurring_billing/license_RENAME.php'. Rename it from 'license_RENAME.php' to 'license.php'. |
4. To configure your license key, you have to edit the previously renamed 'license.php' file. Enter your license key between quotation marks as presented on the following screen. You can find your license key in our client area → 'My Products'. |
5. The next step is setting up 'storage' folder as recursively writable. It is located in 'your_whmcs/modules/addons/RecurringContractBilling/'. |
Activation
7. Now, you have to activate the module in your WHMCS system. Log in to your WHMCS admin area and proceed to 'Setup' → 'Addon Modules'. |
8. In the next step, you need to permit access to this module. To do so, click on 'Configure' button, tick checkboxes to assign desired admin roles. |
9. Finally, set up the cron command line provided below and define its frequency (1 day interval is suggested).
php -q /yourWHMCS/modules/addons/RecurringContractBilling/cron/cron.php dailyCron The cron features multiple commands:
You can set up each function as a separate cron, or set up 'dailyCron' to utilize all functions simultaneously. |
10. You have just successfully installed Recurring Contract Billing For WHMCS! |
Configuration and Management
Once you have properly installed and activated the product you may move to its actual configuration. Read the below sections to learn how to use Recurring Contract Billing For WHMCS completely. |
Configuration
In order to start using your Recurring Contract Billing For WHMCS move to 'Addons → Recurring Contract Billing'. By default, you will be moved to the addon's dashboard with a guide opened. You will find short notes on how to configure the product there. |
Hide the guide when you have completed the configuration and learned how to reconstruct the process. You can do that under 'Utilities' → 'Configuration.' |
Contract Content
First of all, create your first contract's content. To do so, move to the 'Contracts' → 'Contract Content' section and press the 'Create Content' button. Decide on a name for your contract content and press 'Confirm.' |
You will be automatically moved to the content editing page. Here you can compose the content of a contract. Fill out the field with 'Content', you may use 'Merge Fields' to do so, those are categorized into:
Those can be combined Smarty functions such as |
You can also change the content's name in the 'Name' bracket. Moreover, you may compose the contract translation. |
Use action buttons to edit the contract again or delete it if you are sure it is no longer needed. |
Sign Types
Under 'Utilities' → 'Sign Types' you can configure the methods of signing contracts, which you will then be able to use for creating a contract template. You can configure the following methods:
Note: The checkbox sign method does not require any configuration, but you will still be able to select it when creating a contract template. |
Adobe Acrobat Sign
The Enterprise plan of Adobe Acrobat Sign is required to use this option. Take the following steps to set it up: 1. Log in to your Adobe Acrobat Sign profile. |
4. Enter the 'Name' and 'Display Name' of your application and select 'CUSTOMER' domain. Press 'Save' when ready. https://yourdomain.com/modules/addons/RecurringContractBilling/app/Api/adobeSignAuthorize.php Note: Provided URI also has to start with https:// . |
9. Now return to the configuration of the WHMCS module and enter the previously obtained data. |
10. You will have to confirm your access to the authorization for Adobe Acrobat Sign. |
11. Finally, if you provided all data correctly you should receive the notice that authorization has been completed successfully. |
DocuSign
You need to have at least the Basic API plan of DocuSign to use this option. 1. You can set it up in to ways: 2. After successful login to the selected environment, select 'Apps and Keys' tab under the 'Integrations' section on the left side menu. |
4. Name the app/key. |
6. Generate your Private Key, to do so press "Generate RSA" under 'Service Integration'. Once ready a new window with generated keys will appear, copy the private key. 7. In 'Redirect URIs' tab press 'ADD URI' button. There, you need to provide a proper callback 'Redirect URIs' from your WHMCS installation in the following format: https://yourdomain.com/modules/addons/RecurringContractBilling/app/Api/docuSignAuthorize.php Note: Provided URI also has to start with https:// . |
8. You will also need your 'User ID: |
9. Now return to the configuration of the WHMCS module where you can enter the previously obtained data.
Choose if you are using a demo environment |
10. You will have to confirm your access authorization for DocuSign. |
11. Finally, if you provided all data correctly you should receive notice that authorization has been completed successfully. |
Dropbox Sign
A Dropbox Sign standard account is required to use this option. Please take the following steps to set it up: 1. Log in to your Dropbox Sign profile. |
5. Now return to the configuration of the WHMCS module and enter the API Key and your Dropbox Sign login email. |
6. Finally, if you provided all data correctly you should receive the notice that authorization has been completed successfully. |
File Upload
Here you can configure the minimum and maximum size of files uploaded by your clients as contract signs. Note: Currently all image, MS Word and PDF formats are supported for upload.
So, if you want to allow uploaded files e.g. being in between 1 and 8 megabytes in size provide '1024' and '8192' values accordingly. |
SignNow
A SignNow account is required to use this option. Take the following steps to set it up: 1. Log in to your SignNow profile. |
4. Copy your 'Basic Authorization Token'. |
9. Now return to the configuration of the WHMCS module and enter the following fields.
If you are using a trial SignNow account, enable the demo mode. |
11. Finally, if you provided all data correctly you should receive the notice that authorization has been completed successfully. |
Contract Templates
Now, that you have a contract's content draft, move to 'Contracts' → 'Contract Templates'. In this section, you can predefine which contract content draft a specific product a template will refer to. |
Fill out the contract template form. Name the template and choose content names from the ones you prepared previously (see the 'Contract Content' section). Select the product that this template will be available with. Note: You can assign only one template to a single product, it is not possible to alter the product assignment once you save the changes! Define one of the methods by which your customers will be able to sign contracts. Choose from the following:
Note: Don't forget to set up their initial configuration.
Finally, you may decide whether to allow your clients to cancel the contract while it is active or not. |
In the case of the DocuSign template, you may also define the exact position of the signature on the contract together with the page number and sign phrase. Please refer to the following article to learn how to position the signature. If you cannot see the relevant section, make sure to choose DocuSign as Sign Type and confirm changes. If you wish to provide the phrase under which a client will sign a contract (this phrase has to be included in its content), please use the 'Sign Phrase' configuration field. Note: If you cannot see the relevant 'Signature' section next to the 'Template' section, try clicking on 'Confirm' first and see if it appears. |
Once you have added a new template, you have to create 'Contract Lengths'. An appropriate box should appear next to the template form. Pick a currency and billing circle. Once those are specified, click on 'Create Length' to begin. |
In this form you can define:
Click on 'Confirm' when finished. |
Module Configuration
The last step mentioned in the 'Guide' is setting up 'Notifications,' 'Default Penalty Grace Period,' and 'Service Suspension Rules'. These options can be found under 'Configuration' tab in 'Utilities' section. Select which email notifications you want your clients to receive and enter the number of days before the due date to send the notification. |
Move to 'System Settings' → 'System' → 'Email Templates' → 'General Messages' in your WHMCS to view and edit the notifications. You will find them under 'Ending Contract Notification' name. |
Define how the 'Contract Lengths' will be displayed in the Client Area, by choosing the 'Field Type.' |
Define number of days when a client can be late with payment. If a client misses making payment for longer than the number of days specified here, a penalty will be imposed on such client. Note: Penalty type and amount are specified in the 'Contract Template' details. |
You may decide if services shall be automatically suspended after the provided number of days pass, without the client signing the contract. You may exclude services ordered before a certain date from this option. |
Finally, you can turn off the guide or turn it on again once you have hidden it. 'Save' the changes once your configuration is ready. |
Management
In the following sections we will try to explain how previously configured contracts are imposed on clients. |
Client Area
Place Order
To illustrate the process, let's say a client orders one of your products with recurring payment (it is important that you have previously prepared a contract for this product). Once the client reaches checkout, the contract field appears. They may choose the contract length from available options, view the contract and sign in. |
If the client tries to complete the order without signing the contract, this error message will be displayed. Note: You can add an option to order the product without signing the contract by choosing 'Order Without Contract' while adding 'Contract Lengths' in the module addon. |
Service Contracts
To view all accepted contracts, find the 'My Contracts' tab. |
There is a full list of client's contracts with the most important information about them. Including: 'Product/Service Name,' 'Recurring Amount,' 'Sign Date,' 'Contract Length' and 'End Date' as well as its 'Status.' Use action buttons to:
|
View the contract's details. Press 'Show' to see its details directly in the client area or press 'Download' to obtain its PDF version. If conditions are met, at the bottom of the contract the client will find buttons to renew or cancel the contract.
|
History of any changes in the contract content: Click on the 'Page' icon to see the previous version of the contract. |
Signed Contracts
In 'Signed Contracts' section under 'Contracts' you will find a list of all contracts accepted by your clients. On the main page, you can see the name of the client with the service used, the recurring payment amount for their product, and contract details such as signing and ending dates, length and status. |
On this page, you can once again see details of a contract accepted between you and the client. You are allowed to modify the content, status and details of this very contract. Note that used 'Contract Content' will not be altered, only the signed item. |
In case you decide to make any changes to the contract, the previous (before changes) version of the contract is added to the 'History'. Thanks to that, you may always come back to the original. |
Create Contract
Above the list of 'Signed Contracts', you will find 2 buttons. 'Create Contract,' and 'Request Signing.' |
Let us cover 'Create Contract' first. Clicking on the button will redirect you to the form where existing contracts, for example, signed manually, can be uploaded into the module and managed. First of all, select the client. Then pick the service the uploaded contract is related to, or select none if your contract is an independent document. |
'Request Signing' allows you to send emails directly to your clients requesting them to sign a contract for a specific product and specific length. |
Dashboard
On the Dashboard of your addon you will find the most important information in a nutshell. These are:
|
Translations
Customizing language files is now extremely easy with the "Translations" tool that is now available directly in the addon. Its user-friendly design makes managing various language file tweaks a smooth and efficient process. Prepare translations for the original English files with this handy built-in tool. For specific instructions on how to use this tool please refer to its dedicated article, you will find it here. |
Access Control
'Access Control' allows you to specify and control exactly which sections of the module can be accessed by your administrators. The way it works is that you create access control rules in which you decide if a specific admin, or admin role has full access, or is restricted to only specific sections. |
Rules
Start with creating a new rule, click on the 'Create Rule' button and a dedicated form will appear. Below you will find a description of every field required in the form. |
Fill out the following fields to create resources access rule:
Important: When picking specific sections, keep in mind that allowing a parent section will also allow all of its children. |
To edit or delete existing rules, use the icons to the right. |
Resources
Use the toggles in the 'Resources' section to specify which of them should be subject to logging, found in the 'Logs' section. Every time an administrator requests a toggled resource, it will be recorded. |
Access Control Logs
The logs section includes:
Use the trash bin icons to delete specific logs, or utilize the mass action function to delete multiple logs at once. |
Logs
In the 'Logs' section any attempted actions on any contract are recorded and stored for your convenience. Use the action buttons to see details or delete each log entry. Multiple logs can be deleted at once by utilizing the mass selection function. |
Furthermore, the logs feature additional actions. Changing the logs' settings, exporting the logs to a '.csv' file, and a way to delete specific log types. |
In the settings you can specify which log types should be recorded, and whether they should be deleted automatically after a specific time. |
While exporting you will pick a time frame and the log types to export. |
Here you can decide which log types to delete, you can also specify how old the logs have to be to qualify for deletion. Leave the first field empty to delete all logs. |
Advanced Billing For WHMCS Integration
It is possible to combine your Recurring Contract Billing For WHMCS module with one of our most favored products: Advanced Billing For WHMCS. In order to configure the two modules to work together move to 'Advanced Billing addon' → 'Configuration' and find the product you want to work with. |
When ready, Recurring Contract Billing For WHMCS will be in constant cooperation with the other module within the configured product. If you want to combine the functionalities of the two modules for more than one product, please remember to select the 'Bill On Invoice Generation' option for all of them. |
Tips
1. The contracts are automatically broken in two cases:
|
2. As this module supports a template system, any changes made in the module's template files will be saved after the update process. |
Update Instructions
An 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. |
Important: If you are updating the module from a version prior to 2.0.0, you must deactivate the old addon module and delete its files before performing the update. This will ensure all potential conflicts are avoided. To migrate your data, after activation of the new version, use the migration cron prepared for you in 'Utilities' → 'Configuration' → 'Migration Tool' php -q /yourWHMCS/modules/addons/RecurringContractBilling/cron/cron.php migrate Because of new redirect URIs, the connection between the module and the sign providers will need to be re-established. |
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 Recurring Contract Billing For WHMCS module to unlock these benefits. Follow a comprehensive guide covering the transition process, the advantages it brings, and step-by-step instructions on what to do next after the order has been successfully finalized. |
Common Problems
1. When you have problems with connection, check whether your SELinux or firewall does not block ports. |
2. Remember that Recurring Contract Billing For WHMCS contracts can be applied to products with recurring payment type only. |