QuickBooks Desktop For WHMCS

From ModulesGarden Wiki
Jump to: navigation, search


About QuickBooks Desktop For WHMCS

QuickBooks Desktop For WHMCS module allows integration between the two systems and helps you improve your accounting management.

This module synchronizes the clients, invoices and transactions details gathered in your WHMCS with QuickBooks database.
You can integrate the data either manually or automatically using cron job. It is also possible to preview all information on exported data thanks to logs.

  • Module Features:
✔ Export Manually:
✔ Clients
✔ Invoices And Transactions
✔ Products
✔ Export Automatically:
✔ Clients
✔ Invoices
✔ Transactions
✔ Products
✔ Invoices Refunds
✔ Invoices Merge
✔ Import Synchronization:
✔ Clients
✔ Invoices
✔ Transactions
✔ Products
✔ Manage Relations:
✔ Clients With Automatching
✔ Custom Client Field
✔ Products With Automatching
✔ Invoices With Automatching
✔ Tax Rules
✔ Currencies With Payment Deposits
✔ Define Default Product Item
✔ Define Default Domain Item
✔ Define Default Account For Products
✔ Define Tax Zero-Rated
✔ Define Home Currency
✔ Define Automatic Export Settings
✔ View Export And Cron Run Summary
✔ View Web Connector Task
✔ View Logs
✔ Set Web Connector Account
  • General Info:
✔ Multi-Currency Support
✔ Refunds Support
✔ Multi-Language Support
✔ Supports PHP 5.4 Up To PHP 7
✔ Supports WHMCS V6 and V7
  • Requirements:
✔ QuickBooks Desktop Account
✔ QuickBooks Web Connector
✔ WHMCS With HTTPS and SSL Certificate


This tutorial will show you how to successfully install and configure QuickBooks Desktop For WHMCS.

We will guide you step by step through the whole installation and configuration process.

1. Log in to your client area and download the module.
QBD 1.png
2. In the downloaded file you will find two packages that support different PHP versions.
As presented on the screen below, the first one is dedicated to PHP 7, while the second one is aimed at PHP 5.4 up to PHP 5.6.
It does not apply to open source versions.

Note: You can check current PHP version in your WHMCS. To do so proceed to 'Utilities' → 'System' → 'PHP Info'.

QBD 2.png
3. Extract the downloaded file and choose the one with the right PHP version. Upload and extract the PHP file into the main WHMCS directory.

The content of PHP version files should look like this.

QD 3.png
4. When you install QuickBooks Desktop For WHMCS for the first time you have to rename 'license_RENAME.php' file.

File is located in 'modules/addons/QuickBooks_Desktop/license_RENAME.php'. Rename it from 'license_RENAME.php' to 'license.php'.

QBD 3.png
5. In order to configure your license key, you have to edit the previously renamed 'license.php' file.

Enter your license key between quotation marks as presented on the following screen. You can find your license key in your client area → 'My Products'.

QBD 4.png
6. Now you have to activate the module in your WHMCS system.

Log in to your WHMCS admin area. Go to 'Setup' 'Addon Modules' . Afterwards, find 'QuickBooks Desktop' and press 'Activate' button.

QBD 5.png
7. In the next step you need to permit access to this module.

To do so, click on 'Configure' button, check required group of administrators and press 'Save Changes'.

QBD 6.png
8. You have just successfully installed QuickBooks Desktop For WHMCS!

You can access your module under 'Addons' 'QuickBooks Desktop'.

Configuration and Management

QuickBooks Desktop For WHMCS is a module which allows you to export any data on clients, invoices and transactions directly to QuickBooks Desktop.


1. To configure your module properly, first you have to add new account.

To do so proceed to 'Addons' 'QuickBooks Desktop' 'Settings' 'Accounts'.

QBD 12.png
In order to use the module fully, your account will be linked to Web Connector, a tool allowing integration beetween your WHMCS system and QuickBooks Desktop.

Provide the necessary information. You can also define when the data will be synchronized automatically.

QBD 13.png
Your account should appear on the list. It can be switched on/off, edited or deleted. For the proper configuration, you need to download the file for Web Connector now, as shown below.
QBD 14.png
Be sure that your QuickBooks Desktop software is now running and has opened your company file.
Then open the generated account file in the QuickBooks Web Connector. Click 'OK'. It will allow the module to authenticate your identity in QuickBooks system and let connect your WHMCS with it.
QBD 15 1.png
Next, the certification window will appear to ask for permission to read and modify your company file. Choose the appropriate option and continue.
QBD 15 2.png
You should see successfully added account in Web Connector window:
QBD 16.png
2. Synchronization Settings - decide which of the possible synchronization options you want to enable.

Proceed to 'Addons' 'QuickBooks Desktop' 'Settings' 'General' and tick the ones you are interested in.

Note: To enable synchronization between the setting fields and their equivalents in QuickBooks Desktop, you need to use 'Default Task' that will automatically run the necessary actions.

QBD 16 2.png
In 'Task' tab you can check whether all the tasks are completed. Only then the values will be visible.
QBD 16 3.png
The following synchronization options are available:

Clients synchronization:

  • Create - done on client's creation
  • Update - takes place when client account has been updated
  • Delete - takes place when client has been deleted

Invoices synchronization:

  • Create - done on invoice creation
  • Update - takes place when an invoice has been updated or altered
  • Delete - takes place when an invoice has been deleted
  • Delete Cancelled - tick to remove already cancelled WHMCS invoices from QuickBooks Desktop

Payments synchronization:

  • Create - done when a transaction has been completed
  • Delete - takes place when a transaction has been deleted by an admin

Refunds synchronization:

  • Create - done when a refund has been completed
  • Delete - takes place when a refund has been deleted by an admin
    Please note that both payments and refunds are handled together and in dashboard are summarized as one point called 'Payments'

Products synchronization:

  • Create - done on product creation
  • Update - takes place when a product has been updated or altered
  • Delete - takes place when a product has been deleted

Query synchronization:

  • Invoices Query - done before invoice creation
  • Payments Query - takes place before payment creation
For more information about Import Synchronization configuration go to the Cron Jobs section.

Apart from choosing required synchronization options, you have to decide here, which items from QuickBooks Desktop, 'Products ' and 'Domains' will be associated with.
Note: Default Product will be used only when tehre is no relation set for the selected product in 'Relation: Product' section.
Choose other options from the dropdown menu to set up.

  • Tax Zero-Rated - used when charged item is not taxed
  • Shorten the Transaction ID - select this option to cut every payment Transaction ID that is longer than 21 characters
  • Clients Query Limit - define the number of users that shall be fetched from API at a time
  • Clients Query Status - choose all, active or inactive clients to be fetched from API

Press Save Changes button.

QBD 17.png
All the tasks and their statuses will be displayed in Task tab.
QBD 18.png
3. To use the module properly, remember to set the relations correctly.

It is possible to manually declare relations between WHMCS clients, products as well as invoices and corresponding to them QuickBooks Desktop elements.
This feature is especially helpful when you need to avoid confusion and misunderstandings.
Please note that this is an extra option, which gives the possibility to manually configure relations.

Relation: Tax Rules
In 'Relation' → 'Tax Rules' directory, you will find a list of defined taxes rules.
Firstly, select 'Tax Rules Query' option and wait until all tasks are done. Then assign each rule to a specific QuickBooks tax. Select one from a dropdown menu and save changes.
QBD 28.png
Relation: Currencies
In 'Relation' → 'Currencies' directory, you will find a list of defined currencies.
Firstly, select 'Currencies Query' option and wait until all tasks are done. Then assign each currency to a specific one from QuickBooks Desktop. Select one from a dropdown menu and save changes.

Note that if you would like to use several currencies, 'Multicurrency' option must be enabled in QuickBooks Desktop settings. Otherwise the process will not be successful.

QBD 26.png
Relation: Custom Client Fields
When you go to 'Relation' → Custom Client Fields' , you will find a list of fields which appear in the client profile.
Firstly, select 'Clients Query' option and wait until all tasks are done.

Note that if all clients in QuickBooks Desktop have the same custom field with no value provided, that field will not be synchronized and displayed on the list. At least one of the clients must have it filled in.

QBD 24.png


At this section we will show you the possibilities of QuickBooks Desktop For WHMCS.

Once it has been properly connected with QuickBooks Desktop and all the configuration is now ready, we can move on to 'Export' section.


Our module allows several ways to export any data gathered in your WHMCS.

Read the below points to learn what data can be synchronized with QuickBooks Desktop and what are the possible means of such synchronizations.


The first option offered by our module is the export of clients from WHMCS to QuickBooks Desktop, proceed to 'Export' → 'Clients.' You will see here a list of all clients who exist in your WHMCS and have not been synchronized with QuickBooks yet.
Use filter to find clients with their account created during the specified period of time.
QBD 19.png
Now, you can manually export all of the clients available on the list or choose only some of them.
Check boxes next to the clients you are going to export and press 'Export' button as marked on the screen.
If you want to export only one client you can do it by pressing 'Export' button located in 'Action' column next to the name of the client.
QBD 20.png
If a client has already been exported from WHMCS to QuickBooks, they will no longer be visible on the list.
All clients newly added to WHMCS will be automatically synchronized with QuickBooks unless otherwise stated in 'Synchronization Settings.'


The other choice is the export of invoices.
Proceed to 'Export' → 'Invoices' and you will find a list of all invoices existing in our WHMCS that have not been synchronized with QuickBooks yet.
In details you will find information on the invoice:
  • ID
  • date when it was created
  • client assigned to the invoice
  • items on the invoice
  • its status
  • a total sum.
Just like in case of clients:
  • press 'Toggle Filters' to use filter to find invoices from specified period if time
  • perform mass export of all checked invoices
  • export individual invoices to QuickBooks.
    Use buttons marked on the screen to perform the above enumerated actions.
QBD 21.png
Once you have exported some of the invoices you will see their number along with the number of any transactions connected with them in 'Summary' table on the dashboard.
QBD 22.png
Keep in mind that all newly added (after the first usage of QuickBooks For WHMCS) invoices and transactions are automatically synchronized and exported to QuickBooks Desktop
unless otherwise stated in 'Synchronization Settings.'

Relation: Clients

Another possible relations to be declared are relations between WHMCS clients and QuickBooks customers.

Proceed to 'Relation' → 'Clients,' you will find there a list of all clients, with their email addresses, that exist in WHMCS,
those who have not been exported to QuickBooks Desktop yet as well as those already exported.
All exported and imported clients have automatically set relations. It is possible to match clients relations using 'Match Clients' button or manually choose them from the dropdown menu in 'QuickBooks Customer' section.

QBD 23.png

Relation: Products

Products relations can be declared manually and for each product separately along with those declared in 'Configuration' → 'Synchronization Settings.' '

Proceed to 'Relation' → 'Products,' you will find there a list of all products with their type and payment standard.
In the last column there is a dropdown menu with all QuickBooks Desktop items that can be assigned to exported products.

QBD 25.png

Relation: Invoices

In 'Relation' → 'Invoices' directory, you will find a list of all WHMCS invoices with their ID, date of creation, assigned client, total sum on it and status.

It is possible to assign such WHMCS invoice to another invoice already exported to QuickBooks Desktop. Just choose such from dropdown menu and save changes.
Transactions between the two invoices will be synchronized then.

QBD 27.png

Cron Jobs

Properly set up cron job with a recommended interval is responsible for importing and synchronization of data from QuickBooks into WHMCS e.g any updates done in invoices or clients' accounts from WHMCS.

Once the cron is running, it executes settings included in 'Import Synchronization' table.

QBD 29 2.png
  • Default Country - the default country that will be set for the clients imported from QuickBooks to WHMCS (QuickBooks does not return the country for customers)
  • Transaction Date - downloads transactions according to a selected criterion, for example: 'This Month' will retrieve transactions from current QuickBooks month.
  • Invoice Synchronization Date - gets invoices according to the selected criterion, for example: 'This Month' will retrieve invoices from current QuickBooks month.
  • Invoice Synchronization Days - if set receives invoices, e.g. from the last 5 days.
  • Default Payment Method - the default method that will be set for importing payments from QuickBooks to WHMCS.
  • Product Group - the default group for the imported product.
  • Import Limit - if the provided limit is reached, the script execution ends.

It is recommended to run cron job every six hours in order to synchronize the data between QuickBooks Desktop and WHMCS.
To do so use 'php -q /var/www/whmcs/modules/addons/QuickBooksDesktop/cron/cron.php' cron with the following arguments: '--syncClients --syncInvoices --syncPayments --syncProducts'.

In order to import new clients, invoices or products from QuickBooks Desktop to your WHMCS, run 'php -q /var/www/whmcs/modules/addons/QuickBooksDesktop/cron/cron.php' cron
with the following arguments: '--importClients --importInvoices --importPayments --importProducts' once a day.


In 'Logs' tab there are enumerated ALL actions on clients, invoices and transactions.
No matter if they were taken manually in the module, automatically or by a cron job.
Find there a list of all entries with precisely described details and an exact date of the action.
QBD 29.png
Clear all the entries or delete only some of them. Use buttons marked on the screen above.


'Dashboard' includes two useful and user-friendly tables.

The first one, 'Export Summary' contains data on the number of exported clients, invoices and payments.
The number includes exports done in all possible manners.
The second table shows information about the number of tasks performed including their statuses.

QBD 30.png


The very last tab 'Documentation' once clicked will redirect you to the article you are currently reading!


1. Please note that QuickBooks Desktop supports the services of One Time type only. Other billing cycles cannot be added.

Common Problems

1. When you have problems with connection, check whether your SELinux or firewall does not block ports.
2. It may happen that taxes are counted incorrectly for invoices with multiple items where part of the items is taxed and some are not. Please, be careful!
3. In case you encounter any issues with installation and configuration please make sure you have php7.0-mcrypt and php7.0-soap installed.

Without that the module will not work properly.

4. When .htaccess is enabled the module may not work due to the lack of connection between QuickBooks Web Connector and WHMCS system.
5. In order for Web Connector to link with your WHMCS, your site has to be SSL cerified.

6. If you get the following error: 'Got a packet bigger than 'max_allowed_packet' bytes' you need to increase max_allowed_packet parameter on your server.
To do this log in to your mysql console with administrate permissions and execute the following command:

SET GLOBAL max_allowed_packet=16777216;

This command can be also perform in your phpMyAdmin if you are logged as root user.

7. In case you see 'The given object ID "0" in the field "list id" is invalid.' error, please check that 'Default Products Item' or 'Domains Item' fields are properly configured.
Personal tools

WHMCS Modules
cPanel Modules
Magento Extensions
Magento Themes
PrestaShop Modules
Blesta Extensions
QuickBooks Desktop For WHMCS