<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://3.19.219.109/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=JoshQ</id>
		<title>WHMCS Documentation - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://3.19.219.109/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=JoshQ"/>
		<link rel="alternate" type="text/html" href="http://3.19.219.109/Special:Contributions/JoshQ"/>
		<updated>2026-04-03T19:32:10Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.29.1</generator>

	<entry>
		<id>http://3.19.219.109/index.php?title=Invoicing_Issues&amp;diff=34575</id>
		<title>Invoicing Issues</title>
		<link rel="alternate" type="text/html" href="http://3.19.219.109/index.php?title=Invoicing_Issues&amp;diff=34575"/>
				<updated>2024-05-22T16:03:15Z</updated>
		
		<summary type="html">&lt;p&gt;JoshQ: /* Double Invoices/Charges/Blank Invoices */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There may be occasions when the system doesn't generate invoices properly. The problem is usually a misconfiguration or human error.&lt;br /&gt;
&lt;br /&gt;
==Invoices/Payment Reminders not Generated==&lt;br /&gt;
&lt;br /&gt;
Make certain to deselect '''Overdue Notices''' in the client's '''[[Clients:Profile Tab|Profile]]''' tab. This prevents the system from sending overdue notices to the client.&lt;br /&gt;
&lt;br /&gt;
If the email templates do not exist, the system cannot send an email. Go to '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Email Templates]]''' or, prior to WHMCS 8.0, '''Setup &amp;gt; Email Templates''' and ensure the '''Invoice Created''' and '''Overdue Notice''' email templates display.&lt;br /&gt;
&lt;br /&gt;
Invoice generation, payment reminders, and account suspensions and terminations are some of the tasks that the daily [[Crons|cron job]] handles in accordance with your [[Automation Settings|automation settings]]. If you find that some or none of the above are occurring, this could indicate the cron job is not running successfully.&lt;br /&gt;
&lt;br /&gt;
Review '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; [[System Logs]]''' ('''Utilities &amp;gt; Logs''' in WHMCS 7.x and earlier) and make sure that you see a number of entries beginning with ''Cron Job'' each day. The final entry every day should be ''Cron Job: Completed''.&lt;br /&gt;
&lt;br /&gt;
* If you see no cron job entries, this means you have not configured your automation cron job correctly. You must do this per our installation instructions. For more information, see [[Crons|Crons]].&lt;br /&gt;
&lt;br /&gt;
* If you see some cron job entries, but none after ''Cron Job: Running Usage Stats Update'', your cron job is getting stuck at the '''Usage Stats Update''' stage. The most likely cause of this error is that you have an old server in '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Servers]]''' or, prior to WHMCS 8.0, '''Setup &amp;gt; Products/Services &amp;gt; Servers''' that is no longer available.&lt;br /&gt;
** To resolve this, update or remove any inactive or offline servers so that they can all connect successfully. &lt;br /&gt;
** Alternatively, you can disable '''Update Usage Statistics''' under '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Automation Settings]]''' or, prior to WHMCS 8.0, '''Setup &amp;gt; Automation Settings'''.&lt;br /&gt;
&lt;br /&gt;
* If you see some cron job entries but no ''Cron Job: Completed'' entry, your server may be prematurely terminating the cron job. Increase the &amp;lt;tt&amp;gt;memory_limit&amp;lt;/tt&amp;gt; setting in your server's &amp;lt;tt&amp;gt;php.ini&amp;lt;/tt&amp;gt; file to 64 MB or 128 MB. Then, check whether you start getting the cron job report again over the next few days.&lt;br /&gt;
&lt;br /&gt;
If the cron job still doesn't complete with the increased memory limit, make sure that &amp;lt;tt&amp;gt;display_errors&amp;lt;/tt&amp;gt; is enabled in the server's PHP configuration. Enable '''Display Errors''' in the '''[[Other Tab|Other]]''' tab at '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; General Settings''' or, prior to WHMCS 8.0, '''Setup &amp;gt; General Settings'''. Then, visit the &amp;lt;tt&amp;gt;cron.php&amp;lt;/tt&amp;gt; file in your browser to run the cron manually. You should now see error output. &lt;br /&gt;
&lt;br /&gt;
For more information about the most common errors and their causes, see:&lt;br /&gt;
&lt;br /&gt;
*[[Server Modules]]&lt;br /&gt;
*[[Domain Registrars]]&lt;br /&gt;
*[[Common_Troubleshooting_Tips#Server_Errors]]&lt;br /&gt;
&lt;br /&gt;
==Items Not Invoicing==&lt;br /&gt;
&lt;br /&gt;
There are a couple of reasons for invoices not generating. The most obvious reason is that there's a cancellation request for the service or it's in cancelled, terminated, fraud or expired status. For domains, selecting the '''Disable Auto Renew''' option stops the system from generating renewal invoices automatically. It could also be that the cron job is not running. For more information, see [[#Invoices/Payment Reminders not Generated|the section above]].&lt;br /&gt;
&lt;br /&gt;
The system only generates invoices when the service's '''Next Due Date''' is within the '''Invoice Generation''' setting at '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Automation Settings]]''' or, prior to WHMCS 8.0, '''Setup &amp;gt; Automation Settings'''. &lt;br /&gt;
&lt;br /&gt;
For example, if the '''Next Due Date''' is in the future, the system won't generate an invoice. If today's date is 01/01/2012:&lt;br /&gt;
&lt;br /&gt;
Next Due Date: 07/01/2012&amp;lt;br /&amp;gt;&lt;br /&gt;
Invoice Generation: 7&amp;lt;br /&amp;gt;&lt;br /&gt;
= Invoice '''will''' generate.&lt;br /&gt;
&lt;br /&gt;
Next Due Date: 08/01/2012&amp;lt;br /&amp;gt;&lt;br /&gt;
Invoice Generation: 7&amp;lt;br /&amp;gt;&lt;br /&gt;
= Invoice '''not''' generated.&lt;br /&gt;
&lt;br /&gt;
If it's none of those, then it's possible that the system generated an invoice that was then deleted by a member of staff. Check the client's '''[[Clients:Log Tab|Log]]''' tab for any ''Invoice Deleted'' or ''Order Deleted'' entries. WHMCS never generates duplicate invoices for the same service on the same due date, so if you require a new invoice after deleting an invoice, you must manually move the '''Next Due Date''' forward or back by one day.&lt;br /&gt;
&lt;br /&gt;
==Double Invoices/Charges/Blank Invoices==&lt;br /&gt;
&lt;br /&gt;
There are several invoicing issues that a common misconfiguration can cause. The system may generate two invoices for the same service and due date, may double-charge a client for the same invoice, or may generate a completely blank invoice.&lt;br /&gt;
&lt;br /&gt;
A cron job running twice at the same time can cause this. The cron job should only run once per day, and should never run simultaneously. To confirm this, review '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; [[System Logs]]''' ('''Utilities &amp;gt; Logs''' in WHMCS 7.x and earlier). There should only be one ''Cron Job: Starting Daily Automation Tasks'' and one ''Cron Job: Completed Daily Automation Tasks'' entry per day. If there is more than one of either of these entries, check the server's cron job configuration to ensure there is only one entry for the &amp;lt;tt&amp;gt;cron.php&amp;lt;/tt&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
For more information, see our [[Crons]] documentation.&lt;br /&gt;
&lt;br /&gt;
==Tax Not Applied to Invoices==&lt;br /&gt;
&lt;br /&gt;
If the system has not applied tax, WHMCS may be operating as though it is not eligible under your tax rules. &lt;br /&gt;
&lt;br /&gt;
First, ensure that tax is enabled and that you have selected the relevant '''Apply Tax''' options at '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Tax Configuration]]''' or, prior to WHMCS 8.0, '''Setup &amp;gt; Payments &amp;gt; Tax Configuration'''. If it's an invoice for a product, ensure this option is selected in the product configuration.&lt;br /&gt;
&lt;br /&gt;
Secondly, ensure that '''Tax Exempt''' is deselected on the client's '''[[Clients:Profile Tab|Profile]]''' tab. A member of staff or our [[EU_VAT_Addon|EU VAT Invoicing]] addon module may have selected this.&lt;br /&gt;
&lt;br /&gt;
Finally, the client might not match any of your tax rules. The state and country must be '''exact''' matches and are case sensitive. For example, if a tax rule exists for the state ''TX'' and the client's state is ''Texas'', these do not match and the system would not apply tax. This scenario would require two tax rules, one for ''TX'' and another for ''Texas''.&lt;br /&gt;
&lt;br /&gt;
The system will apply any changes to subsequent invoices, but will not change existing invoices.&lt;br /&gt;
&lt;br /&gt;
==Multiple Invoices for the same Service==&lt;br /&gt;
&lt;br /&gt;
The system may generate multiple invoices for the same service with different due dates if the service has a due date in the past. This usually occurs with services that you import or a staff member manually added, in which the '''Next Due Date''' is &amp;lt;tt&amp;gt;00/00/0000&amp;lt;/tt&amp;gt;. As this due date is in the past, WHMCS generates all invoices between then and today to ensure the client has paid their balance in full.&lt;br /&gt;
&lt;br /&gt;
To correct this, change the '''Next Due Date''' to the date of the client's next payment via their '''[[Clients:Products/Services Tab|Products/Services]]''' tab. You can safely delete or cancel any erroneous invoices.&lt;br /&gt;
&lt;br /&gt;
{{troubleshooting}}&lt;/div&gt;</summary>
		<author><name>JoshQ</name></author>	</entry>

	<entry>
		<id>http://3.19.219.109/index.php?title=Invoicing_Issues&amp;diff=34574</id>
		<title>Invoicing Issues</title>
		<link rel="alternate" type="text/html" href="http://3.19.219.109/index.php?title=Invoicing_Issues&amp;diff=34574"/>
				<updated>2024-05-22T16:02:51Z</updated>
		
		<summary type="html">&lt;p&gt;JoshQ: /* Double Invoices/Charges/Blank Invoices */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There may be occasions when the system doesn't generate invoices properly. The problem is usually a misconfiguration or human error.&lt;br /&gt;
&lt;br /&gt;
==Invoices/Payment Reminders not Generated==&lt;br /&gt;
&lt;br /&gt;
Make certain to deselect '''Overdue Notices''' in the client's '''[[Clients:Profile Tab|Profile]]''' tab. This prevents the system from sending overdue notices to the client.&lt;br /&gt;
&lt;br /&gt;
If the email templates do not exist, the system cannot send an email. Go to '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Email Templates]]''' or, prior to WHMCS 8.0, '''Setup &amp;gt; Email Templates''' and ensure the '''Invoice Created''' and '''Overdue Notice''' email templates display.&lt;br /&gt;
&lt;br /&gt;
Invoice generation, payment reminders, and account suspensions and terminations are some of the tasks that the daily [[Crons|cron job]] handles in accordance with your [[Automation Settings|automation settings]]. If you find that some or none of the above are occurring, this could indicate the cron job is not running successfully.&lt;br /&gt;
&lt;br /&gt;
Review '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; [[System Logs]]''' ('''Utilities &amp;gt; Logs''' in WHMCS 7.x and earlier) and make sure that you see a number of entries beginning with ''Cron Job'' each day. The final entry every day should be ''Cron Job: Completed''.&lt;br /&gt;
&lt;br /&gt;
* If you see no cron job entries, this means you have not configured your automation cron job correctly. You must do this per our installation instructions. For more information, see [[Crons|Crons]].&lt;br /&gt;
&lt;br /&gt;
* If you see some cron job entries, but none after ''Cron Job: Running Usage Stats Update'', your cron job is getting stuck at the '''Usage Stats Update''' stage. The most likely cause of this error is that you have an old server in '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Servers]]''' or, prior to WHMCS 8.0, '''Setup &amp;gt; Products/Services &amp;gt; Servers''' that is no longer available.&lt;br /&gt;
** To resolve this, update or remove any inactive or offline servers so that they can all connect successfully. &lt;br /&gt;
** Alternatively, you can disable '''Update Usage Statistics''' under '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Automation Settings]]''' or, prior to WHMCS 8.0, '''Setup &amp;gt; Automation Settings'''.&lt;br /&gt;
&lt;br /&gt;
* If you see some cron job entries but no ''Cron Job: Completed'' entry, your server may be prematurely terminating the cron job. Increase the &amp;lt;tt&amp;gt;memory_limit&amp;lt;/tt&amp;gt; setting in your server's &amp;lt;tt&amp;gt;php.ini&amp;lt;/tt&amp;gt; file to 64 MB or 128 MB. Then, check whether you start getting the cron job report again over the next few days.&lt;br /&gt;
&lt;br /&gt;
If the cron job still doesn't complete with the increased memory limit, make sure that &amp;lt;tt&amp;gt;display_errors&amp;lt;/tt&amp;gt; is enabled in the server's PHP configuration. Enable '''Display Errors''' in the '''[[Other Tab|Other]]''' tab at '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; General Settings''' or, prior to WHMCS 8.0, '''Setup &amp;gt; General Settings'''. Then, visit the &amp;lt;tt&amp;gt;cron.php&amp;lt;/tt&amp;gt; file in your browser to run the cron manually. You should now see error output. &lt;br /&gt;
&lt;br /&gt;
For more information about the most common errors and their causes, see:&lt;br /&gt;
&lt;br /&gt;
*[[Server Modules]]&lt;br /&gt;
*[[Domain Registrars]]&lt;br /&gt;
*[[Common_Troubleshooting_Tips#Server_Errors]]&lt;br /&gt;
&lt;br /&gt;
==Items Not Invoicing==&lt;br /&gt;
&lt;br /&gt;
There are a couple of reasons for invoices not generating. The most obvious reason is that there's a cancellation request for the service or it's in cancelled, terminated, fraud or expired status. For domains, selecting the '''Disable Auto Renew''' option stops the system from generating renewal invoices automatically. It could also be that the cron job is not running. For more information, see [[#Invoices/Payment Reminders not Generated|the section above]].&lt;br /&gt;
&lt;br /&gt;
The system only generates invoices when the service's '''Next Due Date''' is within the '''Invoice Generation''' setting at '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Automation Settings]]''' or, prior to WHMCS 8.0, '''Setup &amp;gt; Automation Settings'''. &lt;br /&gt;
&lt;br /&gt;
For example, if the '''Next Due Date''' is in the future, the system won't generate an invoice. If today's date is 01/01/2012:&lt;br /&gt;
&lt;br /&gt;
Next Due Date: 07/01/2012&amp;lt;br /&amp;gt;&lt;br /&gt;
Invoice Generation: 7&amp;lt;br /&amp;gt;&lt;br /&gt;
= Invoice '''will''' generate.&lt;br /&gt;
&lt;br /&gt;
Next Due Date: 08/01/2012&amp;lt;br /&amp;gt;&lt;br /&gt;
Invoice Generation: 7&amp;lt;br /&amp;gt;&lt;br /&gt;
= Invoice '''not''' generated.&lt;br /&gt;
&lt;br /&gt;
If it's none of those, then it's possible that the system generated an invoice that was then deleted by a member of staff. Check the client's '''[[Clients:Log Tab|Log]]''' tab for any ''Invoice Deleted'' or ''Order Deleted'' entries. WHMCS never generates duplicate invoices for the same service on the same due date, so if you require a new invoice after deleting an invoice, you must manually move the '''Next Due Date''' forward or back by one day.&lt;br /&gt;
&lt;br /&gt;
==Double Invoices/Charges/Blank Invoices==&lt;br /&gt;
&lt;br /&gt;
There are several invoicing issues that a common misconfiguration can cause. The system may generate two invoices for the same service and due date, may double-charge a client for the same invoice, or may generate a completely blank invoice.&lt;br /&gt;
&lt;br /&gt;
A cron job running twice at the same time can cause this. The cron job should only run once per day, and should never run simultaneously. To confirm this, review '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; [[System Logs]]''' ('''Utilities &amp;gt; Logs''' in WHMCS 7.x and earlier). There should only be one ''Cron Job: Starting Daily Automation Tasks'' and one ''Cron Job: Completed Daily Automation Tasks'' entry per day. If there is more than one of either of these entries, check the server's cron job configuration to ensure there is only one entry for the &amp;lt;tt&amp;gt;cron.php&amp;lt;/tt&amp;gt; file. For more information, see our [[Crons]] documentation.&lt;br /&gt;
&lt;br /&gt;
==Tax Not Applied to Invoices==&lt;br /&gt;
&lt;br /&gt;
If the system has not applied tax, WHMCS may be operating as though it is not eligible under your tax rules. &lt;br /&gt;
&lt;br /&gt;
First, ensure that tax is enabled and that you have selected the relevant '''Apply Tax''' options at '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Tax Configuration]]''' or, prior to WHMCS 8.0, '''Setup &amp;gt; Payments &amp;gt; Tax Configuration'''. If it's an invoice for a product, ensure this option is selected in the product configuration.&lt;br /&gt;
&lt;br /&gt;
Secondly, ensure that '''Tax Exempt''' is deselected on the client's '''[[Clients:Profile Tab|Profile]]''' tab. A member of staff or our [[EU_VAT_Addon|EU VAT Invoicing]] addon module may have selected this.&lt;br /&gt;
&lt;br /&gt;
Finally, the client might not match any of your tax rules. The state and country must be '''exact''' matches and are case sensitive. For example, if a tax rule exists for the state ''TX'' and the client's state is ''Texas'', these do not match and the system would not apply tax. This scenario would require two tax rules, one for ''TX'' and another for ''Texas''.&lt;br /&gt;
&lt;br /&gt;
The system will apply any changes to subsequent invoices, but will not change existing invoices.&lt;br /&gt;
&lt;br /&gt;
==Multiple Invoices for the same Service==&lt;br /&gt;
&lt;br /&gt;
The system may generate multiple invoices for the same service with different due dates if the service has a due date in the past. This usually occurs with services that you import or a staff member manually added, in which the '''Next Due Date''' is &amp;lt;tt&amp;gt;00/00/0000&amp;lt;/tt&amp;gt;. As this due date is in the past, WHMCS generates all invoices between then and today to ensure the client has paid their balance in full.&lt;br /&gt;
&lt;br /&gt;
To correct this, change the '''Next Due Date''' to the date of the client's next payment via their '''[[Clients:Products/Services Tab|Products/Services]]''' tab. You can safely delete or cancel any erroneous invoices.&lt;br /&gt;
&lt;br /&gt;
{{troubleshooting}}&lt;/div&gt;</summary>
		<author><name>JoshQ</name></author>	</entry>

	<entry>
		<id>http://3.19.219.109/index.php?title=Stripe&amp;diff=34545</id>
		<title>Stripe</title>
		<link rel="alternate" type="text/html" href="http://3.19.219.109/index.php?title=Stripe&amp;diff=34545"/>
				<updated>2024-04-15T13:20:17Z</updated>
		
		<summary type="html">&lt;p&gt;JoshQ: /* Migrating to Stripe */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About this Module ==&lt;br /&gt;
&lt;br /&gt;
The WHMCS Stripe payment gateway uses Stripe's tokenised storage system to submit credit card information to Stripe, which stores it remotely. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;docs-alert-info&amp;quot;&amp;gt;For other Stripe options, see [[Stripe ACH]] and [[Stripe SEPA]]. &amp;lt;/div&amp;gt;&lt;br /&gt;
{{gateways&lt;br /&gt;
| type = token&lt;br /&gt;
| recurring = yes&lt;br /&gt;
| onetime = yes&lt;br /&gt;
| refunds = yes&lt;br /&gt;
| updatecc = yes&lt;br /&gt;
| deletecc = yes&lt;br /&gt;
| 3dsecure = yes&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;docs-alert-warning&amp;quot;&amp;gt;&lt;br /&gt;
The Stripe payment gateway module is not compatible with the Modern or Boxes order form templates.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Adding the Stripe Payment Gateway ==&lt;br /&gt;
&lt;br /&gt;
[[File:stripe.png|thumb|Stripe Module Settings]]&lt;br /&gt;
&lt;br /&gt;
To set up the Stripe payment gateway in WHMCS:&lt;br /&gt;
 &lt;br /&gt;
# Go to the appropriate location for your version of WHMCS:&lt;br /&gt;
#* For WHMCS 8.0 and later, go to '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; Apps &amp;amp; Integrations''' or '''Addons &amp;gt; [[Apps and Integrations|Apps &amp;amp; Integrations]]'''.&lt;br /&gt;
#* For WHMCS 7.10 and earlier, go to '''Setup &amp;gt; Products/Services &amp;gt; [[Payment Gateways]]''' and choose '''All Payment Gateways'''.&lt;br /&gt;
# Click '''Stripe'''.&lt;br /&gt;
# Check '''Show on Order Form''' to display this payment method in the Client Area during checkout. &lt;br /&gt;
# Configure a display name. We recommend &amp;lt;tt&amp;gt;Credit Card&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# Go to the [https://dashboard.stripe.com/account/apikeys Stripe portal] and retrieve the publishable and secret API keys.&lt;br /&gt;
# Enter your Stripe API Keys. &amp;lt;div class=&amp;quot;docs-alert-info&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-info-circle&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; To test Stripe, enter your [https://stripe.com/docs/keys#obtain-api-keys Stripe Test Mode API Keys].&amp;lt;/div&amp;gt;&lt;br /&gt;
# Optionally, customize the '''Statement Descriptor Suffix''' with a maximum of 22 characters.&lt;br /&gt;
# In WHMCS 8.0 and later, leave the '''Stripe WebHook Endpoint Secret''' and '''Stripe WebHook Endpoint Secret (Test/Sandbox)''' empty. WHMCS auto-generates these. See below for more information.&lt;br /&gt;
# Optionally, check '''Allow Payment Request Buttons'''. See below for more information.&lt;br /&gt;
# Click '''Save Changes'''.&lt;br /&gt;
# If you use different default currencies in Stripe and WHMCS, make certain that you have also configured your Stripe account's currency with a valid exchange rate at '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Currencies]]''' or, prior to WHMCS 8.0, '''Setup &amp;gt; Payments &amp;gt; Currencies'''. Stripe only returns transaction fees in the default currency for the Stripe account.&lt;br /&gt;
 &lt;br /&gt;
=== WebHook Endpoints ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;docs-alert-info&amp;quot;&amp;gt;&lt;br /&gt;
You can use Stripe Webhooks in WHMCS v8.0 and above.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Stripe's WebHook Endpoints update WHMCS automatically with changes to your customers' cards. In WHMCS 8.0 and later, when you click '''Save Changes''', WHMCS will use the '''Stripe Publishable API Key''' and '''Stripe Secret API Key''' to generate the '''Stripe WebHook Endpoint Secret''' and '''Stripe WebHook Endpoint Secret (Test/Sandbox)'''. &lt;br /&gt;
&lt;br /&gt;
* If you enter live API keys (&amp;lt;tt&amp;gt;sk_live&amp;lt;/tt&amp;gt;), WHMCS will generate the '''Stripe WebHook Endpoint Secret'''.&lt;br /&gt;
* If you enter test API keys (&amp;lt;tt&amp;gt;sk_test&amp;lt;/tt&amp;gt;), WHMCS will generate the '''Stripe WebHook Endpoint Secret (Test/Sandbox)'''.&lt;br /&gt;
&lt;br /&gt;
WHMCS registers the WebHook Endpoints to deliver these events from Stripe:&lt;br /&gt;
&lt;br /&gt;
 * &amp;lt;tt&amp;gt;customer.source.updated&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;payment_method.updated&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
To change the WebHook ID, empty '''Stripe WebHook Endpoint Secret''' and '''Stripe WebHook Endpoint Secret (Test/Sandbox)''' and click '''Save Changes'''. WHMCS will auto-generate them again with new values.&lt;br /&gt;
&lt;br /&gt;
=== Payment Request Button ===&lt;br /&gt;
&lt;br /&gt;
Enabling this option within the module configuration provides customers with a platform-specific payment request button (for example, Apple® Pay). For customers who don’t use Apple Pay, '''Payment Request''' supports credit cards stored in the browser, Google® Pay, and Microsoft® Pay.&lt;br /&gt;
&lt;br /&gt;
==== Apple Pay ====&lt;br /&gt;
&lt;br /&gt;
[[File:apple_pay_checkout.png|thumb|The Apple Pay Button on Checkout]]&lt;br /&gt;
&lt;br /&gt;
When you enable this, Apple Pay allows access to payment details that users have stored in their Apple Wallet. If they're using Safari® on their iPhone® or iPad®, when they tap &amp;quot;Buy with Apple Pay&amp;quot; on your site, they'll be shown a modal payment sheet. If they're using Safari on their Mac®, and have an iOS® device in range, they'll be prompted on their device to authorize the payment, which will then be sent to the browser. &lt;br /&gt;
&lt;br /&gt;
To use Apple Pay with a live Stripe API key, you must register all of the domains that will display an Apple Pay button with Apple. This includes both top-level domains (for example, &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;whmcs.com&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;) and subdomains (for example, &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;shop.whmcs.com&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&amp;lt;div class=&amp;quot;docs-alert-info&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-info-circle&amp;quot;&amp;gt;&amp;lt;/i&amp;gt; An SSL certificate is '''required''' to use Apple Pay.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To do this:&lt;br /&gt;
&lt;br /&gt;
# Download this [https://stripe.com/files/apple-pay/apple-developer-merchantid-domain-association domain association file] and host it at &amp;lt;tt&amp;gt;/.well-known/apple-developer-merchantid-domain-association&amp;lt;/tt&amp;gt; on your site. For example, if you're registering &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;, make that file available at &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;https://example.com/.well-known/apple-developer-merchantid-domain-association&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# To instruct Stripe to register the domain with Apple, go to the '''[https://dashboard.stripe.com/account/apple_pay Apple Pay]''' tab in '''Account Settings''' in the Stripe Dashboard.&lt;br /&gt;
&lt;br /&gt;
==== Google Pay ====&lt;br /&gt;
&lt;br /&gt;
Google Pay allows customers to make payments using any credit or debit card on their Google account, including Google Play, YouTube™, Chrome™, or an Android™ device.&lt;br /&gt;
&lt;br /&gt;
==== Microsoft Pay ====&lt;br /&gt;
&lt;br /&gt;
Microsoft Pay allows customers to make payments using any credit or debit card on their Microsoft account.&lt;br /&gt;
&lt;br /&gt;
==== Link ====&lt;br /&gt;
In WHMCS 8.8 and later, customers can pay using [https://stripe.com/en-ca/payments/link Link] for any Stripe transaction. Link makes payments easier by letting customers complete secure, one-click transactions using saved payment information. Stripe enables Link automatically.&lt;br /&gt;
&lt;br /&gt;
For more information about disabling Link for your Stripe account, see [https://support.stripe.com/questions/how-to-turn-off-link How to Turn Off Link].&lt;br /&gt;
&lt;br /&gt;
=== Test Mode ===  &lt;br /&gt;
&lt;br /&gt;
This module does not support test mode.&lt;br /&gt;
&lt;br /&gt;
== Payment Workflow ==&lt;br /&gt;
  &lt;br /&gt;
[[File:stripe_checkout.png|thumb|The Stripe module on Checkout]]&lt;br /&gt;
  &lt;br /&gt;
The Stripe module supports automated recurring and on-demand billing.&lt;br /&gt;
  &lt;br /&gt;
Customers can choose between previously-stored cards or entering new ones during payment, and they can update their credit cards at any time in the Client Area. Admins can also update credit card information in the WHMCS Admin Area.&lt;br /&gt;
  &lt;br /&gt;
During checkout, clients never leave WHMCS. Personal card information goes directly to Stripe and is never stored within WHMCS. The Stripe API handles all refunds and obtains transaction information.&lt;br /&gt;
  &lt;br /&gt;
* In WHMCS 7.8 and later, WHMCS uses the Stripe Elements implementation method. When performing checkout, if customer authorization is required, the system will prompt the user automatically to approve the payment. This process is also commonly referred to as 3D Secure. Use of 3D Secure depends on the card type and issuer.&lt;br /&gt;
* In WHMCS 8.8 and later, Stripe module transactions [https://support.stripe.com/questions/guide-for-indian-government-regulations-on-network-tokenization meet all Reserve Bank of India requirements].&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;div class=&amp;quot;docs-alert-info&amp;quot;&amp;gt;&lt;br /&gt;
WHMCS 8.3 and higher includes support for disputes for Stripe and PayPal® Checkout transactions at '''Billing &amp;gt; [[Disputes]]'''.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
===Recurring Payments===&lt;br /&gt;
 &lt;br /&gt;
Automated recurring payments use stored tokens. If a client card requires SCA, the system will deny the payment attempt and the client must log in to WHMCS manually to process the payment.&lt;br /&gt;
&lt;br /&gt;
== Payment Gateway Balances ==&lt;br /&gt;
 &lt;br /&gt;
In WHMCS 8.2 and later, you can view payment gateway balances directly within the WHMCS Admin Area, with native support for Stripe balances. &lt;br /&gt;
&lt;br /&gt;
At '''Billing &amp;gt; [[Transactions]]''', you can view balances in the transaction list and in the transaction details for individual transactions. For more information, see [[Payment Gateway Balances and Transactions]].&lt;br /&gt;
 &lt;br /&gt;
This requires you to enable '''View Gateway Balances''' for the desired administrator role at '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Administrator Roles]]'''.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;div class=&amp;quot;docs-alert-warning&amp;quot;&amp;gt;&lt;br /&gt;
In the Admin Area [[Admin_Dashboard|Dashboard]], you can view your Stripe balances through the '''Stripe Balance''' widget. However, this widget does not use the &amp;lt;tt&amp;gt;WHMCS\Module\Gateway\Balance&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;WHMCS\Module\Gateway\BalanceCollection&amp;lt;/tt&amp;gt; classes to display balances. For more information, see [[Stripe Balance Widget]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Migrating to Stripe ==&lt;br /&gt;
&lt;br /&gt;
The Stripe payment gateway module supports migrating locally-stored credit card details to Stripe's tokenized storage. This is useful when you transition from another non-tokenized merchant gateway provider to Stripe.&lt;br /&gt;
&lt;br /&gt;
For an existing client with a locally-stored credit card, the first time that the system attempts to capture payment for an invoice using Stripe, the system will submit the credit card details to Stripe and create and store a token. Then, the system will remove the local copy of the card details.&lt;br /&gt;
&lt;br /&gt;
To migrate to Stripe and ensure all future credit card processing uses it:&lt;br /&gt;
&lt;br /&gt;
# Go to the appropriate location for your version of WHMCS:&lt;br /&gt;
#* For WHMCS 8.6 and later, go to '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; [[Apps and Integrations|Apps &amp;amp; Integrations]]'''. &lt;br /&gt;
#* For WHMCS 8.0 to 8.6, go to '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Payment Gateways]]''' and choose '''All Payment Gateways'''.&lt;br /&gt;
#* For WHMCS 7.10 and earlier, go to '''Setup &amp;gt; Products/Services &amp;gt; Payment Gateways''' and choose '''All Payment Gateways'''.&lt;br /&gt;
# Activate the Stripe module.&lt;br /&gt;
# Click '''Deactivate''' for your previous merchant gateway provider.&lt;br /&gt;
# Select Stripe as the replacement gateway to switch users of the previous gateway module to.&lt;br /&gt;
# Click '''OK'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;docs-alert-warning&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;title&amp;quot;&amp;gt;PCI DSS Compliance&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
After migrating to Stripe, you may receive an email from Stripe requesting that you complete the [https://listings.pcisecuritystandards.org/documents/SAQ_D_v3_Merchant.pdf Self Assessment Questionnaire D] (SAQ D) form.&lt;br /&gt;
&lt;br /&gt;
This is because the system is attempting to send raw card data that your previous merchant gateway stored to Stripe's API. You can only do this when your Stripe account has been flagged as [https://stripe.com/guides/pci-compliance PCI compliant].&lt;br /&gt;
&lt;br /&gt;
To gain full access to Stripe's API, complete the SAQ D form to certify that you are PCI compliant and send it to Stripe. Stripe can then enable use of raw card data with their API.&lt;br /&gt;
&lt;br /&gt;
For more information, [https://support.stripe.com/ contact Stripe support].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Migrating from a 3rd Party Stripe Module ===&lt;br /&gt;
&lt;br /&gt;
The WHMCS Stripe module uses the Stripe &amp;lt;tt&amp;gt;cus_&amp;lt;/tt&amp;gt; reference to capture payments (for example, &amp;lt;tt&amp;gt;cus_9MvIb7UlgJfJTn&amp;lt;/tt&amp;gt;). The WHMCS Stripe module can replace any third-party module that uses this.&lt;br /&gt;
&lt;br /&gt;
To check whether your current Stripe module uses the &amp;lt;tt&amp;gt;cus_&amp;lt;/tt&amp;gt; reference, navigate to a client that you know has an active Stripe token and click on one of the pay methods in the '''Summary''' tab of the client's profile. Verify that the listed token includes the &amp;lt;tt&amp;gt;cus_&amp;lt;/tt&amp;gt; prefix.&lt;br /&gt;
&lt;br /&gt;
To start using the WHMCS Stripe module:&lt;br /&gt;
&lt;br /&gt;
# Note the internal name of the previous Stripe module, which you can find by looking in the gateway column in the &amp;lt;tt&amp;gt;tblpaymentgateways&amp;lt;/tt&amp;gt; database table.&lt;br /&gt;
# Activate our official Stripe module.&lt;br /&gt;
# Deactivate the previous Stripe module.&lt;br /&gt;
# Check one of the Stripe pay methods on a client. If the token contains &amp;lt;tt&amp;gt;cus{_}&amp;lt;/tt&amp;gt;, you can use it with our module but it will require a manual database edit first. To allow that, run the following SQL query using phpMyAdmin or another tool, replacing &amp;quot;example&amp;quot; with the name of the previous module: &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;UPDATE tblpaymethods SET gateway_name = 'stripe' WHERE gateway_name = 'example'; &amp;lt;/source&amp;gt;&lt;br /&gt;
# Remove any third-party files and template customisations for the previous Stripe module.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
===Remote Transaction Failure. Please Contact Support===&lt;br /&gt;
&lt;br /&gt;
This issue has multiple causes. This may also display as '''Error'''.&lt;br /&gt;
&lt;br /&gt;
To resolve this issue:&lt;br /&gt;
&lt;br /&gt;
# Go to '''Billing &amp;gt; Gateway Log'''.&lt;br /&gt;
# Check the '''Result''' and '''Debug Data''' columns for error messages or codes from the time of the payment attempt.&lt;br /&gt;
# Perform the appropriate steps in Stripe's [https://stripe.com/docs/error-codes Error Codes] and [https://stripe.com/docs/declines/codes Declines Codes] documentation.&lt;br /&gt;
&lt;br /&gt;
See below for other common causes of this error:&lt;br /&gt;
&lt;br /&gt;
====Payment Blocked By Stripe====&lt;br /&gt;
&lt;br /&gt;
This indicates that a rule in your Stripe account may be blocking payment.&lt;br /&gt;
&lt;br /&gt;
To resolve this:&lt;br /&gt;
&lt;br /&gt;
# Log in to your [https://dashboard.stripe.com/ Stripe Dashboard].&lt;br /&gt;
# Go to '''Developers &amp;gt; Logs'''. &lt;br /&gt;
# Find the log entries from the time at which the payment was attempted. The details of the log will show whether the payment was blocked (for example, with a '''The zip code you supplied failed validation''' error). &lt;br /&gt;
# Adjust the rules in your Stripe account for the error. For help, contact [https://support.stripe.com/ Stripe support].&lt;br /&gt;
&lt;br /&gt;
====Customisations====&lt;br /&gt;
&lt;br /&gt;
This issue may also present itself as '''&amp;quot;No Stripe Details Found for Update&amp;quot;''' in the '''Gateway Log'''.&lt;br /&gt;
&lt;br /&gt;
This issue can occur due to interference from a third-party Stripe module. Using the official Stripe module requires the full uninstallation and removal of any custom or third-party Stripe integrations. This includes removal of all files and template modifications.&lt;br /&gt;
&lt;br /&gt;
For example, these issues may trigger this error:&lt;br /&gt;
&lt;br /&gt;
* A hook file in &amp;lt;tt&amp;gt;/includes/hooks/stripe.php&amp;lt;/tt&amp;gt;. Remove this file when switching to the WHMCS Stripe module.&lt;br /&gt;
* Template customisations in your active order form template files.&lt;br /&gt;
* The payment method is set to a module other than Stripe. In this case, perform one of the following actions:&lt;br /&gt;
** Change the client's '''Payment Method''' setting in the client's '''Profile''' tab to the Stripe module.&lt;br /&gt;
** Make Stripe the system default payment gateway at '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Payment Gateways]]''' or, prior to WHMCS 8.0, '''Setup &amp;gt; Payments &amp;gt; Payment Gateways'''.&lt;br /&gt;
&lt;br /&gt;
====Out Of Date Template Files====&lt;br /&gt;
&lt;br /&gt;
The error indicates that you have out-of-date template files. Make certain that your client theme and order form templates are fully compatible with your version of WHMCS. The [[Release Notes]] for each version of WHMCS provide links to template changes.&lt;br /&gt;
&lt;br /&gt;
====Network Analyser Tool====&lt;br /&gt;
&lt;br /&gt;
Another method to diagnose this error is to use your browser's network analyser tool. Please see the section '''Another Error Type''' in [https://help.whmcs.com/m/troubleshooting/l/1312423-an-error-occurred-while-communicating-with-the-server-please-try-again this help article]. Whilst the article is for another issue, it describes how to use your browser's network analyser tool to help identify underlying errors.&lt;br /&gt;
&lt;br /&gt;
===No Stripe Customer Details Found===&lt;br /&gt;
The system logs this error in the debug data section of '''Billing &amp;gt; [[Gateway Log]]'''. It indicates that the client does not have a payment method in WHMCS. You can confirm this in the '''[[Pay Methods]]''' section of the client's '''[[Clients:Summary Tab|Summary]]''' tab.&lt;br /&gt;
&lt;br /&gt;
To resolve this, ask the client to log in to the Client Area, go to the unpaid invoice, and click '''Pay Now''' to make a payment via Stripe. This will create a payment method to use for future automatic payments.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;You must provide a value for 'cvc'===&lt;br /&gt;
&lt;br /&gt;
If you see at '''Billing &amp;gt; [[Gateway Log]]''' for a failed payment attempt by an admin or the cron job, this indicates that the customer is in an European country or has a European billing address. Stripe's API requires that they make at least one manual payment to get added to their system. &lt;br /&gt;
&lt;br /&gt;
To resolve this, ask the client to log in to the Client Area, go to the unpaid invoice, and click '''Pay Now''' to make a payment via Stripe.&lt;br /&gt;
&lt;br /&gt;
For more information, see [https://stripe.com/docs/api?lang=python#create_card_token Stripe's documentation] (click '''show child parameters''').&lt;br /&gt;
&lt;br /&gt;
When you do this, the system displays the following data:&lt;br /&gt;
&lt;br /&gt;
 cvc&lt;br /&gt;
 usually required&lt;br /&gt;
 Card security code. Highly recommended to always include this value, but it's only required for accounts based in European countries.&lt;br /&gt;
&lt;br /&gt;
After the customer makes a manual payment, the system adds them to Stripe and any future attempts (automatic or manual) will work normally.&lt;br /&gt;
&lt;br /&gt;
===Network error [errno 35]: Unsupported SSL protocol version===&lt;br /&gt;
This error indicates a server configuration issue. The server is attempting a secure connection to Stripe using an outdated SSL protocol. Most providers now require connections via TLS for security purposes. For more information, see [https://stripe.com/docs/security#tls Stripe TLS Documentation].&lt;br /&gt;
&lt;br /&gt;
To resolve this issue, work with your system administrator or hosting provider to ensure that remote cURL connections use TLS by default. You may also need to update your OpenSSL version.&lt;br /&gt;
&lt;br /&gt;
===You passed an empty string for 'statement_descriptor'===&lt;br /&gt;
This indicates an empty '''Statement Descriptor''' field in the payment gateway configuration. Make certain that you set your entire [[#Adding_the_Stripe_Payment_Gateway|gateway configuration]].&lt;br /&gt;
&lt;br /&gt;
===Bad Request===&lt;br /&gt;
This error may appear in the Client Area when a client attempts to pay for an invoice or order using an existing stored payment method. It indicates that the customer or the token in WHMCS do not exist in Stripe. To ensure that the pay method is correctly stored in Stripe, delete the stored payment method from the Admin Area via the client's profile's '''[[Clients:Summary Tab|Summary]]''' tab (which may display a more-informative error to administrators). Then, add the payment method again.&lt;br /&gt;
 &lt;br /&gt;
Customised or outdated system themes or order form templates can also cause this error. To troubleshoot this:&lt;br /&gt;
 &lt;br /&gt;
# Go to the '''[[General Tab|General]]''' tab at '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; General Settings''' or, prior to WHMCS 8.0, '''Setup &amp;gt; General Settings'''.&lt;br /&gt;
# Select ''Six'' or ''Twenty-One'' for '''System Theme'''.&lt;br /&gt;
# Go to the '''[[Ordering Tab|Ordering]]''' tab.&lt;br /&gt;
# Select a '''[[Standard_Order_Form_Templates|Default Order Form Template]]'''.&lt;br /&gt;
# Click '''Save Changes'''.&lt;br /&gt;
# Return to the Client Area and refresh the page.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;div class=&amp;quot;docs-alert-warning&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;title&amp;quot;&amp;gt;Client Area System Themes&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
We introduced Twenty-One in WHMCS 8.1. We plan to remove Six in a future version.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===An unexpected error - No Stripe Payment Method found from token===&lt;br /&gt;
This error indicates that the system could not transmit some of the required data to Stripe. This is usually due to outdated order form templates. Check this issue using the Twenty-One or Six system theme and the Standard Cart order form template.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;docs-alert-warning&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;title&amp;quot;&amp;gt;Client Area System Themes&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
We introduced Twenty-One in WHMCS 8.1. We plan to remove Six in a future version.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This can also be caused by a JavaScript error from custom code (for example, template changes, hooks, or addons) preventing the standard Stripe JavaScript from running correctly. Your browser console will show whether a JavaScript error is occurring. &lt;br /&gt;
* If one is, the custom JavaScript will need to be corrected. &lt;br /&gt;
* If the JavaScript error is coming from a third-party customisation, contact the developer for assistance.&lt;br /&gt;
&lt;br /&gt;
If the issue persists, contact our [https://www.whmcs.com/submit-a-ticket/ support team].&lt;br /&gt;
&lt;br /&gt;
===Error Updating Remote Pay Method: Remote Storage Failed===&lt;br /&gt;
You can find information about this error at '''Billing &amp;gt; [[Gateway Log]]'''.&lt;br /&gt;
&lt;br /&gt;
===Stripe India Accounts===&lt;br /&gt;
India-based Stripe accounts require the following additional conditions for a successful payment capture:&lt;br /&gt;
&lt;br /&gt;
* The client's address and billing contact must use a valid Indian postal address.&lt;br /&gt;
* The payment card must be from an Indian bank.&lt;br /&gt;
* The invoice must use INR as the currency.&lt;br /&gt;
&lt;br /&gt;
To automatically convert invoice totals into other currencies upon payment in WHMCS:&lt;br /&gt;
&lt;br /&gt;
# Go to '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Currencies]]''' or, prior to WHMCS 8.0, '''Setup &amp;gt; Payments &amp;gt; Currencies'''.&lt;br /&gt;
# Add &amp;lt;tt&amp;gt;INR&amp;lt;/tt&amp;gt; as an [[Currencies#Adding.2FEditing_a_Currency|additional currency]].&lt;br /&gt;
# Go to '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Payment Gateways]]''' or, prior to WHMCS 8.0, '''Setup &amp;gt; Payments &amp;gt; Payment Gateways'''.&lt;br /&gt;
# Set '''Convert To For Processing''' on the Stripe gateway to ''INR''.&lt;br /&gt;
&lt;br /&gt;
For more information about the additional Stripe requirements for Indian Stripe accounts, see [https://support.stripe.com/questions/requirements-for-india-export-charges Stripe's documentation].&lt;br /&gt;
&lt;br /&gt;
{{modules}}&lt;/div&gt;</summary>
		<author><name>JoshQ</name></author>	</entry>

	<entry>
		<id>http://3.19.219.109/index.php?title=System_Environment_Guide&amp;diff=34428</id>
		<title>System Environment Guide</title>
		<link rel="alternate" type="text/html" href="http://3.19.219.109/index.php?title=System_Environment_Guide&amp;diff=34428"/>
				<updated>2024-02-22T15:15:52Z</updated>
		
		<summary type="html">&lt;p&gt;JoshQ: Add steps to resolve &amp;quot;Could not connect to database&amp;quot; error for Encrypted Database Connections&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WHMCS is compatible with most web server environments.  Installing WHMCS in your web environment is usually straight forward.  As well, WHMCS is continually providing updates which can seamlessly support environment updates from the upstream providers.  However, as new technologies emerge and your current system's environment has access to new updates, it's important that you are aware of how they might affect your WHMCS deployment.  This guide is designed help you and your system administrator prepare and manage your environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toclimit-2&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
WHMCS is designed for a traditional LAMP (Linux, Apache, MySQL, PHP) environment. The minimum requirements and basic version compatibility related to those sub-systems are provided in our [[System Requirements]].&lt;br /&gt;
&lt;br /&gt;
The development of WHMCS is such that alternative technologies may be viable, however they are not tested and assistance from our Support Team will be limited.  For example, if you wish to use NGINX instead of Apache, it may be technically possible.  However, our Support will have limited knowledge about how to properly configure NGINX or debug behaviors that are specific to NGINX.  &lt;br /&gt;
&lt;br /&gt;
If you require the use of something other than Linux, Apache, or MySQL please consult with your system administrator to evaluate the immediate possibilities for (in)compatibility and long-term viability so that your environment management strategy accommodates for your specific requirements.&lt;br /&gt;
&lt;br /&gt;
== Operating System ==&lt;br /&gt;
WHMCS is designed to run in a standard Linux operating/file system.  WHMCS relies on PHP for interaction with the file system.  In some operating systems (such as Windows) or environments (such as jails or chroots) the file system may have restrictions or inherent behaviors which may be hard to detect or uncommon.  When possible, WHMCS provides notices that indicates incompatibility. If you require a different operating/file system, please discuss with your system administrator.  Our Support Team is available to provide limited assistance to your system administrator for your custom environment.&lt;br /&gt;
&lt;br /&gt;
Also of note, WHMCS relies heavily on the Linux Cron sub-system to trigger background tasks and perform periodic automation tasks such as deferred provisioning, service synchronization, invoice generation, billing, and more.  You may learn more at the [[Crons| crons documentation]].  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;docs-alert-info&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-info-circle fa-fw&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;Please note, the command line PHP used to invoke the cron will need to meet the same requirements as the [[#PHP| PHP]] binary used by your web server.  This includes ini settings and enabled extensions.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Web Server ==&lt;br /&gt;
WHMCS is designed to work with the Apache web server version 2.x.  While there are no special Apache configurations required for WHMCS, there are some advantages available to you and your WHMCS deployment that you may wish to consider.&lt;br /&gt;
&lt;br /&gt;
=== Extensions ===&lt;br /&gt;
&lt;br /&gt;
;mod_rewrite&lt;br /&gt;
:The Apache mod_rewrite module allows Apache to inspect and modify URLs and redirects through the use of .htaccess files within your web server docroot.  WHMCS can create and manage a .htaccess file, and thus generate and consume friendly URLs in various parts of the product. This feature is described in more detail at [[Friendly URLs]].&lt;br /&gt;
&lt;br /&gt;
=== Handler ===&lt;br /&gt;
The web server is responsible for all web applications on the server, and thus the Unix permissions granted to the php process (php handler) that operate with your web application are important. Some PHP handlers will execute all php code on the system as the same Unix user (server wide handlers like CGI &amp;amp; mod_php) while other handlers execute the PHP process as a specific user based on domain name (per vhost handlers like suphp, mod_ruid2). Both options are viable for WHMCS.  However, as a matter of security, you need to ensure that no other applications on the server, outside your control, executes as the same Unix user. Your system administrator should be able to configure the web server so that this minimum level of security is met, or more conservatively, that the WHMCS web application process is executed by a user that is wholly unique amongst any other application on the server (even those within your control).&lt;br /&gt;
&lt;br /&gt;
=== Directives ===&lt;br /&gt;
&lt;br /&gt;
WHMCS uses configuration directives to alter the web server configuration on a per-directory basis. As Apache is the recommended web server software platform to run WHMCS on, these directives are included via the following .htaccess files.&lt;br /&gt;
&lt;br /&gt;
; ~/.htaccess&lt;br /&gt;
: This file contains the mod_rewrite directives responsible for sending routable paths through the index.php file. This in turn allows the internal routing system to function, and furnishes WHMCS with the ability to create consumer friendly URLs. More information can be found on the [[Friendly URLs]] documentation page.&lt;br /&gt;
&lt;br /&gt;
; ~/vendor/.htaccess&lt;br /&gt;
: This file prevents access to the ~/vendor directory. This ensures that the web server is not serving file requests directly from this location, and that WHMCS is still capable of accessing the libraries it needs to function. More information can be found on the [[Further_Security_Steps#Vendor_Directory|Further Security Steps]] documentation page.&lt;br /&gt;
&lt;br /&gt;
While other web server technologies are not officially supported, we understand that some users do wish to run WHMCS in environments other than Apache. For those that do, you must ensure that the functionality offered by the aforementioned directives has been implemented by your web server configuration.&lt;br /&gt;
&lt;br /&gt;
How this is achieved depends on the web server itself. If uncertain, then you should consult with your server administrator. As an example, you can find a guide detailing how to secure the vendor directory on the NGINX web server on the [[Nginx Directory Access Restriction]] documentation page.&lt;br /&gt;
&lt;br /&gt;
== Database ==&lt;br /&gt;
WHMCS is designed to work with the MySQL database.  Binary compatible alternatives (such as MariaDB) should be suitable, however their default configurations and optimizations are likely to be different and you should consult with your system administrator or database administrator.&lt;br /&gt;
&lt;br /&gt;
=== Version Compatibility ===&lt;br /&gt;
{{:MySQL Version Support Matrix}}&lt;br /&gt;
&lt;br /&gt;
=== Database Privileges ===&lt;br /&gt;
When installing or updating WHMCS, activating or deactivating modules, or resetting the '''Module Log''' entries at '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Logs''', you must grant the following privileges:&lt;br /&gt;
* ALTER&lt;br /&gt;
* CREATE&lt;br /&gt;
* DROP&lt;br /&gt;
* INDEX&lt;br /&gt;
&lt;br /&gt;
For day to day use, only the following database privileges are required. All others may be disabled.&lt;br /&gt;
* DELETE&lt;br /&gt;
* INSERT&lt;br /&gt;
* SELECT&lt;br /&gt;
* UPDATE&lt;br /&gt;
* LOCK TABLES&lt;br /&gt;
&lt;br /&gt;
If you choose to restrict the privileges for day to day use, don't forget to grant the former privileges so database schema changes and optimizations can be performed by the update process.&lt;br /&gt;
&lt;br /&gt;
=== Database Interaction ===&lt;br /&gt;
WHMCS internals utilize the PDO database API.  If the PHP environment is v5.6, both a PDO based connection and a MySQL handle will be used for compatibility with legacy code.&lt;br /&gt;
&lt;br /&gt;
If you are developing code for the WHMCS platform, it is recommended that you interact with the database via the [https://developers.whmcs.com/api/internal-api/ Local API], [https://developers.whmcs.com/advanced/db-interaction/ DBAL &amp;amp; ORM], or [[Using Models|Models]].  All three methods will abstract database connection details and system compatibility for you and will be supported by WHMCS for the foreseeable future.  The [https://docs.whmcs.com/SQL_Helper_Functions?redirect=no SQL Helper Functions] are still present, although deprecated.  Due to their ubiquitous usage, we anticipate supporting them as long as possible but recommend that you use one of the other methods above.  You can learn more at [https://developers.whmcs.com/advanced/db-interaction/ Interacting with the Database] on our developer's site.&lt;br /&gt;
&lt;br /&gt;
=== Encrypted Database Connections ===&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;div class=&amp;quot;docs-alert-info&amp;quot;&amp;gt;We added this support in WHMCS 8.8.&amp;lt;/div&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Support for encrypted MySQL connections uses the following configuration variables in the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt; file:&lt;br /&gt;
 &lt;br /&gt;
* &amp;lt;tt&amp;gt;db_tls_ca&amp;lt;/tt&amp;gt; — The path to the CA &amp;lt;tt&amp;gt;.pem&amp;lt;/tt&amp;gt; file (for example, &amp;lt;tt&amp;gt;/var/www/html/whmcs/ca.pem&amp;lt;/tt&amp;gt;).&lt;br /&gt;
* &amp;lt;tt&amp;gt;db_tls_ca_path&amp;lt;/tt&amp;gt; — The path to the directory that contains the CA certificate files.&lt;br /&gt;
* &amp;lt;tt&amp;gt;db_tls_cert&amp;lt;/tt&amp;gt; — The path to the client's certificate.&lt;br /&gt;
* &amp;lt;tt&amp;gt;db_tls_cipher&amp;lt;/tt&amp;gt; — A list of one or more ciphers to use for SSL encryption, in an OpenSSL-compatible format.&lt;br /&gt;
* &amp;lt;tt&amp;gt;db_tls_key&amp;lt;/tt&amp;gt; — The path to the client's key.&lt;br /&gt;
* &amp;lt;tt&amp;gt;db_tls_verify_cert&amp;lt;/tt&amp;gt; — Disable (&amp;lt;tt&amp;gt;0&amp;lt;/tt&amp;gt;) or enable (&amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt;) the server certificate.&lt;br /&gt;
 &lt;br /&gt;
You can configure these variables before, during, or after installation using the [[Install On The Command Line|command-line installation method]] or after installation using the [[Installing WHMCS|browser-based installation method]]. For steps, see [https://help.whmcs.com/m/installation/l/1706785-enabling-encrypted-mysql-connections Enabling Encrypted MySQL Connections].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;docs-alert-warning&amp;quot;&amp;gt;&lt;br /&gt;
If you set &amp;lt;tt&amp;gt;db_tls_verify_cert&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt; (enabled), the &amp;lt;tt&amp;gt;db_host&amp;lt;/tt&amp;gt; value in the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt; file '''must''' match the Common Name (CN) or be a Subject Alternative Name (SAN) of the certificate that you specify for &amp;lt;tt&amp;gt;db_tls_cert&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
If the hostname does not match and &amp;lt;tt&amp;gt;db_tls_verify_cert&amp;lt;/tt&amp;gt; is enabled, you will see a &amp;lt;tt&amp;gt;Could not connect to database&amp;lt;/tt&amp;gt; error. To resolve this issue, set &amp;lt;tt&amp;gt;db_tls_verify_cert&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;0&amp;lt;/tt&amp;gt; or provide a new certificate with a CN or SAN that matches the &amp;lt;tt&amp;gt;db_host&amp;lt;/tt&amp;gt; value. &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;docs-alert-info&amp;quot;&amp;gt;&lt;br /&gt;
* For more information about the required MySQL configuration and variables, see [https://dev.mysql.com/doc/refman/8.0/en/using-encrypted-connections.html Using Encrypted Connections] and [https://dev.mysql.com/doc/refman/8.0/en/server-status-variables.html#statvar_Current_tls_ca Server State Variables].&lt;br /&gt;
* For steps to configure encrypted MySQL connections on cPanel &amp;amp; WHM servers, see [https://docs.cpanel.net/knowledge-base/security/how-to-configure-mysql-ssl-connections/ cPanel's How to Configure MySQL SSL Connections Documentation].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PHP ==&lt;br /&gt;
WHMCS is written in PHP.  Your environment's PHP will need to be a version supported by the version of WHMCS you are using.  In general, this will be one of the PHP versions that is either under active development or is receiving security fixes from the upstream PHP maintainers.&lt;br /&gt;
&lt;br /&gt;
Whenever possible, it is usually preferable to utilize a version of PHP that is under active development.  Unfortunately, there can be a number of circumstances that may complicate the viability of using the latest stable release of PHP.  These can range from a lack of control panel build support to incompatibility for other web applications on your server to backwards breaking behavior in PHP that inhibit ionCube Loader® support.  Regardless, WHMCS always provides support for a security-monitored PHP version available from the PHP maintainers and we are continually prioritizing compatibility with their releases.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;docs-alert-info&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-info-circle fa-fw&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;Our [[PHP Upgrade Guide]] outlines the essential steps you can follow in preparation for a PHP upgrade.  In WHMCS 7.5 we also provide the [[PHP_Version_Compatibility_Assessment| PHP Version Compatibility Assessment Utility]] designed to scan your WHMCS for any encoded files that may not be compatible for your desired PHP version.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Version Compatibility ===&lt;br /&gt;
{{:PHP Version Support Matrix}}&lt;br /&gt;
&lt;br /&gt;
=== Extensions ===&lt;br /&gt;
&lt;br /&gt;
WHMCS requires most of the default compiled extensions (for example, PDO, mysqlnd,  JSON, libxml, DOM, or Fileinfo). We assume that you will not intentionally disable them in the environment. &lt;br /&gt;
&lt;br /&gt;
You must also compile and enable the following additional extensions:&lt;br /&gt;
&lt;br /&gt;
==== Required ====&lt;br /&gt;
; cURL with SSL Support&lt;br /&gt;
: cURL is used when interacting with APIs of external systems such as the WHMCS Licensing &amp;amp; Update servers, payment gateways, servers that host your products, etc.  cURL's SSL support must be enabled so that verified and encrypted communication is possible.&lt;br /&gt;
&amp;lt;div class=&amp;quot;docs-alert-info&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-info-circle fa-fw&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;WHMCS will check for Curl version 7.36 or above.&amp;lt;/div&amp;gt;&lt;br /&gt;
; GD2 &lt;br /&gt;
: GD2 Image Library is used when performing graphic manipulation, such as image thumbnails and PDFs.&lt;br /&gt;
; IMAP**&lt;br /&gt;
: **IMAP is only required if you are utilizing support departments which access mailboxes.&lt;br /&gt;
; ionCube Loader&lt;br /&gt;
: See the [[#ionCube| ionCube Loader]] section below for more detail.&lt;br /&gt;
; JSON&lt;br /&gt;
: JSON exchanges data in the UI (for example, displaying success messages after completing an action like changing a password on a service).&lt;br /&gt;
; MYSQL**&lt;br /&gt;
: ** The original MySQL extension is required if, and only if, your environment uses PHP v5.6.&lt;br /&gt;
; PDO_MYSQL&lt;br /&gt;
: While the basic PDO API extension is compiled by default in PHP, you must also have the PDO MySQL driver enabled so that PDO can communicate with your MySQL database server.&lt;br /&gt;
;Reflection&lt;br /&gt;
: Reflection adds the ability to examine and identify classes, interfaces, functions, methods, and extensions within your application. As part of this, the extension can check also for and retrieve documented comments within the same classes, interfaces, functions, and methods.&lt;br /&gt;
; SOAP**&lt;br /&gt;
: **SOAP is only required by some specific, but possibly important, modules. It is used when interacting with their corresponding external services, such as EU VAT, OpenSRS, eWay Tokens, etc.&lt;br /&gt;
; XML&lt;br /&gt;
: WHMCS uses the SimpleXML extension that PHP compiles by default. It is highly used for communication with remote systems, such as registrars, payment gateways, and servers.&lt;br /&gt;
&lt;br /&gt;
==== Recommended ====&lt;br /&gt;
; BC Math&lt;br /&gt;
: The functions provided by BC Math are used when available. They provide performance improvements for when generating cryptographic data.&lt;br /&gt;
; Fileinfo&lt;br /&gt;
: The functions provided by Fileinfo are used when available. They provide functionalities to aid in determining the content type and encoding of uploaded files.&lt;br /&gt;
; GMP&lt;br /&gt;
: The functions provided by GMP are used when available. They provide significant performance improvements for when generating cryptographic data.&lt;br /&gt;
; iconv&lt;br /&gt;
: The iconv extension is for character set conversion, i.e. managing different non-latin characters. If available, this extension provides significant performance improvements and is highly recommended.&lt;br /&gt;
; Intl&lt;br /&gt;
: Intl performs character inspection and transformation, such as in IDN to perform Punycode conversions and transliterations. While we provide a third party dependency to compensate for the absence of Intl, it is much more performant to have the actual extension in the environment.&lt;br /&gt;
; mbstring&lt;br /&gt;
: The mbstring extension is for multi-byte character support, i.e managing non-Latin characters and glyphs.  If available, this extension provides significant performance, allows for broader support of characters and glyphs common throughout digital communications, and is highly recommended.&lt;br /&gt;
; OpenSSL&lt;br /&gt;
: OpenSSL is for secure communications and random number generation.  If available, this extension will be used and provide significant performance improvements for cryptographic routines.&lt;br /&gt;
&lt;br /&gt;
=== PHP INI Settings ===&lt;br /&gt;
; allow_url_fopen&lt;br /&gt;
: allow_url_fopen must be enabled for the WHMCS Updater.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;IonCube_Version&amp;quot;&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ionCube ==&lt;br /&gt;
&lt;br /&gt;
ionCube is a set of encoding and decoding tools that provide obfuscation and performance for PHP software. The decoder tool is a &amp;quot;loader&amp;quot; in the server environment. The encoder tool, an &amp;quot;encoder,&amp;quot; is part of PHP developers' publication processes.&lt;br /&gt;
&lt;br /&gt;
WHMCS is encoded with ionCube and requires that you install and enable the ionCube Loader extension in your server environment. We recommend running the latest version of the ionCube Loader for your PHP version. Our [[ioncube Installation Tutorial|ionCube Installation Tutorial]] provides an overview for installing this extension in your environment.&lt;br /&gt;
&lt;br /&gt;
Usually, ionCube will publish a complementing loader several weeks following a new PHP version. &lt;br /&gt;
&lt;br /&gt;
Using this latest loader will afford you two benefits: &lt;br /&gt;
* You have the potential for running previously-encoded files using a new base PHP version and running unencoded (raw) PHP code that is compatible with the base PHP version.  &lt;br /&gt;
* You can run newly-encoded files from a new ionCube Encoder (if one was published).&lt;br /&gt;
&lt;br /&gt;
The ionCube Encoder requires the developer to itemize the PHP versions to support. This helps to mitigate the limitations for supporting certain PHP versions concurrently: it is common for PHP applications to not support the latest PHP version on the initial PHP release date. Applications may also have further requirements about the oldest supported PHP version and the required loader.&lt;br /&gt;
&lt;br /&gt;
Each WHMCS version has always supported at least two PHP versions. Each new version of WHMCS has always supported at least one of the PHP versions supported in the previous WHMCS publication. This perpetual overlap of PHP version support across WHMCS publications means that you always have a path to upgrade your PHP environment without having to update the WHMCS software at the same time. As well, it allows the WHMCS Updater to safely automate updates for your current environment. Providing this overlap is integral to enabling your environment maintenance strategy, giving you the best balance of security, stability and forward compatibility as soon as possible.&lt;br /&gt;
&lt;br /&gt;
=== Version Compatibility ===&lt;br /&gt;
{{:IonCube Loader Version Matrix}}&lt;/div&gt;</summary>
		<author><name>JoshQ</name></author>	</entry>

	<entry>
		<id>http://3.19.219.109/index.php?title=WHMCS_cPanel_Licensing_Module&amp;diff=34357</id>
		<title>WHMCS cPanel Licensing Module</title>
		<link rel="alternate" type="text/html" href="http://3.19.219.109/index.php?title=WHMCS_cPanel_Licensing_Module&amp;diff=34357"/>
				<updated>2024-01-29T16:07:43Z</updated>
		
		<summary type="html">&lt;p&gt;JoshQ: Add steps to follow after changing Manage2 credentials.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About this Addon Module ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;docs-alert-warning&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;title&amp;quot;&amp;gt;Licensing Addon&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* The cPanel Licensing Automation module is not associated with the WHMCS [[Licensing Addon]].&lt;br /&gt;
* This module is for cPanel Partners. If you are not yet a partner, see [https://www.cpanel.net/partners/ the cPanel website].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The cPanel Licensing Automation module for WHMCS is a tool that utilizes the cPanel Manage2 API to provide an automated solution for cPanel Partners to provision, manage, and bill for cPanel &amp;amp; WHM licenses.&lt;br /&gt;
&lt;br /&gt;
For help to get started, see [[WHMCS cPanel Licensing Module Getting Started Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;table&amp;quot; style=&amp;quot;text-align:center;margin:1em 1em 1em 0;background:#F9F9F9;border:1px #AAA solid;border-collapse:collapse;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;border:1px #AAA solid;padding:0.2em;background:#F2F2F2;text-align:center;&amp;quot;&amp;gt;Addon Name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;border:1px #AAA solid;padding:0.2em;background:#F2F2F2;text-align:center;&amp;quot;&amp;gt;Latest Release&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;border:1px #AAA solid;padding:0.2em;background:#F2F2F2;text-align:center;&amp;quot;&amp;gt;Current Version&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;border:1px #AAA solid;padding:0.2em;background:#F2F2F2;text-align:center;&amp;quot;&amp;gt;Compatible With&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;border:1px #AAA solid;padding:0.2em;background:#F2F2F2;text-align:center;&amp;quot;&amp;gt;Included in WHMCS&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px #AAA solid;padding:0.2em;&amp;quot;&amp;gt;WHMCS cPanel Licensing Module&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px #AAA solid;padding:0.2em;&amp;quot;&amp;gt;N/A&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px #AAA solid;padding:0.2em;&amp;quot;&amp;gt;N/A&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px #AAA solid;padding:0.2em;&amp;quot;&amp;gt;N/A&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px #AAA solid;padding:0.2em;color:darkred;&amp;quot;&amp;gt;No&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Activating WHMCS cPanel Licensing Module ==&lt;br /&gt;
&lt;br /&gt;
You will need to download and upload the module before you can activate the addon through the Admin Area.&lt;br /&gt;
&lt;br /&gt;
# Download the latest version from [https://marketplace.whmcs.com/product/4993 the WHMCS Marketplace].&lt;br /&gt;
# Extract the zip file.&lt;br /&gt;
# Upload the &amp;lt;tt&amp;gt;cpanellicensing&amp;lt;/tt&amp;gt; directory to the &amp;lt;tt&amp;gt;/modules/addons&amp;lt;/tt&amp;gt; folder of your WHMCS installation.&lt;br /&gt;
# Go to '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Addon Modules]]''' or, prior to WHMCS 8.0, '''Setup &amp;gt; Addon Modules'''.&lt;br /&gt;
# Click '''Activate''' for '''cPanel Licensing'''.&lt;br /&gt;
# Click '''Configure'''.&lt;br /&gt;
# Select the admin role groups who will have access to this addon.&lt;br /&gt;
# Select the admin users who can configure settings within the addon.&lt;br /&gt;
# Click '''Save Changes'''.&lt;br /&gt;
&lt;br /&gt;
== Using WHMCS cPanel Licensing Module ==&lt;br /&gt;
&lt;br /&gt;
[[File:CPLic_AuthenticatingIntoManage2.png|thumb|Manage2 Login Prompt]]&lt;br /&gt;
&lt;br /&gt;
After configuring the module, you will need to authenticate into Manage2.&lt;br /&gt;
&lt;br /&gt;
To do this, navigate to '''Addons &amp;gt; cPanel Licensing''' and log in using your Manage2 username and password. The system will import your Manage2 data into WHMCS. This may take several minutes depending on the amount of licenses associated with the Manage2 account.&lt;br /&gt;
&lt;br /&gt;
=== Autoscale ===&lt;br /&gt;
&lt;br /&gt;
'''Autoscale''' allows the cPanel Licensing addon module to dynamically adjust a service's configurable option based on the number of accounts associated with its cPanel license. Use the Autoscale settings below when you want WHMCS to automatically upgrade a license to the next tier based on usage. &lt;br /&gt;
&lt;br /&gt;
Autoscale uses the following procedure:&lt;br /&gt;
&lt;br /&gt;
# A server administrator provisions an extra cPanel account which in turn pushes the server into the next cPanel license tier.&lt;br /&gt;
# cPanel's Manage2 software detects this and changes the license tier for billing purposes in the cPanel Partner account.&lt;br /&gt;
# WHMCS  performs a synchronisation with Manage2 at specific intervals that picks up this change.&lt;br /&gt;
# The Control Panel configurable option in WHMCS changes to match the new cPanel license tier and as a result of this, the service price is auto recalculated to include the additional cost of the new license tier.&lt;br /&gt;
# The next renewal invoice generated by the service (per the Next Due Date) will reflect the new cPanel license tier.&lt;br /&gt;
&lt;br /&gt;
This ensures that the client is always billed appropriately for their current cPanel license tier without any manual intervention.&lt;br /&gt;
&lt;br /&gt;
=== Settings ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPLic_Settings.png|thumb|Settings Tab]]&lt;br /&gt;
&lt;br /&gt;
The cPanel Licensing addon offers further configuration settings concerning Data and API Permissions, as well as Invoice and Cart Display Options.&lt;br /&gt;
&lt;br /&gt;
These can be accessed by navigating to '''Addons &amp;gt; cPanel Licensing''', and then clicking on the '''Settings''' tab. The settings seen on this page are detailed below.&lt;br /&gt;
&lt;br /&gt;
==== Data and API Permissions ====&lt;br /&gt;
&lt;br /&gt;
*'''Manage2 Account''' - Your Manage2 Registered Email. Here you will see the logged in user and a '''Logout''' button.&lt;br /&gt;
*'''Provisioning Default Group''' - The default group to assign new licenses to.&lt;br /&gt;
*'''Permissions''' - Access controls for functionality within this addon.&lt;br /&gt;
&lt;br /&gt;
==== Invoice and Cart Display Options ====&lt;br /&gt;
&lt;br /&gt;
*'''Invoicing Line Item Format''' - The line item description used for invoicing by packages that offer bulk cPanel accounts.&lt;br /&gt;
*'''Option Info Tooltip''' - Optional tooltip text to display near license configurable options during checkout. HTML is supported.&lt;br /&gt;
*'''Option Description Format''' - The configurable option selection format for display on the order form for packages that offer bulk cPanel accounts.&lt;br /&gt;
*'''Autoscale Label''' - The label to be displayed on the order form.&lt;br /&gt;
*'''Autoscale Notification Email''' - The email template to be sent upon an autoscale change. For more information, see the [[WHMCS cPanel Licensing Module#Autoscale Notification Email|Autoscale Notification Email]] section.&lt;br /&gt;
&lt;br /&gt;
==== Autoscale Notification Email ====&lt;br /&gt;
&lt;br /&gt;
The cPanel Licensing module can be configured to send a custom email notification to a client upon an Autoscale Change.&lt;br /&gt;
&lt;br /&gt;
To configure this functionality you will need to first create the custom email to be used. You can do this at '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Email Templates]]''' or, prior to WHMCS 8.0, '''Setup &amp;gt; Email Templates'''. This custom email template type must be either '''Product/Service Messages''' or '''Notification Messages'''. &lt;br /&gt;
&lt;br /&gt;
The custom template to be used will have access to the following merge fields:&lt;br /&gt;
&lt;br /&gt;
*'''newOption''' - The display name of the configurable option being upgraded to.&lt;br /&gt;
*'''oldOption''' - The display name of the configurable option being upgrade from.&lt;br /&gt;
*'''isUsageUpgrade''' - A boolean indicating whether or not the upgrade is due to usage activity.&lt;br /&gt;
&lt;br /&gt;
Once the custom email template has been created, it can be set as the ''Autoscale Notification Email'' template. &lt;br /&gt;
&lt;br /&gt;
To do this:&lt;br /&gt;
&lt;br /&gt;
# Go to '''Addons &amp;gt; cPanel Licensing'''.&lt;br /&gt;
# Click on the '''Settings''' tab.&lt;br /&gt;
# Locate the '''Autoscale Notification Email''' setting.&lt;br /&gt;
# Select the custom email template from the menu.&lt;br /&gt;
# Click '''Save Changes'''.&lt;br /&gt;
&lt;br /&gt;
=== Pricing ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPLic_Pricing.png|thumb|Pricing Tab]]&lt;br /&gt;
&lt;br /&gt;
cPanel licenses are sold as configurable options of products. This interface allows you to set pricing for those options as well as respective metric pricing for cPanel accounts.&lt;br /&gt;
&lt;br /&gt;
Typically the configurable option would be assigned to a product with which a cPanel license would beneficial; a VPS or Dedicated Server. It can also be sold as a [[#Standalone_Product|standalone product]].&lt;br /&gt;
&lt;br /&gt;
On this tab you will see the ''ID'', ''Configuration Name'', ''Selections'', and ''Auto-Scale'' columns displayed for each option that has been created with, or imported into, the cPanel Licensing addon.&lt;br /&gt;
&lt;br /&gt;
Additionally, you will see buttons labelled ''New'', ''Import'', and ''Manage'' which allow you to create, import, and manage options respectively. The functionality of these buttons is detailed below.&lt;br /&gt;
&lt;br /&gt;
==== Create New Option ====&lt;br /&gt;
&lt;br /&gt;
[[File:CPLic_CreateNewOption.png|thumb|Create New Option Modal]]&lt;br /&gt;
&lt;br /&gt;
Clicking on the ''New'' button will bring up the ''Create New Option'' modal. It is within this modal that you can create a new [[Configurable Options|configurable option]] to be used for offering cPanel licenses to your customers via this module.&lt;br /&gt;
&lt;br /&gt;
The following configuration settings are displayed on this modal:&lt;br /&gt;
&lt;br /&gt;
*'''Parent Group''' - The option group to create the new option within. Should the ''Create New Group'' option be selected, then the ''Group Name'' option will appear.&lt;br /&gt;
*'''Group Name''' - The name for the new configurable option group. This option will only appear when the ''Create New Group'' option has been selected from the ''Parent Group'' drop-down menu.&lt;br /&gt;
*'''Option Name''' - The display name for the new configurable option.&lt;br /&gt;
*'''Option Type''' - The type to be used by the new configurable option. Only drop-down and radio option types are supported.&lt;br /&gt;
*'''Auto-Populate''' - Automatically populate the new option with the default cPanel license package offerings and recommended retail pricing.&lt;br /&gt;
*'''Hardware Type''' - Offers a selection between the ''Dedicated/Metal'' and ''VPS/Cloud'' options.&lt;br /&gt;
*'''Default Visibility''' - Toggles whether or not the option is visible from the Order Form.&lt;br /&gt;
&lt;br /&gt;
Once the settings have been completed, clicking on the ''Create'' button will generate the Configurable Option Group, create Configurable Options if the ''Auto-Populate'' option was selected, and display the option group in the Pricing tab of the module.&lt;br /&gt;
&lt;br /&gt;
==== Import Existing Option ====&lt;br /&gt;
&lt;br /&gt;
[[File:CPLic_ImportExistingOption.png|thumb|Import Existing Option Modal]]&lt;br /&gt;
&lt;br /&gt;
If you have an existing '''Configurable Option Group''' and '''Configurable Options''' that you would like to be used for the provisioning and billing of cPanel licenses, then these can be imported for use with the cPanel Licensing addon.&lt;br /&gt;
&lt;br /&gt;
During this process you will be prevented with a list of configurable options, and be asked to associate them with a cPanel Package. If a configurable option is not related to a cPanel license, then leave the dropdown at the ''Not a cPanel License Option'' value. Options left at this value will not be used by the cPanel Licensing module, and will continue to function as a normal configurable option.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;docs-alert-warning&amp;quot;&amp;gt;Only ''Dropdown'' or ''Radio'' configurable options are supported for import. Other option types will not be available for import.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Clicking on the ''Import'' button will bring up the ''Import Existing Option'' modal. It is within this modal that you can import an existing configurable option to be used for the provisioning and billing of cPanel licenses via this module.&lt;br /&gt;
&lt;br /&gt;
Within the ''Import Existing Option'' modal you will be presented with the ''Option Name'' drop-down menu. This menu allows you to select which Configurable Option you would like to import.&lt;br /&gt;
&lt;br /&gt;
Selecting the desired option from the drop-down and clicking the ''Continue'' button will bring you to the ''Configure Import'' section. Here you will see a list of ''Selectable Options'' displayed. For each selectable option, please select a cPanel Package below that it relates to. If an option is not related to a cPanel license, leave the dropdown at the default value.&lt;br /&gt;
&lt;br /&gt;
Clicking the ''Import'' button will import the configurable options into the module, and make them available for further configuration via the ''Pricing'' tab.&lt;br /&gt;
&lt;br /&gt;
====Option &amp;amp; Price Management====&lt;br /&gt;
&lt;br /&gt;
[[File:CPLic_OptionPriceManagement.png|thumb|Option &amp;amp; Price Management Modal]]&lt;br /&gt;
&lt;br /&gt;
Within the ''Manage'' column for each associated option a button with a wrench icon exists. This is the ''Manage'' button, and clicking on this button will bring up the ''Option &amp;amp; Price Management'' modal. It is within this modal that you can modify options within the group, as well as modify the cPanel related options themselves.&lt;br /&gt;
&lt;br /&gt;
This modal is made up of three elements: the ''Configurable Option Settings'' section in the top-left, the ''Selectable Options'' section in the bottom-left, and the ''Selectable Option Content'' panel on the right.&lt;br /&gt;
&lt;br /&gt;
===== Configurable Option Settings =====&lt;br /&gt;
&lt;br /&gt;
The '''Configurable Option Settings''' section provides the ability to alter the ''Configurable Option Type'', and toggle both the ''Visibility'' and ''Autoscale'' Option.&lt;br /&gt;
&lt;br /&gt;
The '''Autoscale Option''' toggle allows the cPanel Licensing addon module to dynamically adjust a service's configurable option based on the number of licenses associated with its cPanel account. This should be used when you want WHMCS to automatically upgrade a license to the next tier based on usage. Enabling this option requires that all configurable options associated with a cPanel Package have pricing configured.&lt;br /&gt;
&lt;br /&gt;
All changes made in this section are automatically saved.&lt;br /&gt;
&lt;br /&gt;
===== Selectable Options =====&lt;br /&gt;
&lt;br /&gt;
The '''Selectable Options''' section displays the full list of existing configurable options, and offers the ability to create new options via the ''Add Option'' button. Clicking on an option from this list will display that option's content within the ''Selectable Option Content'' panel.&lt;br /&gt;
&lt;br /&gt;
Additionally, in Version 7.7 and later, dragging the options allow you to rearrange their order as desired. All changes made in this section are automatically saved.&lt;br /&gt;
&lt;br /&gt;
===== Selectable Option Content =====&lt;br /&gt;
&lt;br /&gt;
The '''Selectable Option Content''' section provides both an overview of that option, as well as the ability to configure it further. The ''Name'', ''Visibility'', and ''Package'' details are immediately displayed at the top, and can all be altered as desired. Additionally, the ''Configurable Option ID'' is displayed in the top-left corner.&lt;br /&gt;
&lt;br /&gt;
The Pricing section is offers the ability to configure pricing for the option. Here the ''Base Recurring'', and ''Setup Fee'' values can be modified. The ''Metric: cPanel Accounts'' and ''Threshold'' values can also be modified for packages that support them.&lt;br /&gt;
&lt;br /&gt;
The ''Auto populate other billing cycles based on monthly pricing'' toggle will render the Billing Cycle tabs un-clickable and will automatically populate their pricing based on the pricing present in the Monthly pricing tab.&lt;br /&gt;
&lt;br /&gt;
Changes to this section are not automatically saved, and clicking on the ''Save'' button will commit the changes. Inversely, clicking on the ''Delete'' button will delete the configurable option.&lt;br /&gt;
&lt;br /&gt;
===== Metric: cPanel Accounts =====&lt;br /&gt;
&lt;br /&gt;
The '''Metric: cPanel Accounts''' setting is displayed when configuring pricing for packages that offer an unlimited number of cPanel accounts. This setting provides the ability to set a per-account value that the customer will be billed for, as well as a threshold to define the number of accounts a customer must have before they are billed on a per-account basis.&lt;br /&gt;
&lt;br /&gt;
When a customer orders a package, with the ''Metric: cPanel Accounts'' offering, a snapshot of the current price is taken. This snapshot is then stored, and used when generating renewal invoices for the customer's service in the future. This is done to ensure that changes can be made to a package's metric pricing without affecting existing customer orders.&lt;br /&gt;
&lt;br /&gt;
If you need to ensure that the pricing snapshot is updated to the current metric pricing, then this can be achieved by selecting the [[Clients:Products/Services_Tab#Auto_Recalculate_on_Save|''Auto Recalculate on Save'']] checkbox and saving the service. This will see the existing snapshot discarded, and a new one created with the current metric pricing for the associated package.&lt;br /&gt;
&lt;br /&gt;
The cPanel Licensing Addon retrieves the cPanel account value from the cPanel licensing system (Manage2) at the time of invoice generation. This is to ensure use of the most accurate value relative to Manage2, to which the license reseller is accountable. Manage2 doesn't provide the historical data necessary to calculate any prior month's usage. At this time, the cPanel Licensing Addon doesn't have historical snapshot capabilities that can augment this canonical data source.&lt;br /&gt;
&lt;br /&gt;
The ''Auto Recalculate on Save'' option will continue to function as normal. When used a service's ''Recurring Amount'' will be populated with current pricing based on the service and configurable options selected.&lt;br /&gt;
&lt;br /&gt;
====Standalone Product====&lt;br /&gt;
&lt;br /&gt;
To present a standalone product that provisions a cPanel license, use the cPanel licensing module with the Auto Release provisioning module:&lt;br /&gt;
&lt;br /&gt;
# Go to '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Products and Services|Products/Services]]''' or, prior to WHMCS 8.0, '''Setup &amp;gt; Products/Services &amp;gt; Products/Services'''.[[File:Cpanel standalone2.png|thumb|Configure Pricing]]&lt;br /&gt;
#Click '''Create a New Product'''.&lt;br /&gt;
#Select '''Other''' for '''Product Type'''.&lt;br /&gt;
#Enter a '''Product Name'''.&lt;br /&gt;
#Select ''Auto Release'' for '''Module Name'''.&lt;br /&gt;
#Click '''Continue'''.&lt;br /&gt;
# Select the '''Pricing''' tab.&lt;br /&gt;
#Choose '''Recurring''' for '''Payment Type'''.[[File:Cpanel standalone3.png|thumb|Configure the Auto Release Module]]&lt;br /&gt;
# Check the checkboxes in the '''One Time/Monthly''' column.&lt;br /&gt;
#Specify '''Setup''' and '''Price''' values of &amp;lt;tt&amp;gt;0.00&amp;lt;/tt&amp;gt;.&lt;br /&gt;
#Select the '''Module Settings''' tab.&lt;br /&gt;
#Choose the '''Automatically setup the product as soon as the first payment is received''' option.&lt;br /&gt;
#Select the '''Configurable Options''' tab.&lt;br /&gt;
#Click the configurable option group for the cPanel license types. The cPanel Licensing Addon [[#Pricing|creates this]].&lt;br /&gt;
#Configure any other options are desired.&lt;br /&gt;
#Click '''Save Changes'''.&lt;br /&gt;
&lt;br /&gt;
When this product is ordered, clients will be presented with the cPanel License Tier configurable option at the product configuration stage of the shopping cart and a license provisioned upon payment. The price of the configurable option will form the amount invoiced to the client each month.&lt;br /&gt;
&lt;br /&gt;
===Manage2 Data===&lt;br /&gt;
The data imported from Manage2 is displayed within the module itself. This information is located within the ''Licenses'', ''Groups'', and ''Packages'' tabs. This allows you to quickly review and action your Manage2 data without leaving WHMCS.&lt;br /&gt;
&lt;br /&gt;
====Licenses====&lt;br /&gt;
[[File:CPLic_Manage2DataLicenses.png|thumb|Licenses Tab]]&lt;br /&gt;
&lt;br /&gt;
Licenses are associated with a clients' services. This interface allows modification of the license data stored at Manage2. The WHMCS data can be managed at the linked service.&lt;br /&gt;
&lt;br /&gt;
On this tab you will see ''License ID'', ''Package/Group'', ''IP/Hostname'', ''Assigned Service'', and ''Status'' columns displayed for each license associated with your Manage2 account.&lt;br /&gt;
 &lt;br /&gt;
The '''Actions''' column offers the ability to perform the following actions against the associated license.&lt;br /&gt;
&lt;br /&gt;
*'''Assign License''' - Assign the license to an existing service. More information can be found in the [[WHMCS cPanel Licensing Module#Assign License &amp;amp; Link to Existing License|Assign License &amp;amp; Link to Existing License]] section.&lt;br /&gt;
*'''Change IP''' - Change the license's IP Address.&lt;br /&gt;
*'''Change group''' - Change the license's Group.&lt;br /&gt;
*'''Change package''' - Change the license's Package.&lt;br /&gt;
*'''Expire''' - Expire the license within Manage2.&lt;br /&gt;
*'''View License Details''' - Review a detailed output of license information.&lt;br /&gt;
&lt;br /&gt;
====Groups====&lt;br /&gt;
[[File:CPLic_Manage2DataGroups.png|thumb|Groups Tab]]&lt;br /&gt;
&lt;br /&gt;
Groups are arbitrary categories. They are unique to your Company. They can help keep your licenses organised by modeling how you sell and manage the product-customer lifecycle.&lt;br /&gt;
&lt;br /&gt;
On this tab you will see the ''Group ID'', ''Name'', ''Attributes'', and ''Licenses'' columns displayed for each group associated with your Manage2 account.&lt;br /&gt;
&lt;br /&gt;
The '''Actions''' column offers the ability to perform the following actions against the associated group.&lt;br /&gt;
&lt;br /&gt;
*'''Change name''' - Change the group's name within Manage2.&lt;br /&gt;
*'''Change tax status''' - Change the group's tax status within Manage2.&lt;br /&gt;
*'''Show Licenses''' - Display a filtered list of licenses associated with the specific group.&lt;br /&gt;
&lt;br /&gt;
====Packages====&lt;br /&gt;
[[File:CPLic_Manage2DataPackages.png|thumb|Packages Tab]]&lt;br /&gt;
&lt;br /&gt;
Packages are SKUs. They represent the product, features, or bundled options that are granted to the license holder.&lt;br /&gt;
&lt;br /&gt;
On this tab you will see the ''Package ID'', ''Name'', ''Attributes'', and ''Licenses'' columns displayed for each package associated with your Manage2 account.&lt;br /&gt;
&lt;br /&gt;
The ''Actions'' column offers the ability to perform the following actions against the associated package.&lt;br /&gt;
&lt;br /&gt;
*'''Show Licenses''' - Display a filtered list of licenses associated with the specific package.&lt;br /&gt;
&lt;br /&gt;
===Service Management===&lt;br /&gt;
[[File:CPLic_ServiceManagement.png|thumb|cPanel Licensing Service Panel]]&lt;br /&gt;
&lt;br /&gt;
Services associated with a cPanel Licensing related Option Group will see a panel labeled ''cPanel Licensing'' when viewing that service via the Admin Area.&lt;br /&gt;
&lt;br /&gt;
When a service is associated with a cPanel license, an overview if the license details is displayed along with the following buttons:&lt;br /&gt;
&lt;br /&gt;
*'''Sync IP''' - Change the license's IP Address to the value displayed in the ''Dedicated IP'' field or ''IP Address'' custom field.&lt;br /&gt;
*'''Sync Package''' - Change the license's Package to the value displayed in the cPanel Licensing configurable option.&lt;br /&gt;
*'''View Details''' - Display a modal containing the cPanel License Information.&lt;br /&gt;
*'''Expire''' - Expire the license within Manage2.&lt;br /&gt;
&lt;br /&gt;
The following buttons will be displayed within the panel at all times:&lt;br /&gt;
&lt;br /&gt;
*'''Provision New cPanel License''' - Automatically provision a new license from Manage2 using the package displayed in the cPanel Licensing configurable option and the IP address displayed in the ''Dedicated IP'' field or ''IP Address'' custom field.&lt;br /&gt;
*'''Link to Existing License''' - Display a modal that allows for the search of existing licenses to be assigned to the service. More information can be found in the [[WHMCS cPanel Licensing Module#Assign License &amp;amp; Link to Existing License|Assign License &amp;amp; Link to Existing License]] section.&lt;br /&gt;
&lt;br /&gt;
===Handling Manual License Cancellations===&lt;br /&gt;
Expiring a license, either by clicking '''Expire''' in the '''[[Clients:Products/Services_Tab|Products/Services]]''' tab of the client profile or in Manage2, does not automatically update the '''Recurring Amount''' for the parent service. The system cannot determine whether to bill a license using the license's state.&lt;br /&gt;
&lt;br /&gt;
To cancel a license and ensure that the system updates the '''Recurring Amount''' value correctly:&lt;br /&gt;
# Click '''Expire''' in the '''Service Management''' section.&lt;br /&gt;
# Set the parent service's [[WHMCS cPanel Licensing Module#Configurable Option Settings|configurable option]] to ''None''.&lt;br /&gt;
# Set '''Recalculate on Save''' to ''ON''.&lt;br /&gt;
# Click '''Save Changes'''.&lt;br /&gt;
&lt;br /&gt;
The system will update the parent service's '''Recurring Amount''' to no longer include the cost of the expired license.&lt;br /&gt;
&lt;br /&gt;
===Assign License &amp;amp; Link to Existing License===&lt;br /&gt;
[[File:CPLic_AssignLicense.png|thumb|Assign License Modal]]&lt;br /&gt;
[[File:CPLic_LinkExistingLicense.png|thumb|Link to Existing License Modal]]&lt;br /&gt;
&lt;br /&gt;
Both the Licenses tab, seen on the cPanel Licensing module page, and the cPanel Licensing panel, seen on the Service page, offer the ability to manually assign a service to a license and vice versa.&lt;br /&gt;
&lt;br /&gt;
The '''Assign License''' modal provides a searchable drop-down menu that can be used to locate and select the desired service. Once the service has been selected, clicking on the ''Assign'' button will assign the service to that specific license.&lt;br /&gt;
&lt;br /&gt;
The '''Link to Existing License''' modal provides a searchable drop-down menu that can be used to locate and select the desired license. Once the license has been selected, clicking on the ''Assign'' button will assign the license to that specific service.&lt;br /&gt;
&lt;br /&gt;
In both cases, it is important to note that the configurable option will not be automatically selected. You must navigate to the Service page in the Admin Area, set the configurable option to coincide with the appropriate package if fixed, or enable the autoscale option if applicable. '''This is necessary for automated billing to occur.'''&lt;br /&gt;
&lt;br /&gt;
Additionally, only a singular active license can be assigned to a service. Using the ''Link to Existing License'' or ''Assign License'' functionality to assign a new license to a service already in possession of an active license will result in the replacement of that active license. In this instance, a prompt will appear to confirm this action.&lt;br /&gt;
&lt;br /&gt;
===Updating Manage2 Account Credentials===&lt;br /&gt;
&lt;br /&gt;
The cPanel Licensing Addon uses your Manage2 username and password to authenticate with the Manage2 API. To facilitate this, the system encrypts and stores your Manage2 credentials in WHMCS's database. Because updating your credentials in Manage2 does not automatically trigger an update in WHMCS, the system will no longer be able to successfully authenticate requests.&lt;br /&gt;
&lt;br /&gt;
After updating your Manage2 credentials, ensure that the system can communicate with Manage2:&lt;br /&gt;
&lt;br /&gt;
# In the Admin Area, go to '''Addons &amp;gt; cPanel Licensing''' and click on the '''Settings''' tab.&lt;br /&gt;
# In the '''Manage2 Account''' section, click '''Logout'''.&lt;br /&gt;
# Log in using your Manage2 account credentials.&lt;br /&gt;
&lt;br /&gt;
After successfully logging in, the system will store your new Manage2 login details in the database.&lt;br /&gt;
&lt;br /&gt;
== Upgrading ==&lt;br /&gt;
&lt;br /&gt;
If you have an earlier version of the cPanel Licensing Module installed, follow the steps below:&lt;br /&gt;
&lt;br /&gt;
# Download the latest version from [https://marketplace.whmcs.com/product/4993 the WHMCS Marketplace].&lt;br /&gt;
# Extract the zip file.&lt;br /&gt;
# Upload the 'cpanellicensing' directory to the '/modules/addons' folder of your WHMCS installation.&lt;br /&gt;
&lt;br /&gt;
====Troubleshooting====&lt;br /&gt;
This section covers the error messages which may be encountered during license assignment.&lt;br /&gt;
&lt;br /&gt;
=====A license was deactivated on the same IP last month before billing could occur=====&lt;br /&gt;
This response indicates that the previous cPanel license associated with the service's IP address accrued usage, and was deactivated before billing could occur within Manage2.&lt;br /&gt;
&lt;br /&gt;
A reactivation fee must be paid before a new license can be provisioned for that IP address. This must be done via Manage2 directly.&lt;br /&gt;
&lt;br /&gt;
=====This license is already assigned to another service=====&lt;br /&gt;
Review the '''Addons &amp;gt; cPanel Licensing''' page to see the current service to which the license is assigned in WHMCS.&lt;br /&gt;
&lt;br /&gt;
Click the ''Assign'' button a second time to remove the current assignment and assign to the current service.&lt;br /&gt;
&lt;br /&gt;
=====You cannot assign a license to this service=====&lt;br /&gt;
'''You cannot assign a license to this service as the product to which it is assigned does not have a configurable option for a cPanel license'''&lt;br /&gt;
&lt;br /&gt;
There is no license pricing configuration assigned to the product in use, a license can only be assigned when a pricing scheme is associated with the product. The following steps will make the necessary adjustments to the product/service configuration:&lt;br /&gt;
&lt;br /&gt;
# Navigate to the client's '''[[Clients:Products/Services Tab|Products/Services]]''' tab for the service.&lt;br /&gt;
# Check whether the cPanel Licenses configurable option appears. If it does not:&lt;br /&gt;
## Go to '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Configurable Options]]''' or, prior to WHMCS 8.0, '''Setup &amp;gt; Products/Services &amp;gt; Configurable Options'''.&lt;br /&gt;
## Click '''Edit''' for the cPanel licensing option group.&lt;br /&gt;
## Press Ctrl + Click to select all the applicable products that will offer a cPanel license option. Make certain to select the product that is currently exhibiting the error.&lt;br /&gt;
## Click '''Save Changes'''.&lt;br /&gt;
# If the cPanel License configurable option is displayed, select the desired cPanel license tier.&lt;br /&gt;
# Click '''Save Changes'''.&lt;br /&gt;
# Use the '''Assign''' or '''Link''' buttons again to complete the task successfully.&lt;br /&gt;
&lt;br /&gt;
=====cPanel Licensing options of product are not set for this service=====&lt;br /&gt;
&lt;br /&gt;
'''cPanel Licensing options of product are not set for this service. Review and save the cPanel licensing options for this service and try again'''&lt;br /&gt;
&lt;br /&gt;
A license pricing configuration is assigned to the product in use, but the desired option has not been selected for the individual service record. WHMCS needs to know the desired license tier to invoice the client correctly. &lt;br /&gt;
&lt;br /&gt;
The following steps will make the necessary adjustments to the service record:&lt;br /&gt;
&lt;br /&gt;
# Go to the client's '''[[Clients:Products/Services Tab|Products/Services]]''' tab for the service.&lt;br /&gt;
# Use the cPanel License configurable option to select the desired cPanel license tier.&lt;br /&gt;
# Click '''Save Changes'''.&lt;br /&gt;
# Use the '''Assign''' or '''Link''' buttons again to complete the task successfully.&lt;br /&gt;
&lt;br /&gt;
== Change Log ==&lt;br /&gt;
&lt;br /&gt;
''N/A''&lt;/div&gt;</summary>
		<author><name>JoshQ</name></author>	</entry>

	<entry>
		<id>http://3.19.219.109/index.php?title=WHMCS_cPanel_Licensing_Module&amp;diff=34354</id>
		<title>WHMCS cPanel Licensing Module</title>
		<link rel="alternate" type="text/html" href="http://3.19.219.109/index.php?title=WHMCS_cPanel_Licensing_Module&amp;diff=34354"/>
				<updated>2024-01-17T14:59:55Z</updated>
		
		<summary type="html">&lt;p&gt;JoshQ: Add steps for manually cancelling a license&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About this Addon Module ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;docs-alert-warning&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;title&amp;quot;&amp;gt;Licensing Addon&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* The cPanel Licensing Automation module is not associated with the WHMCS [[Licensing Addon]].&lt;br /&gt;
* This module is for cPanel Partners. If you are not yet a partner, see [https://www.cpanel.net/partners/ the cPanel website].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The cPanel Licensing Automation module for WHMCS is a tool that utilizes the cPanel Manage2 API to provide an automated solution for cPanel Partners to provision, manage, and bill for cPanel &amp;amp; WHM licenses.&lt;br /&gt;
&lt;br /&gt;
For help to get started, see [[WHMCS cPanel Licensing Module Getting Started Guide]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;table&amp;quot; style=&amp;quot;text-align:center;margin:1em 1em 1em 0;background:#F9F9F9;border:1px #AAA solid;border-collapse:collapse;width:100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;border:1px #AAA solid;padding:0.2em;background:#F2F2F2;text-align:center;&amp;quot;&amp;gt;Addon Name&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;border:1px #AAA solid;padding:0.2em;background:#F2F2F2;text-align:center;&amp;quot;&amp;gt;Latest Release&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;border:1px #AAA solid;padding:0.2em;background:#F2F2F2;text-align:center;&amp;quot;&amp;gt;Current Version&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;border:1px #AAA solid;padding:0.2em;background:#F2F2F2;text-align:center;&amp;quot;&amp;gt;Compatible With&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;border:1px #AAA solid;padding:0.2em;background:#F2F2F2;text-align:center;&amp;quot;&amp;gt;Included in WHMCS&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px #AAA solid;padding:0.2em;&amp;quot;&amp;gt;WHMCS cPanel Licensing Module&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px #AAA solid;padding:0.2em;&amp;quot;&amp;gt;N/A&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px #AAA solid;padding:0.2em;&amp;quot;&amp;gt;N/A&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px #AAA solid;padding:0.2em;&amp;quot;&amp;gt;N/A&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border:1px #AAA solid;padding:0.2em;color:darkred;&amp;quot;&amp;gt;No&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Activating WHMCS cPanel Licensing Module ==&lt;br /&gt;
&lt;br /&gt;
You will need to download and upload the module before you can activate the addon through the Admin Area.&lt;br /&gt;
&lt;br /&gt;
# Download the latest version from [https://marketplace.whmcs.com/product/4993 the WHMCS Marketplace].&lt;br /&gt;
# Extract the zip file.&lt;br /&gt;
# Upload the &amp;lt;tt&amp;gt;cpanellicensing&amp;lt;/tt&amp;gt; directory to the &amp;lt;tt&amp;gt;/modules/addons&amp;lt;/tt&amp;gt; folder of your WHMCS installation.&lt;br /&gt;
# Go to '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Addon Modules]]''' or, prior to WHMCS 8.0, '''Setup &amp;gt; Addon Modules'''.&lt;br /&gt;
# Click '''Activate''' for '''cPanel Licensing'''.&lt;br /&gt;
# Click '''Configure'''.&lt;br /&gt;
# Select the admin role groups who will have access to this addon.&lt;br /&gt;
# Select the admin users who can configure settings within the addon.&lt;br /&gt;
# Click '''Save Changes'''.&lt;br /&gt;
&lt;br /&gt;
== Using WHMCS cPanel Licensing Module ==&lt;br /&gt;
&lt;br /&gt;
[[File:CPLic_AuthenticatingIntoManage2.png|thumb|Manage2 Login Prompt]]&lt;br /&gt;
&lt;br /&gt;
After configuring the module, you will need to authenticate into Manage2.&lt;br /&gt;
&lt;br /&gt;
To do this, navigate to '''Addons &amp;gt; cPanel Licensing''' and log in using your Manage2 username and password. The system will import your Manage2 data into WHMCS. This may take several minutes depending on the amount of licenses associated with the Manage2 account.&lt;br /&gt;
&lt;br /&gt;
=== Autoscale ===&lt;br /&gt;
&lt;br /&gt;
'''Autoscale''' allows the cPanel Licensing addon module to dynamically adjust a service's configurable option based on the number of accounts associated with its cPanel license. Use the Autoscale settings below when you want WHMCS to automatically upgrade a license to the next tier based on usage. &lt;br /&gt;
&lt;br /&gt;
Autoscale uses the following procedure:&lt;br /&gt;
&lt;br /&gt;
# A server administrator provisions an extra cPanel account which in turn pushes the server into the next cPanel license tier.&lt;br /&gt;
# cPanel's Manage2 software detects this and changes the license tier for billing purposes in the cPanel Partner account.&lt;br /&gt;
# WHMCS  performs a synchronisation with Manage2 at specific intervals that picks up this change.&lt;br /&gt;
# The Control Panel configurable option in WHMCS changes to match the new cPanel license tier and as a result of this, the service price is auto recalculated to include the additional cost of the new license tier.&lt;br /&gt;
# The next renewal invoice generated by the service (per the Next Due Date) will reflect the new cPanel license tier.&lt;br /&gt;
&lt;br /&gt;
This ensures that the client is always billed appropriately for their current cPanel license tier without any manual intervention.&lt;br /&gt;
&lt;br /&gt;
=== Settings ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPLic_Settings.png|thumb|Settings Tab]]&lt;br /&gt;
&lt;br /&gt;
The cPanel Licensing addon offers further configuration settings concerning Data and API Permissions, as well as Invoice and Cart Display Options.&lt;br /&gt;
&lt;br /&gt;
These can be accessed by navigating to '''Addons &amp;gt; cPanel Licensing''', and then clicking on the '''Settings''' tab. The settings seen on this page are detailed below.&lt;br /&gt;
&lt;br /&gt;
==== Data and API Permissions ====&lt;br /&gt;
&lt;br /&gt;
*'''Manage2 Account''' - Your Manage2 Registered Email. Here you will see the logged in user and a '''Logout''' button.&lt;br /&gt;
*'''Provisioning Default Group''' - The default group to assign new licenses to.&lt;br /&gt;
*'''Permissions''' - Access controls for functionality within this addon.&lt;br /&gt;
&lt;br /&gt;
==== Invoice and Cart Display Options ====&lt;br /&gt;
&lt;br /&gt;
*'''Invoicing Line Item Format''' - The line item description used for invoicing by packages that offer bulk cPanel accounts.&lt;br /&gt;
*'''Option Info Tooltip''' - Optional tooltip text to display near license configurable options during checkout. HTML is supported.&lt;br /&gt;
*'''Option Description Format''' - The configurable option selection format for display on the order form for packages that offer bulk cPanel accounts.&lt;br /&gt;
*'''Autoscale Label''' - The label to be displayed on the order form.&lt;br /&gt;
*'''Autoscale Notification Email''' - The email template to be sent upon an autoscale change. For more information, see the [[WHMCS cPanel Licensing Module#Autoscale Notification Email|Autoscale Notification Email]] section.&lt;br /&gt;
&lt;br /&gt;
==== Autoscale Notification Email ====&lt;br /&gt;
&lt;br /&gt;
The cPanel Licensing module can be configured to send a custom email notification to a client upon an Autoscale Change.&lt;br /&gt;
&lt;br /&gt;
To configure this functionality you will need to first create the custom email to be used. You can do this at '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Email Templates]]''' or, prior to WHMCS 8.0, '''Setup &amp;gt; Email Templates'''. This custom email template type must be either '''Product/Service Messages''' or '''Notification Messages'''. &lt;br /&gt;
&lt;br /&gt;
The custom template to be used will have access to the following merge fields:&lt;br /&gt;
&lt;br /&gt;
*'''newOption''' - The display name of the configurable option being upgraded to.&lt;br /&gt;
*'''oldOption''' - The display name of the configurable option being upgrade from.&lt;br /&gt;
*'''isUsageUpgrade''' - A boolean indicating whether or not the upgrade is due to usage activity.&lt;br /&gt;
&lt;br /&gt;
Once the custom email template has been created, it can be set as the ''Autoscale Notification Email'' template. &lt;br /&gt;
&lt;br /&gt;
To do this:&lt;br /&gt;
&lt;br /&gt;
# Go to '''Addons &amp;gt; cPanel Licensing'''.&lt;br /&gt;
# Click on the '''Settings''' tab.&lt;br /&gt;
# Locate the '''Autoscale Notification Email''' setting.&lt;br /&gt;
# Select the custom email template from the menu.&lt;br /&gt;
# Click '''Save Changes'''.&lt;br /&gt;
&lt;br /&gt;
=== Pricing ===&lt;br /&gt;
&lt;br /&gt;
[[File:CPLic_Pricing.png|thumb|Pricing Tab]]&lt;br /&gt;
&lt;br /&gt;
cPanel licenses are sold as configurable options of products. This interface allows you to set pricing for those options as well as respective metric pricing for cPanel accounts.&lt;br /&gt;
&lt;br /&gt;
Typically the configurable option would be assigned to a product with which a cPanel license would beneficial; a VPS or Dedicated Server. It can also be sold as a [[#Standalone_Product|standalone product]].&lt;br /&gt;
&lt;br /&gt;
On this tab you will see the ''ID'', ''Configuration Name'', ''Selections'', and ''Auto-Scale'' columns displayed for each option that has been created with, or imported into, the cPanel Licensing addon.&lt;br /&gt;
&lt;br /&gt;
Additionally, you will see buttons labelled ''New'', ''Import'', and ''Manage'' which allow you to create, import, and manage options respectively. The functionality of these buttons is detailed below.&lt;br /&gt;
&lt;br /&gt;
==== Create New Option ====&lt;br /&gt;
&lt;br /&gt;
[[File:CPLic_CreateNewOption.png|thumb|Create New Option Modal]]&lt;br /&gt;
&lt;br /&gt;
Clicking on the ''New'' button will bring up the ''Create New Option'' modal. It is within this modal that you can create a new [[Configurable Options|configurable option]] to be used for offering cPanel licenses to your customers via this module.&lt;br /&gt;
&lt;br /&gt;
The following configuration settings are displayed on this modal:&lt;br /&gt;
&lt;br /&gt;
*'''Parent Group''' - The option group to create the new option within. Should the ''Create New Group'' option be selected, then the ''Group Name'' option will appear.&lt;br /&gt;
*'''Group Name''' - The name for the new configurable option group. This option will only appear when the ''Create New Group'' option has been selected from the ''Parent Group'' drop-down menu.&lt;br /&gt;
*'''Option Name''' - The display name for the new configurable option.&lt;br /&gt;
*'''Option Type''' - The type to be used by the new configurable option. Only drop-down and radio option types are supported.&lt;br /&gt;
*'''Auto-Populate''' - Automatically populate the new option with the default cPanel license package offerings and recommended retail pricing.&lt;br /&gt;
*'''Hardware Type''' - Offers a selection between the ''Dedicated/Metal'' and ''VPS/Cloud'' options.&lt;br /&gt;
*'''Default Visibility''' - Toggles whether or not the option is visible from the Order Form.&lt;br /&gt;
&lt;br /&gt;
Once the settings have been completed, clicking on the ''Create'' button will generate the Configurable Option Group, create Configurable Options if the ''Auto-Populate'' option was selected, and display the option group in the Pricing tab of the module.&lt;br /&gt;
&lt;br /&gt;
==== Import Existing Option ====&lt;br /&gt;
&lt;br /&gt;
[[File:CPLic_ImportExistingOption.png|thumb|Import Existing Option Modal]]&lt;br /&gt;
&lt;br /&gt;
If you have an existing '''Configurable Option Group''' and '''Configurable Options''' that you would like to be used for the provisioning and billing of cPanel licenses, then these can be imported for use with the cPanel Licensing addon.&lt;br /&gt;
&lt;br /&gt;
During this process you will be prevented with a list of configurable options, and be asked to associate them with a cPanel Package. If a configurable option is not related to a cPanel license, then leave the dropdown at the ''Not a cPanel License Option'' value. Options left at this value will not be used by the cPanel Licensing module, and will continue to function as a normal configurable option.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;docs-alert-warning&amp;quot;&amp;gt;Only ''Dropdown'' or ''Radio'' configurable options are supported for import. Other option types will not be available for import.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Clicking on the ''Import'' button will bring up the ''Import Existing Option'' modal. It is within this modal that you can import an existing configurable option to be used for the provisioning and billing of cPanel licenses via this module.&lt;br /&gt;
&lt;br /&gt;
Within the ''Import Existing Option'' modal you will be presented with the ''Option Name'' drop-down menu. This menu allows you to select which Configurable Option you would like to import.&lt;br /&gt;
&lt;br /&gt;
Selecting the desired option from the drop-down and clicking the ''Continue'' button will bring you to the ''Configure Import'' section. Here you will see a list of ''Selectable Options'' displayed. For each selectable option, please select a cPanel Package below that it relates to. If an option is not related to a cPanel license, leave the dropdown at the default value.&lt;br /&gt;
&lt;br /&gt;
Clicking the ''Import'' button will import the configurable options into the module, and make them available for further configuration via the ''Pricing'' tab.&lt;br /&gt;
&lt;br /&gt;
====Option &amp;amp; Price Management====&lt;br /&gt;
&lt;br /&gt;
[[File:CPLic_OptionPriceManagement.png|thumb|Option &amp;amp; Price Management Modal]]&lt;br /&gt;
&lt;br /&gt;
Within the ''Manage'' column for each associated option a button with a wrench icon exists. This is the ''Manage'' button, and clicking on this button will bring up the ''Option &amp;amp; Price Management'' modal. It is within this modal that you can modify options within the group, as well as modify the cPanel related options themselves.&lt;br /&gt;
&lt;br /&gt;
This modal is made up of three elements: the ''Configurable Option Settings'' section in the top-left, the ''Selectable Options'' section in the bottom-left, and the ''Selectable Option Content'' panel on the right.&lt;br /&gt;
&lt;br /&gt;
===== Configurable Option Settings =====&lt;br /&gt;
&lt;br /&gt;
The '''Configurable Option Settings''' section provides the ability to alter the ''Configurable Option Type'', and toggle both the ''Visibility'' and ''Autoscale'' Option.&lt;br /&gt;
&lt;br /&gt;
The '''Autoscale Option''' toggle allows the cPanel Licensing addon module to dynamically adjust a service's configurable option based on the number of licenses associated with its cPanel account. This should be used when you want WHMCS to automatically upgrade a license to the next tier based on usage. Enabling this option requires that all configurable options associated with a cPanel Package have pricing configured.&lt;br /&gt;
&lt;br /&gt;
All changes made in this section are automatically saved.&lt;br /&gt;
&lt;br /&gt;
===== Selectable Options =====&lt;br /&gt;
&lt;br /&gt;
The '''Selectable Options''' section displays the full list of existing configurable options, and offers the ability to create new options via the ''Add Option'' button. Clicking on an option from this list will display that option's content within the ''Selectable Option Content'' panel.&lt;br /&gt;
&lt;br /&gt;
Additionally, in Version 7.7 and later, dragging the options allow you to rearrange their order as desired. All changes made in this section are automatically saved.&lt;br /&gt;
&lt;br /&gt;
===== Selectable Option Content =====&lt;br /&gt;
&lt;br /&gt;
The '''Selectable Option Content''' section provides both an overview of that option, as well as the ability to configure it further. The ''Name'', ''Visibility'', and ''Package'' details are immediately displayed at the top, and can all be altered as desired. Additionally, the ''Configurable Option ID'' is displayed in the top-left corner.&lt;br /&gt;
&lt;br /&gt;
The Pricing section is offers the ability to configure pricing for the option. Here the ''Base Recurring'', and ''Setup Fee'' values can be modified. The ''Metric: cPanel Accounts'' and ''Threshold'' values can also be modified for packages that support them.&lt;br /&gt;
&lt;br /&gt;
The ''Auto populate other billing cycles based on monthly pricing'' toggle will render the Billing Cycle tabs un-clickable and will automatically populate their pricing based on the pricing present in the Monthly pricing tab.&lt;br /&gt;
&lt;br /&gt;
Changes to this section are not automatically saved, and clicking on the ''Save'' button will commit the changes. Inversely, clicking on the ''Delete'' button will delete the configurable option.&lt;br /&gt;
&lt;br /&gt;
===== Metric: cPanel Accounts =====&lt;br /&gt;
&lt;br /&gt;
The '''Metric: cPanel Accounts''' setting is displayed when configuring pricing for packages that offer an unlimited number of cPanel accounts. This setting provides the ability to set a per-account value that the customer will be billed for, as well as a threshold to define the number of accounts a customer must have before they are billed on a per-account basis.&lt;br /&gt;
&lt;br /&gt;
When a customer orders a package, with the ''Metric: cPanel Accounts'' offering, a snapshot of the current price is taken. This snapshot is then stored, and used when generating renewal invoices for the customer's service in the future. This is done to ensure that changes can be made to a package's metric pricing without affecting existing customer orders.&lt;br /&gt;
&lt;br /&gt;
If you need to ensure that the pricing snapshot is updated to the current metric pricing, then this can be achieved by selecting the [[Clients:Products/Services_Tab#Auto_Recalculate_on_Save|''Auto Recalculate on Save'']] checkbox and saving the service. This will see the existing snapshot discarded, and a new one created with the current metric pricing for the associated package.&lt;br /&gt;
&lt;br /&gt;
The cPanel Licensing Addon retrieves the cPanel account value from the cPanel licensing system (Manage2) at the time of invoice generation. This is to ensure use of the most accurate value relative to Manage2, to which the license reseller is accountable. Manage2 doesn't provide the historical data necessary to calculate any prior month's usage. At this time, the cPanel Licensing Addon doesn't have historical snapshot capabilities that can augment this canonical data source.&lt;br /&gt;
&lt;br /&gt;
The ''Auto Recalculate on Save'' option will continue to function as normal. When used a service's ''Recurring Amount'' will be populated with current pricing based on the service and configurable options selected.&lt;br /&gt;
&lt;br /&gt;
====Standalone Product====&lt;br /&gt;
&lt;br /&gt;
To present a standalone product that provisions a cPanel license, use the cPanel licensing module with the Auto Release provisioning module:&lt;br /&gt;
&lt;br /&gt;
# Go to '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Products and Services|Products/Services]]''' or, prior to WHMCS 8.0, '''Setup &amp;gt; Products/Services &amp;gt; Products/Services'''.[[File:Cpanel standalone2.png|thumb|Configure Pricing]]&lt;br /&gt;
#Click '''Create a New Product'''.&lt;br /&gt;
#Select '''Other''' for '''Product Type'''.&lt;br /&gt;
#Enter a '''Product Name'''.&lt;br /&gt;
#Select ''Auto Release'' for '''Module Name'''.&lt;br /&gt;
#Click '''Continue'''.&lt;br /&gt;
# Select the '''Pricing''' tab.&lt;br /&gt;
#Choose '''Recurring''' for '''Payment Type'''.[[File:Cpanel standalone3.png|thumb|Configure the Auto Release Module]]&lt;br /&gt;
# Check the checkboxes in the '''One Time/Monthly''' column.&lt;br /&gt;
#Specify '''Setup''' and '''Price''' values of &amp;lt;tt&amp;gt;0.00&amp;lt;/tt&amp;gt;.&lt;br /&gt;
#Select the '''Module Settings''' tab.&lt;br /&gt;
#Choose the '''Automatically setup the product as soon as the first payment is received''' option.&lt;br /&gt;
#Select the '''Configurable Options''' tab.&lt;br /&gt;
#Click the configurable option group for the cPanel license types. The cPanel Licensing Addon [[#Pricing|creates this]].&lt;br /&gt;
#Configure any other options are desired.&lt;br /&gt;
#Click '''Save Changes'''.&lt;br /&gt;
&lt;br /&gt;
When this product is ordered, clients will be presented with the cPanel License Tier configurable option at the product configuration stage of the shopping cart and a license provisioned upon payment. The price of the configurable option will form the amount invoiced to the client each month.&lt;br /&gt;
&lt;br /&gt;
===Manage2 Data===&lt;br /&gt;
The data imported from Manage2 is displayed within the module itself. This information is located within the ''Licenses'', ''Groups'', and ''Packages'' tabs. This allows you to quickly review and action your Manage2 data without leaving WHMCS.&lt;br /&gt;
&lt;br /&gt;
====Licenses====&lt;br /&gt;
[[File:CPLic_Manage2DataLicenses.png|thumb|Licenses Tab]]&lt;br /&gt;
&lt;br /&gt;
Licenses are associated with a clients' services. This interface allows modification of the license data stored at Manage2. The WHMCS data can be managed at the linked service.&lt;br /&gt;
&lt;br /&gt;
On this tab you will see ''License ID'', ''Package/Group'', ''IP/Hostname'', ''Assigned Service'', and ''Status'' columns displayed for each license associated with your Manage2 account.&lt;br /&gt;
 &lt;br /&gt;
The '''Actions''' column offers the ability to perform the following actions against the associated license.&lt;br /&gt;
&lt;br /&gt;
*'''Assign License''' - Assign the license to an existing service. More information can be found in the [[WHMCS cPanel Licensing Module#Assign License &amp;amp; Link to Existing License|Assign License &amp;amp; Link to Existing License]] section.&lt;br /&gt;
*'''Change IP''' - Change the license's IP Address.&lt;br /&gt;
*'''Change group''' - Change the license's Group.&lt;br /&gt;
*'''Change package''' - Change the license's Package.&lt;br /&gt;
*'''Expire''' - Expire the license within Manage2.&lt;br /&gt;
*'''View License Details''' - Review a detailed output of license information.&lt;br /&gt;
&lt;br /&gt;
====Groups====&lt;br /&gt;
[[File:CPLic_Manage2DataGroups.png|thumb|Groups Tab]]&lt;br /&gt;
&lt;br /&gt;
Groups are arbitrary categories. They are unique to your Company. They can help keep your licenses organised by modeling how you sell and manage the product-customer lifecycle.&lt;br /&gt;
&lt;br /&gt;
On this tab you will see the ''Group ID'', ''Name'', ''Attributes'', and ''Licenses'' columns displayed for each group associated with your Manage2 account.&lt;br /&gt;
&lt;br /&gt;
The '''Actions''' column offers the ability to perform the following actions against the associated group.&lt;br /&gt;
&lt;br /&gt;
*'''Change name''' - Change the group's name within Manage2.&lt;br /&gt;
*'''Change tax status''' - Change the group's tax status within Manage2.&lt;br /&gt;
*'''Show Licenses''' - Display a filtered list of licenses associated with the specific group.&lt;br /&gt;
&lt;br /&gt;
====Packages====&lt;br /&gt;
[[File:CPLic_Manage2DataPackages.png|thumb|Packages Tab]]&lt;br /&gt;
&lt;br /&gt;
Packages are SKUs. They represent the product, features, or bundled options that are granted to the license holder.&lt;br /&gt;
&lt;br /&gt;
On this tab you will see the ''Package ID'', ''Name'', ''Attributes'', and ''Licenses'' columns displayed for each package associated with your Manage2 account.&lt;br /&gt;
&lt;br /&gt;
The ''Actions'' column offers the ability to perform the following actions against the associated package.&lt;br /&gt;
&lt;br /&gt;
*'''Show Licenses''' - Display a filtered list of licenses associated with the specific package.&lt;br /&gt;
&lt;br /&gt;
===Service Management===&lt;br /&gt;
[[File:CPLic_ServiceManagement.png|thumb|cPanel Licensing Service Panel]]&lt;br /&gt;
&lt;br /&gt;
Services associated with a cPanel Licensing related Option Group will see a panel labeled ''cPanel Licensing'' when viewing that service via the Admin Area.&lt;br /&gt;
&lt;br /&gt;
When a service is associated with a cPanel license, an overview if the license details is displayed along with the following buttons:&lt;br /&gt;
&lt;br /&gt;
*'''Sync IP''' - Change the license's IP Address to the value displayed in the ''Dedicated IP'' field or ''IP Address'' custom field.&lt;br /&gt;
*'''Sync Package''' - Change the license's Package to the value displayed in the cPanel Licensing configurable option.&lt;br /&gt;
*'''View Details''' - Display a modal containing the cPanel License Information.&lt;br /&gt;
*'''Expire''' - Expire the license within Manage2.&lt;br /&gt;
&lt;br /&gt;
The following buttons will be displayed within the panel at all times:&lt;br /&gt;
&lt;br /&gt;
*'''Provision New cPanel License''' - Automatically provision a new license from Manage2 using the package displayed in the cPanel Licensing configurable option and the IP address displayed in the ''Dedicated IP'' field or ''IP Address'' custom field.&lt;br /&gt;
*'''Link to Existing License''' - Display a modal that allows for the search of existing licenses to be assigned to the service. More information can be found in the [[WHMCS cPanel Licensing Module#Assign License &amp;amp; Link to Existing License|Assign License &amp;amp; Link to Existing License]] section.&lt;br /&gt;
&lt;br /&gt;
===Handling Manual License Cancellations===&lt;br /&gt;
Expiring a license, either by clicking '''Expire''' in the '''[[Clients:Products/Services_Tab|Products/Services]]''' tab of the client profile or in Manage2, does not automatically update the '''Recurring Amount''' for the parent service. The system cannot determine whether to bill a license using the license's state.&lt;br /&gt;
&lt;br /&gt;
To cancel a license and ensure that the system updates the '''Recurring Amount''' value correctly:&lt;br /&gt;
# Click '''Expire''' in the '''Service Management''' section.&lt;br /&gt;
# Set the parent service's [[WHMCS cPanel Licensing Module#Configurable Option Settings|configurable option]] to ''None''.&lt;br /&gt;
# Set '''Recalculate on Save''' to ''ON''.&lt;br /&gt;
# Click '''Save Changes'''.&lt;br /&gt;
&lt;br /&gt;
The system will update the parent service's '''Recurring Amount''' to no longer include the cost of the expired license.&lt;br /&gt;
&lt;br /&gt;
===Assign License &amp;amp; Link to Existing License===&lt;br /&gt;
[[File:CPLic_AssignLicense.png|thumb|Assign License Modal]]&lt;br /&gt;
[[File:CPLic_LinkExistingLicense.png|thumb|Link to Existing License Modal]]&lt;br /&gt;
&lt;br /&gt;
Both the Licenses tab, seen on the cPanel Licensing module page, and the cPanel Licensing panel, seen on the Service page, offer the ability to manually assign a service to a license and vice versa.&lt;br /&gt;
&lt;br /&gt;
The '''Assign License''' modal provides a searchable drop-down menu that can be used to locate and select the desired service. Once the service has been selected, clicking on the ''Assign'' button will assign the service to that specific license.&lt;br /&gt;
&lt;br /&gt;
The '''Link to Existing License''' modal provides a searchable drop-down menu that can be used to locate and select the desired license. Once the license has been selected, clicking on the ''Assign'' button will assign the license to that specific service.&lt;br /&gt;
&lt;br /&gt;
In both cases, it is important to note that the configurable option will not be automatically selected. You must navigate to the Service page in the Admin Area, set the configurable option to coincide with the appropriate package if fixed, or enable the autoscale option if applicable. '''This is necessary for automated billing to occur.'''&lt;br /&gt;
&lt;br /&gt;
Additionally, only a singular active license can be assigned to a service. Using the ''Link to Existing License'' or ''Assign License'' functionality to assign a new license to a service already in possession of an active license will result in the replacement of that active license. In this instance, a prompt will appear to confirm this action.&lt;br /&gt;
&lt;br /&gt;
== Upgrading ==&lt;br /&gt;
&lt;br /&gt;
If you have an earlier version of the cPanel Licensing Module installed, follow the steps below:&lt;br /&gt;
&lt;br /&gt;
# Download the latest version from [https://marketplace.whmcs.com/product/4993 the WHMCS Marketplace].&lt;br /&gt;
# Extract the zip file.&lt;br /&gt;
# Upload the 'cpanellicensing' directory to the '/modules/addons' folder of your WHMCS installation.&lt;br /&gt;
&lt;br /&gt;
====Troubleshooting====&lt;br /&gt;
This section covers the error messages which may be encountered during license assignment.&lt;br /&gt;
&lt;br /&gt;
=====A license was deactivated on the same IP last month before billing could occur=====&lt;br /&gt;
This response indicates that the previous cPanel license associated with the service's IP address accrued usage, and was deactivated before billing could occur within Manage2.&lt;br /&gt;
&lt;br /&gt;
A reactivation fee must be paid before a new license can be provisioned for that IP address. This must be done via Manage2 directly.&lt;br /&gt;
&lt;br /&gt;
=====This license is already assigned to another service=====&lt;br /&gt;
Review the '''Addons &amp;gt; cPanel Licensing''' page to see the current service to which the license is assigned in WHMCS.&lt;br /&gt;
&lt;br /&gt;
Click the ''Assign'' button a second time to remove the current assignment and assign to the current service.&lt;br /&gt;
&lt;br /&gt;
=====You cannot assign a license to this service=====&lt;br /&gt;
'''You cannot assign a license to this service as the product to which it is assigned does not have a configurable option for a cPanel license'''&lt;br /&gt;
&lt;br /&gt;
There is no license pricing configuration assigned to the product in use, a license can only be assigned when a pricing scheme is associated with the product. The following steps will make the necessary adjustments to the product/service configuration:&lt;br /&gt;
&lt;br /&gt;
# Navigate to the client's '''[[Clients:Products/Services Tab|Products/Services]]''' tab for the service.&lt;br /&gt;
# Check whether the cPanel Licenses configurable option appears. If it does not:&lt;br /&gt;
## Go to '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Configurable Options]]''' or, prior to WHMCS 8.0, '''Setup &amp;gt; Products/Services &amp;gt; Configurable Options'''.&lt;br /&gt;
## Click '''Edit''' for the cPanel licensing option group.&lt;br /&gt;
## Press Ctrl + Click to select all the applicable products that will offer a cPanel license option. Make certain to select the product that is currently exhibiting the error.&lt;br /&gt;
## Click '''Save Changes'''.&lt;br /&gt;
# If the cPanel License configurable option is displayed, select the desired cPanel license tier.&lt;br /&gt;
# Click '''Save Changes'''.&lt;br /&gt;
# Use the '''Assign''' or '''Link''' buttons again to complete the task successfully.&lt;br /&gt;
&lt;br /&gt;
=====cPanel Licensing options of product are not set for this service=====&lt;br /&gt;
&lt;br /&gt;
'''cPanel Licensing options of product are not set for this service. Review and save the cPanel licensing options for this service and try again'''&lt;br /&gt;
&lt;br /&gt;
A license pricing configuration is assigned to the product in use, but the desired option has not been selected for the individual service record. WHMCS needs to know the desired license tier to invoice the client correctly. &lt;br /&gt;
&lt;br /&gt;
The following steps will make the necessary adjustments to the service record:&lt;br /&gt;
&lt;br /&gt;
# Go to the client's '''[[Clients:Products/Services Tab|Products/Services]]''' tab for the service.&lt;br /&gt;
# Use the cPanel License configurable option to select the desired cPanel license tier.&lt;br /&gt;
# Click '''Save Changes'''.&lt;br /&gt;
# Use the '''Assign''' or '''Link''' buttons again to complete the task successfully.&lt;br /&gt;
&lt;br /&gt;
== Change Log ==&lt;br /&gt;
&lt;br /&gt;
''N/A''&lt;/div&gt;</summary>
		<author><name>JoshQ</name></author>	</entry>

	<entry>
		<id>http://3.19.219.109/index.php?title=Tax_Configuration&amp;diff=34344</id>
		<title>Tax Configuration</title>
		<link rel="alternate" type="text/html" href="http://3.19.219.109/index.php?title=Tax_Configuration&amp;diff=34344"/>
				<updated>2023-12-22T14:18:48Z</updated>
		
		<summary type="html">&lt;p&gt;JoshQ: /* Auto Tax Exempt */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;docs-alert-info&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-question-circle&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;For this feature in WHMCS 7.6 and earlier, [https://docs.whmcs.com/index.php?title=Tax/VAT&amp;amp;redirect=no click here].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
WHMCS can gather necessary taxes when you make sales.&lt;br /&gt;
&lt;br /&gt;
You can access this feature at '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; Tax Configuration''' or, prior to WHMCS 8.0, '''Setup &amp;gt; Payments &amp;gt; Tax Configuration'''.&lt;br /&gt;
&lt;br /&gt;
==Enabling Tax Support==&lt;br /&gt;
&lt;br /&gt;
In order to charge tax:&lt;br /&gt;
&lt;br /&gt;
# Enable '''Tax Support'''.&lt;br /&gt;
# Click '''Save Changes'''. &lt;br /&gt;
# Set the desired settings below.&lt;br /&gt;
# Click '''Save Changes''' again.&lt;br /&gt;
&lt;br /&gt;
==General Tax Settings==&lt;br /&gt;
&lt;br /&gt;
===Tax/VAT ID Number===&lt;br /&gt;
Enter your company Tax/VAT ID in this field. Invoices will display this under the company address in the client area and on PDF printable invoices.&lt;br /&gt;
&lt;br /&gt;
===Inclusive/Exclusive Tax===&lt;br /&gt;
&lt;br /&gt;
By default, tax is exclusive. You need to add tax onto the prices you enter in WHMCS at the rate you entered. The alternative is inclusive tax, in which the prices you enter in WHMCS already include tax. For inclusive tax, WHMCS needs to work backwards to calculate the amount of tax to charge based on the rates you've set. &lt;br /&gt;
&lt;br /&gt;
*'''Exclusive Tax''' &amp;gt; Tax Amount = Item Price x ( Tax Rate / 100 )&lt;br /&gt;
*'''Inclusive Tax''' &amp;gt; Tax Amount = ( Item Price / ( 100 + Tax Rate ) ) x Tax Rate&lt;br /&gt;
&lt;br /&gt;
==Custom Invoice Numbering==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;docs-alert-info&amp;quot;&amp;gt;Custom Invoice Number is part of the EU VAT Addon.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enable Custom Invoice Numbering, toggle the appropriate switch on '''Tax Configuration''' and click '''Save Changes'''. After you enable it, the configured custom invoice numbering will apply to invoices that you generate from then on.&lt;br /&gt;
&lt;br /&gt;
===Custom Invoice Numbering Format===&lt;br /&gt;
&lt;br /&gt;
This is the format of the custom invoice number to apply to the invoices WHMCS generates. The default value of this is &amp;lt;tt&amp;gt;{NUMBER}&amp;lt;/tt&amp;gt;, which will contain only the value from '''Next Invoice Number'''.&lt;br /&gt;
The field can contain any text in the invoice number that the client will see. You can add more tags to the field, which the system will replace when it generates the invoice. &lt;br /&gt;
&lt;br /&gt;
Available tags are:&lt;br /&gt;
* &amp;lt;tt&amp;gt;{NUMBER}&amp;lt;/tt&amp;gt; — The value for '''Next Invoice Number'''.&lt;br /&gt;
* &amp;lt;tt&amp;gt;{YEAR}&amp;lt;/tt&amp;gt; — The four-digit year value for the current date.&lt;br /&gt;
* &amp;lt;tt&amp;gt;{MONTH}&amp;lt;/tt&amp;gt; — The two-digit month value for the current date.&lt;br /&gt;
* &amp;lt;tt&amp;gt;{DAY}&amp;lt;/tt&amp;gt; — The two-digit day value for the current date.&lt;br /&gt;
&lt;br /&gt;
===Next Invoice Number===&lt;br /&gt;
&lt;br /&gt;
The number that the system will assign to the next invoice it generates.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;docs-alert-info&amp;quot;&amp;gt;Only fill in this field if you want to change the number of the next invoice. Only increase this number; do not decrease it.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Auto Reset Numbering===&lt;br /&gt;
This allows you to automatically reset the invoice number periodically. The automatic invoice numbering reset occurs when the automation cron runs on the last day of the month or year. If you want to use this feature, we recommend that you configure the cron job to run late at night in '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Automation Settings]]''' or, prior to WHMCS 8.0, '''Setup &amp;gt; Automation Settings'''.&lt;br /&gt;
&lt;br /&gt;
==VAT Settings==&lt;br /&gt;
 &lt;br /&gt;
===VAT Mode===&lt;br /&gt;
&lt;br /&gt;
Toggle '''VAT Mode''' to ''ON''. This will automatically display a window allowing you to set your VAT label display name. Enter one and then click '''Create Rules'''.&lt;br /&gt;
 &lt;br /&gt;
====Auto Configure VAT Tax Rules====&lt;br /&gt;
&lt;br /&gt;
If you accidentally delete a rule or need to recreate or change the name of a rule, click here. Follow the prompts, using the appropriate VAT Rate for each EU country.&lt;br /&gt;
 &lt;br /&gt;
===Custom Field Migration===&lt;br /&gt;
&lt;br /&gt;
If a WHMCS installation previously used the EU VAT Addon and a custom field to contain the client VAT Number, this option will display to perform a migration of the tax numbers from the custom field to store them in the client table.&lt;br /&gt;
 &lt;br /&gt;
===VAT Number Validation===&lt;br /&gt;
&lt;br /&gt;
Toggle this to ''ON'' to enable validation of VAT numbers during registration and checkout. WHMCS uses VIES to validate EU VAT numbers and HMRC to validate UK VAT numbers.&lt;br /&gt;
 &lt;br /&gt;
===Auto Tax Exempt===&lt;br /&gt;
&lt;br /&gt;
Check this to set clients as tax exempt when their VAT number successfully validates.&lt;br /&gt;
&lt;br /&gt;
When you save a client's profile, WHMCS will revalidate their VAT number with the relevant authority (VIES for EU VAT numbers and HMRC for UK VAT numbers). If the VAT number is invalid, the client will lose their tax exempt status, and the system will apply tax to all newly-generated invoices accordingly.&lt;br /&gt;
&lt;br /&gt;
===Your Home Country===&lt;br /&gt;
&lt;br /&gt;
Select the country for your main business location.&lt;br /&gt;
 &lt;br /&gt;
===Home Country Exclusion===&lt;br /&gt;
&lt;br /&gt;
Check this to always charge VAT if the customer's billing address is in the country you selected above.&lt;br /&gt;
 &lt;br /&gt;
===Proforma Invoicing/Sequential Paid Invoice Numbering===&lt;br /&gt;
&lt;br /&gt;
Toggle this to ''ON'' to enable the invoice numbering format you set below.&lt;br /&gt;
 &lt;br /&gt;
===Sequential Invoice Number Format===&lt;br /&gt;
&lt;br /&gt;
Enter a format for invoice numbering. You can include these tags, which will be replaced with the corresponding information when the invoice is generated:&lt;br /&gt;
 &lt;br /&gt;
* &amp;lt;tt&amp;gt;{YEAR}&amp;lt;/tt&amp;gt; — The current year.&lt;br /&gt;
* &amp;lt;tt&amp;gt;{MONTH}&amp;lt;/tt&amp;gt; — The current month.&lt;br /&gt;
* &amp;lt;tt&amp;gt;{DAY}&amp;lt;/tt&amp;gt; — The current day.&lt;br /&gt;
* &amp;lt;tt&amp;gt;{NUMBER}&amp;lt;/tt&amp;gt; — The sequential invoice number.&lt;br /&gt;
 &lt;br /&gt;
===Next Paid Invoice Number===&lt;br /&gt;
&lt;br /&gt;
Enter a number to use to number the next invoice that WHMCS generates.&lt;br /&gt;
 &lt;br /&gt;
===Auto Reset Numbering===&lt;br /&gt;
&lt;br /&gt;
Select the frequency with which WHMCS should automatically reset invoice numbering. Select ''Never'' if you do not want to automatically reset numbering.&lt;br /&gt;
 &lt;br /&gt;
===Set Invoice Date on Payment===&lt;br /&gt;
&lt;br /&gt;
Check this to set the invoice date to the current date when payment is applied.&lt;br /&gt;
&lt;br /&gt;
==Tax Rules==&lt;br /&gt;
&lt;br /&gt;
You must configure tax rules in order to automatically charge tax in the cart. You can view and add tax rules in the '''Tax Rules''' tab.&lt;br /&gt;
&lt;br /&gt;
===Adding a Rule===&lt;br /&gt;
&lt;br /&gt;
To add a rule:&lt;br /&gt;
&lt;br /&gt;
* For '''Name''', enter a name for the tax zone, which allows you to identify it.&lt;br /&gt;
* For '''Country''', choose whether this tax rate applies to all countries or only applies to a selected country.&lt;br /&gt;
* For the state, choose whether it applies to all states in the selected country or only a selected state.&lt;br /&gt;
* Finally, enter the tax rate as a percentage (for example, &amp;lt;tt&amp;gt;17.5&amp;lt;/tt&amp;gt;).&lt;br /&gt;
* Click '''Add Rule'''. The system will create the tax rule and automatically add it to the appropriate table for Level 1 or Level 2 rules.&lt;br /&gt;
&lt;br /&gt;
For example, a UK business would set up the system to charge VAT. In the country field, you would choose '''United Kingdom''' and for the state you would choose '''Apply Rule to All States'''. You would then enter the tax rate of '''20.0''' and click '''Add Rule'''. You can set up an unlimited number of tax rules.&lt;br /&gt;
&lt;br /&gt;
===Changing Tax Rates===&lt;br /&gt;
&lt;br /&gt;
Sales tax rates generally change over time. To change a tax rate in WHMCS, delete the existing rule and then create a new rule using the new rate and exactly the same name, country, and state.&lt;br /&gt;
&lt;br /&gt;
For more information, see [https://help.whmcs.com/m/payments/l/1271960-changing-tax-rates Changing Tax Rates].&lt;br /&gt;
&lt;br /&gt;
===Supported Values===&lt;br /&gt;
&lt;br /&gt;
WHMCS 8.0 and later supports tax rates with up to three decimal places and currency values up to 99 trillion.&lt;br /&gt;
&lt;br /&gt;
[[File:TaxDecimals.png|500px|thumb|center|Tax Rates]]&lt;br /&gt;
&lt;br /&gt;
Prior to WHMCS 8.0, WHMCS only supported tax rates with up to two decimal places.&lt;br /&gt;
&lt;br /&gt;
==Advanced Rules==&lt;br /&gt;
&lt;br /&gt;
===Setting Taxed Items===&lt;br /&gt;
&lt;br /&gt;
The flexible tax system in WHMCS allows you to set, individually, which items apply for tax. WHMCS sets products as untaxed by default. Even if you have tax rules set up, the system won't charge tax for it. This allows you to, for example, charge tax on the products you offer but not on services.&lt;br /&gt;
&lt;br /&gt;
====Setting a Product/Service as Taxable====&lt;br /&gt;
&lt;br /&gt;
To do this:&lt;br /&gt;
&lt;br /&gt;
#Go to '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Products and Services|Products/Services]]''' or, prior to WHMCS 8.0, '''Setup &amp;gt; Products/Services &amp;gt; Products/Services'''.&lt;br /&gt;
#Click the edit icon next to the product you wish to set to be taxable.&lt;br /&gt;
#Check the checkbox next to the item labelled '''Tax Product'''.&lt;br /&gt;
#Save your changes to the product.&lt;br /&gt;
&lt;br /&gt;
====Setting Domains as Taxable====&lt;br /&gt;
&lt;br /&gt;
You can set whether to apply taxes to domains.&lt;br /&gt;
&lt;br /&gt;
====Setting Billable Items as Taxable====&lt;br /&gt;
&lt;br /&gt;
You can set whether to apply tax to billable items.&lt;br /&gt;
&lt;br /&gt;
====Setting Late Fees as Taxable====&lt;br /&gt;
&lt;br /&gt;
You can set whether to apply tax to late fees on invoices.&lt;br /&gt;
&lt;br /&gt;
====Setting Custom Invoices as Taxable====&lt;br /&gt;
&lt;br /&gt;
You can set whether to apply tax to custom (manually created) invoices.&lt;br /&gt;
&lt;br /&gt;
===Compound Tax===&lt;br /&gt;
&lt;br /&gt;
The system calculates compound tax after and on top of a primary tax. If you need to add the Level 2 tax to the Level 1 tax, toggle this option on the advanced tab.&lt;br /&gt;
&lt;br /&gt;
===Deduct Tax Amount===&lt;br /&gt;
&lt;br /&gt;
If the '''Tax Type''' is ''Inclusive'' and the client's country and state or province selections result in them not meeting any of the configured tax rules, deduct an amount from the order. Base this on the total amount for taxable items on the order and the percentage of tax that would apply to the default country in the '''[[Localisation Tab|Localisation]]''' tab at '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; General Settings''' or, prior to WHMCS 8.0, '''Setup &amp;gt; General Settings'''. It will deduct the percentage that applies to the first applicable Level 1 and Level 2 tax rules.&lt;br /&gt;
&lt;br /&gt;
===Tax Calculation Mode===&lt;br /&gt;
&lt;br /&gt;
The '''Calculation Mode''' setting determines how the system calculates taxes.&lt;br /&gt;
&lt;br /&gt;
[[File:tax_calculation_method.png|500px]]&lt;br /&gt;
&lt;br /&gt;
There are two possible values for this setting:&lt;br /&gt;
&lt;br /&gt;
* '''Calculate individually per line item''' — Selecting this option will calculate taxes on a per line item basis. When you select this, the system will calculate tax for each line item, rounded to 2 decimal places. It will also calculate the total tax using the sum of the tax calculation for each individual line item.&lt;br /&gt;
* '''Calculate based on collective sum of the taxable line items''' — Selecting this option will calculate taxes using the sum of the taxable line items on an invoice. When you select this, the system totals the individual taxable line items and calculates tax based on the sum total of those taxable line items.&lt;br /&gt;
&lt;br /&gt;
====Tax Amount Differences====&lt;br /&gt;
Due to rounding for tax calculation modes and the calculation amounts, the resulting tax amounts may differ.&lt;br /&gt;
&lt;br /&gt;
=====Calculate Individually per Line Item=====&lt;br /&gt;
&lt;br /&gt;
Example tax calculation for 11 line items at $2.21 each:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;docs-related-pages&amp;quot;&amp;gt;&lt;br /&gt;
(2.21 x 20%) + (2.21 x 20%) + (2.21 x 20%) + (2.21 x 20%) + (2.21 x 20%) + (2.21 x 20%) + (2.21 x 20%) + (2.21 x 20%) + (2.21 x 20%) + (2.21 x 20%) + (2.21 x 20%) = 4.84&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Calculate Based on the Collective Sum of the Taxable Line Items=====&lt;br /&gt;
&lt;br /&gt;
Example tax calculation for 11 line items at $2.21 each:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;docs-related-pages&amp;quot;&amp;gt;&lt;br /&gt;
(24.31 x 20%) = 4.86&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>JoshQ</name></author>	</entry>

	<entry>
		<id>http://3.19.219.109/index.php?title=System_Logs&amp;diff=34339</id>
		<title>System Logs</title>
		<link rel="alternate" type="text/html" href="http://3.19.219.109/index.php?title=System_Logs&amp;diff=34339"/>
				<updated>2023-12-11T18:30:20Z</updated>
		
		<summary type="html">&lt;p&gt;JoshQ: /* Module Log */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;WHMCS logs all activity, admin logins, gateway communications, sent and received email communications, and domain lookups. This allows you to monitor and track all the activity taking place inside your WHMCS system.&lt;br /&gt;
&lt;br /&gt;
You can view the system logs at '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Logs''' or, prior to WHMCS 8.0, '''Utilities &amp;gt; Activity Log'''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;docs-alert-success&amp;quot;&amp;gt;&lt;br /&gt;
You can view logs for payment gateway transactions at '''Billing &amp;gt; [[Gateway Log]]'''.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;docs-alert-danger&amp;quot;&amp;gt;&lt;br /&gt;
If you enable error logging, those errors will display here. However, we strongly recommend that you disable error logging unless you are actively troubleshooting an issue. You can configure error logging in the '''[[Other_Tab|Other]]''' tab at '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; General Settings''' or, prior to WHMCS 8.0, '''Setup &amp;gt; General Settings'''.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Activity Log ==&lt;br /&gt;
&lt;br /&gt;
This records both system events and the actions and events for a single client from throughout WHMCS.&lt;br /&gt;
&lt;br /&gt;
== Admin Log ==&lt;br /&gt;
&lt;br /&gt;
This records login sessions for admins, including login and logout times, IP addresses, and usernames.&lt;br /&gt;
&lt;br /&gt;
== Module Log ==&lt;br /&gt;
&lt;br /&gt;
This records activity between WHMCS and third-party APIs or other module systems.&lt;br /&gt;
&lt;br /&gt;
For more information, see [[Troubleshooting Module Problems]].&lt;br /&gt;
&lt;br /&gt;
== Email Message Log ==&lt;br /&gt;
&lt;br /&gt;
This records all of the emails that WHMCS sends to clients except for '''Automated Password Reset''', '''Client Email Address Verification''', and '''Password Reset Validation''' emails.&lt;br /&gt;
&lt;br /&gt;
You can disable logging of support ticket responses to this log in the '''[[Support_Tab|Support]]''' tab at '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; General Settings''' or, prior to WHMCS 8.0, '''Setup &amp;gt; General Settings'''.&lt;br /&gt;
&lt;br /&gt;
== Ticket Mail Import Log ==&lt;br /&gt;
&lt;br /&gt;
This records all of the support ticket emails that WHMCS added to the support ticket system via email piping or email importing.&lt;br /&gt;
&lt;br /&gt;
* For more information about error messages in this log and how to address them, see [[Email Piping]] and [[Email Importing]]. &lt;br /&gt;
* For more information about blocked, insecure, or failed ticket reply importing, see [[Blocked Support Email Replies]].&lt;br /&gt;
&lt;br /&gt;
=== View Log ===&lt;br /&gt;
&lt;br /&gt;
Click '''View Log''' for a log entry to view the imported reply. This displays the same information that you see when you view the associated support ticket. &lt;br /&gt;
&lt;br /&gt;
== WHOIS Lookup Log ==&lt;br /&gt;
&lt;br /&gt;
This logs the domains that clients search for from within the Client Area.&lt;br /&gt;
&lt;br /&gt;
== Log Accumulation ==&lt;br /&gt;
&lt;br /&gt;
Over time, log records in your WHMCS system will accumulate. As the number of records increases, your database will become larger and you may notice a reduction in performance. WHMCS allows you to empty logs from within the Admin Area. &lt;br /&gt;
&lt;br /&gt;
* To empty your logs, go to '''Utilities &amp;gt; [[System Cleanup]]'''.&lt;br /&gt;
* To configure the maximum number of system-related entries stored in the system logs, go to the '''[[General_Tab|General]]''' tab at '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; General Settings''' or, prior to WHMCS 8.0, '''Setup &amp;gt; General Settings'''.&lt;/div&gt;</summary>
		<author><name>JoshQ</name></author>	</entry>

	<entry>
		<id>http://3.19.219.109/index.php?title=GoCardless&amp;diff=34278</id>
		<title>GoCardless</title>
		<link rel="alternate" type="text/html" href="http://3.19.219.109/index.php?title=GoCardless&amp;diff=34278"/>
				<updated>2023-11-16T15:26:30Z</updated>
		
		<summary type="html">&lt;p&gt;JoshQ: Fix typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== About this Module ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;docs-alert-success&amp;quot;&amp;gt;&lt;br /&gt;
We added this payment gateway in WHMCS 7.7.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://gocardless.com GoCardless] is a payment gateway which allows for direct debit payments to be automated electronically.&lt;br /&gt;
{{gateways&lt;br /&gt;
| onetime = yes&lt;br /&gt;
| recurring = yes&lt;br /&gt;
| reversals = yes&lt;br /&gt;
}}&lt;br /&gt;
== Adding the GoCardless Payment Gateway ==&lt;br /&gt;
&lt;br /&gt;
To set up the GoCardless payment gateway in WHMCS:&lt;br /&gt;
 &lt;br /&gt;
# Go to the appropriate location for your version of WHMCS:&lt;br /&gt;
#* For WHMCS 8.0 and later, go to '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; Apps &amp;amp; Integrations''' or '''Addons &amp;gt; [[Apps and Integrations|Apps &amp;amp; Integrations]]'''.&lt;br /&gt;
#* For WHMCS 7.10 and earlier, go to '''Setup &amp;gt; Products/Services &amp;gt; [[Payment Gateways]]''' and choose '''All Payment Gateways'''.&lt;br /&gt;
# Click '''GoCardless'''. A GoCardless login page will appear.&lt;br /&gt;
# Either sign up for a new account or log in to your existing account. The system will automatically configure GoCardless for you.&lt;br /&gt;
# Optionally, enter a custom name for the gateway for each of your supported currencies.&lt;br /&gt;
# Check '''Show on Order Form''' to display this payment method in the Client Area during checkout. &lt;br /&gt;
#In WHMCS 8.0 and later, enabling '''Charge Date Preference''' will allow the automation system to omit passing a &amp;lt;tt&amp;gt;charge_date&amp;lt;/tt&amp;gt; value to GoCardless when the automation system triggers a payment attempt. This results in GoCardless starting the transaction as soon as possible.&lt;br /&gt;
# Click '''Save Changes'''.&lt;br /&gt;
&lt;br /&gt;
===Charge Date Preference===&lt;br /&gt;
&lt;br /&gt;
 '''Charge Date Preference''' will determine if WHMCS passes a transaction charge date to GoCardless advising when to initiate the payment.&lt;br /&gt;
&lt;br /&gt;
* Disabling the option will pass through either the '''Next Due Date''' from the service or the &amp;lt;tt&amp;gt;next_possible_charge_date&amp;lt;/tt&amp;gt; that GoCardless sets using the &amp;lt;tt&amp;gt;charge_date&amp;lt;/tt&amp;gt; function depending on which date is later.&lt;br /&gt;
&lt;br /&gt;
* If you enable the option, the system will not pass a &amp;lt;tt&amp;gt;charge_date&amp;lt;/tt&amp;gt; value to GoCardless and this will result in GoCardless beginning the payment process as soon as possible.  In both scenarios, the payment attempt call to GoCardless will not occur until an invoice meets the invoice and payment capture attempt criteria that you set at '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Automation Settings]]'''.&lt;br /&gt;
&lt;br /&gt;
To process the payment prior to the '''Next Due Date''' date and according to the '''Process Days Before Due''' date at '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Automation Settings]]''', enable this setting. If you do not, the system may attempt the payment on or after the '''Next Due Date''' date.&lt;br /&gt;
&lt;br /&gt;
=== Supported Currencies ===&lt;br /&gt;
&lt;br /&gt;
GoCardless only support the following currencies: &lt;br /&gt;
&lt;br /&gt;
* AUD&lt;br /&gt;
* CAD&lt;br /&gt;
* DKK&lt;br /&gt;
* EUR&lt;br /&gt;
* GBP&lt;br /&gt;
* NZD&lt;br /&gt;
* SEK&lt;br /&gt;
* USD &amp;lt;div class=&amp;quot;docs-alert-info&amp;quot;&amp;gt;We added support for USD in WHMCS 7.9.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Clients who do not use one of these currencies cannot make payments using GoCardless.&lt;br /&gt;
&lt;br /&gt;
=== Test Mode ===  &lt;br /&gt;
&lt;br /&gt;
You can use test mode to simulate payment processing without actually causing a transaction to occur. This can be useful to test your configuration.&lt;br /&gt;
&lt;br /&gt;
==Payment Workflow==&lt;br /&gt;
&lt;br /&gt;
When the first payment is made, a mandate is set up with the client's bank. This typically takes a few days, so the invoice will change from '''Unpaid''' to '''Payment Pending''' status. At this point, you can view the mandate details and expected payment completion date by viewing the invoice. As soon as the mandate is set up and the first payment has cleared, the invoice's status will change to '''Paid''' and the service will be provisioned by WHMCS automatically.&lt;br /&gt;
&lt;br /&gt;
When the renewal invoice is generated for a recurring service, a capture attempt will be made against the mandate in accordance with '''Process Days Before Due''' in '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Automation Settings]]''' or, prior to WHMCS 8.0, '''Setup &amp;gt; Automation Settings'''. As it can take a few days for the payment to complete, we recommend a setting of '''3'''. This way, 3 days before the invoice '''Due Date''', the payment process will be initiated by the cron and the invoice status updated from '''Unpaid''' to '''Payment Pending'''. Payment should then complete on the invoice '''Due Date''' and the invoice will be marked '''Paid''' once the payment has cleared.&lt;br /&gt;
&lt;br /&gt;
Once a mandate has been created, WHMCS can use it for processing renewal payments for any other services associated with the client as long as they are set to the GoCardless gateway as well.&lt;br /&gt;
&lt;br /&gt;
When making a manual payment, customers are able to select to use a previously stored bank account or enter a new one.&lt;br /&gt;
&lt;br /&gt;
Customers never leave your WHMCS installation during checkout or adding/removing a new bank account. Personal bank information is submitted directly to GoCardless and is never stored in your local WHMCS installation.&lt;br /&gt;
&lt;br /&gt;
==Reversed Payments==&lt;br /&gt;
&lt;br /&gt;
The Direct Debit Guarantee scheme allows the payee to file a claim for any payment taken in error. WHMCS will monitor for ''charged_back'' events from GoCardless and will automatically process these as appropriate.&lt;br /&gt;
&lt;br /&gt;
To learn more, visit [[Payment Reversals]]&lt;br /&gt;
&lt;br /&gt;
==Refunding Payments==&lt;br /&gt;
&lt;br /&gt;
While refunds with GoCardless are not directly supported from within WHMCS, they can still be processed directly with GoCardless on a case-by-case basis through their review and approval process.&lt;br /&gt;
&lt;br /&gt;
Please refer to the [https://support.gocardless.com/hc/en-ca/articles/210536269-Refunding-payments refunding payments] section of the GoCardless documentation.&lt;br /&gt;
&lt;br /&gt;
== Mandates ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;docs-alert-success&amp;quot;&amp;gt;&lt;br /&gt;
We added these features in WHMCS 7.8.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Reinstating Mandates ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;docs-alert-warning&amp;quot;&amp;gt;&lt;br /&gt;
Reinstating mandates requires specific permission from GoCardless.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When a mandate has been accidentally cancelled, WHMCS can initiate steps to reinstate the mandate without having the client set it up again.&lt;br /&gt;
&lt;br /&gt;
To do this:&lt;br /&gt;
&lt;br /&gt;
# Go to '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Payment Gateways]]''' or, prior to WHMCS 8.0, '''Setup &amp;gt;  Payments &amp;gt; Payment Gateways'''. &lt;br /&gt;
# Click the '''Manage Existing Gateways''' tab. &lt;br /&gt;
# Click '''Manage Cancelled Mandates'''.&lt;br /&gt;
# Follow the instructions in the modal that appears to reinstate a cancelled mandate.&lt;br /&gt;
&lt;br /&gt;
=== Importing Existing Mandates ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;docs-alert-info&amp;quot;&amp;gt;&lt;br /&gt;
You must disable any automatically-charged mandates that you import in order to prevent possible duplicate charges.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can import mandates that you set up outside of WHMCS and associate them with a client.&lt;br /&gt;
&lt;br /&gt;
To do this:&lt;br /&gt;
&lt;br /&gt;
# Go to '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Payment Gateways]]''' or, prior to WHMCS 8.0, '''Setup &amp;gt;  Payments &amp;gt; Payment Gateways'''. &lt;br /&gt;
# Click the '''Manage Existing Gateways''' tab.&lt;br /&gt;
# Click '''Import Existing Mandates'''.&lt;br /&gt;
# Follow the instructions in the modal that appears to import a active mandate to a specific client.&lt;br /&gt;
&lt;br /&gt;
=== Removing Mandates ===&lt;br /&gt;
 &lt;br /&gt;
You can remove mandates by deleting the client's GoCardless [[Pay_Methods|pay method]].&lt;br /&gt;
 &lt;br /&gt;
To do this:&lt;br /&gt;
 &lt;br /&gt;
# Click on the pay method in the '''[[Clients:Summary_Tab|Summary]]''' tab of the client profile.&lt;br /&gt;
# Click '''Delete''' to [[Clients:Summary_Tab#Removing_Card_Details|remove the pay method]] and any associated mandates.&lt;br /&gt;
&lt;br /&gt;
== Reconfiguring Callbacks ==&lt;br /&gt;
&lt;br /&gt;
After moving WHMCS, you must perform the following steps:&lt;br /&gt;
&lt;br /&gt;
# Go to '''Configuration (&amp;lt;i class=&amp;quot;fa fa-wrench&amp;quot; aria-hidden=&amp;quot;true&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;) &amp;gt; System Settings &amp;gt; [[Payment Gateways]]''' or, prior to WHMCS 8.0, '''Setup &amp;gt;  Payments &amp;gt; Payment Gateways'''.&lt;br /&gt;
# Click '''Configure GoCardless Account Connection'''.&lt;br /&gt;
# Log in again using the same details. &lt;br /&gt;
&lt;br /&gt;
This ensures that GoCardless stores and uses the new system URL and gateway callback file URL.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
===Access token not active===&lt;br /&gt;
&lt;br /&gt;
You can only connect each GoCardless account to a single WHMCS at a time. If you connected the GoCardless Account to multiple WHMCS installations, only the last installation that you connected will function correctly. Previously-connected WHMCS installations will show an &amp;lt;tt&amp;gt;Access token not active&amp;lt;/tt&amp;gt; error at '''Billing &amp;gt; [[Gateway Log]]'''.&lt;br /&gt;
&lt;br /&gt;
To resolve this error, you will need to reconnect WHMCS to GoCardless by [[#Reconfiguring_Callbacks|reconfiguring callbacks]]. &lt;br /&gt;
&lt;br /&gt;
{{modules}}&lt;/div&gt;</summary>
		<author><name>JoshQ</name></author>	</entry>

	</feed>