How To Guides

Home / Support / Documentation
From WHMCS Documentation
Jump to: navigation, search

This page contains step-by-step instructions for certain common scenarios that may occur whilst running a business. There are more tips, tricks and howto's in our forum.

Regenerate Historical Invoices

When switching from a manual billing system or software for which an import script is not available it may be desirable to have a record of past invoices issued before you started using WHMCS.

Once the client and their service has been added navigate to the client's Product's/Services tab set the Next Due Date on the back to the date you want the first historical invoice to be due via their Products/Services tab and Save Changes. So for example if the client has an invoice every month starting a year ago, set it to 28/06/2011.

Click the Generate Due Invoices button from the summary page and last year's invoice will be created. When prompted select "No" so a notification email is not sent to the client.

Next navigate to the Invoices tab, click the invoice and then the Add Payment tab to record the payment details per Transactions. Untick the "Send Email" option so the client is not notified of the payment.

This will cause the Next Due Date to increment forward 1 billing cycle, so in our example it will now be 28/06/2012. Once again click the "Generate Due Invoices" and the June 2011 invoice will be created, Add Payment to the invoice....

Now just repeat until the Next Due Date is showing the date the client's next payment is due.


Update Domain Pricing

Occasionally it may be necessary to update the price of existing domain names or products in your system, for example in line with wholesale price increases. This can be achieved with the Bulk Pricing Update Utility and these instructions:

  • Begin by navigating to Setup > Addon Modules
  • Locate and Activate the addon named Bulk Pricing Updater (it may already be active in which case you can skip this step)
  • Next you need to ensure you have access to the module by scrolling down the page following activation and ensuring your admin role group (usually Full Administator) has the checkbox ticked in the Access Control permissions for it.
  • Now navigate to Addons > Bulk Pricing Updater to actually access the addon module
  • This is where you can then set your criteria and perform the pricing update. This should be done as follows:
Bulk Price Updater
    • First you need to select the Products/Services you want to apply a change to, which in this case is Domain TLDs. These can be found at the bottom of the list. Above we have selected all 3 that are changing in price (using Ctrl+Click), but you may want to do each one individually if you are wanting to charge different prices for each
    • Next select the statuses you want to apply the change to, just Pending and Active statuses are what we recomend as Expired and Cancelled domains won't be billed again
    • Next it's onto selecting the Billing Cycles you want to apply the change to. Don't make the mistake of selecting Annually or Biennially here, those are product billing cycles, instead you're looking for the "Domain" related terms which are a bit further down the list - Domain: 1 Year, Domain: 2 Years, etc... You will need to run an update for each pricing term you offer.
    • The next 2 fields are optional - they are currency and current price. If you run multiple currencies then you would need to do a separate update request for each currency, and if you have certain clients on older or special pricing, you can use the current price field to restrict a change to only users with a specific current price, thus allowing you to keep the users on different pricing
    • Finally last of all you enter the New Recurring Price in the field that you want to assign to the customers, and click Update Pricing to perform the change

The system will confirm success with a report something along the lines of the following:

Pricing Update Results
Updated Domains with TLD .com - xxx Affected
Updated Domains with TLD .net - xxx Affected
Updated Domains with TLD .biz - xxx Affected


Change Tax Rate

From time-to-time governments change the sales tax rates, this is significant as you must also update your rates accordingly.

For the purposes of this example the UK sales tax - called VAT - is being increased from 17.5% to 20% on 4th January.

This means that at midnight on Monday 3rd January, or at the latest before the cron run on the 4th for generating new invoices, you will want to update the tax rules in your WHMCS installation so that new orders and invoices use the higher rate. This is possible through the WHMCS admin interface under Setup > Tax Rules:

  • Delete the original tax rule by clicking the corresponding red delete icon,
  • Create a new tax rule with exactly the same country and state but enter the new tax rate.

That's all there is to it, any invoices generated after this change will have the new tax rate applied, but any existing invoices will keep the old tax rate.


If you have multiple separate rules this method can be time-consuming, so this can be done in-bulk by running an SQL update query as follows on your WHMCS database via a tool such as phpMyAdmin:

UPDATE tbltax SET taxrate=20 WHERE taxrate=17.5;

Existing invoices will not be affected by this and will keep the 17.5% tax rates they were originally generated with. This will just mean that for any invoices generated after the change, use the new higher 20% tax rate.


If you also wish to update existing but unpaid invoices generated before the 4th but due on or after it, then you can use this query to do that:

UPDATE tblinvoices SET taxrate=20,tax=subtotal*0.2,total=subtotal+tax-credit WHERE status='Unpaid'
AND taxrate=17.5 AND duedate>='2011-01-04';


Migrate Payment Gateways

On occasion it may be desirable to stop using one payment gateway and switch to another. This is a general guide to the process:

  1. Enable the new payment gateway module under Setup > Payments > Payment Gateways and configure it per our documentation
  2. Deactivate the old module by clicking Deactivate on the Payment Gateways page, you will be given the option to reassign clients so select the new payment gateway when prompted. More info @ Deactivating Gateway Modules
  3. Depending upon the type of payment gateway module you're switching two there may be a third step involved:
    1. If switching between merchant gateways or third party gateway modules then you are now finished.
    2. If switching to a merchant gateway for the first time the client will need to login and enter their card details to the "My Details" page in the client area. The card will then be charged when the next invoice is due.
    3. If switching between tokanisation modules the client will then need to login and pay their first invoice manually which will store their card details on your processor's servers and then subsequent payments will be attempted automatically. Regrettably there isn't an way for the migration to be done without client's intervention as their CVV number is required for the first payment.
    4. If switching from a merchant or tokanisation gateway to a third party gateway, clients will need to manually pay their next invoice via the client area. If card details or a token are stored for the client you may wish to delete them via the "Credit Card Information" link on each client's summary page.

And that's it!

Advanced Billing Scenarios

Watch Video Tutorial

The above video tutorial shows and explains how to handle two advanced billing scenarios:

  1. Change a billing cycle from annual to monthly, with the added complication that an annual renewal invoice has already been generated.
  2. Consolidate the renewal date of several services onto the same day on a single invoice in future, even if some services have already been renewed this month.