Personal tools
Namespaces

Variants
Actions

QuickBooks Desktop For WHMCS

From ModulesGarden Wiki
(Difference between revisions)
Jump to: navigation, search
(About QuickBooks Desktop For WHMCS)
(About QuickBooks Desktop For WHMCS)
 
(111 intermediate revisions by 10 users not shown)
Line 1: Line 1:
 
<meta name="keywords" content="quickbooks desktop for whmcs, quickbooks desktop configuration, whmcs quickbooks desktop management, whmcs quickbooks desktop installation, whmcs quickbooks desktop common problems, about whmcs quickbooks desktop, whmcs quickbooks desktop documentation, whmcs quickbooks desktop faq, whmcs quickbooks desktop help, whmcs quickbooks desktop guide, whmcs quickbooks desktop wiki, whmcs quickbooks tutorial, whmcs quickbooks tips, whmcs quickbooks wiki"></meta>
 
<meta name="keywords" content="quickbooks desktop for whmcs, quickbooks desktop configuration, whmcs quickbooks desktop management, whmcs quickbooks desktop installation, whmcs quickbooks desktop common problems, about whmcs quickbooks desktop, whmcs quickbooks desktop documentation, whmcs quickbooks desktop faq, whmcs quickbooks desktop help, whmcs quickbooks desktop guide, whmcs quickbooks desktop wiki, whmcs quickbooks tutorial, whmcs quickbooks tips, whmcs quickbooks wiki"></meta>
 
<meta name="description" content="ModulesGarden Wiki Contains All The Information You Need About The QuickBooks Desktop For WHMCS Module."></meta>
 
<meta name="description" content="ModulesGarden Wiki Contains All The Information You Need About The QuickBooks Desktop For WHMCS Module."></meta>
=About [http://www.modulesgarden.com/products/whmcs/quickbooks_desktop/features QuickBooks Desktop For WHMCS]=
+
 
 +
=About [https://www.modulesgarden.com/products/whmcs/quickbooks-desktop QuickBooks Desktop For WHMCS]=
 
{|
 
{|
|style="padding: 10px 0px 5px 0px;"|'''QuickBooks Desktop For WHMCS''' module allows integration between the two systems and helps you improve your accounting management.<br/>
+
|style="padding: 10px 0px 5px 0px;"|'''QuickBooks Desktop For WHMCS''' module enables the two-way integration between WHMCS and QuickBooks Desktop and thereby helps you improve your accounting management.<br/>
This module synchronizes the clients, invoices and transactions details gathered in your WHMCS with QuickBooks database.<br/>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.
+
This module synchronizes the clients, invoices and transaction details gathered in your WHMCS with QuickBooks database.<br/>You can integrate the data either manually or automatically using a cron job. It is also possible to preview all the exported data thanks to the summaries available on the dashboard and logs.
 
|}
 
|}
 
*'''Module Features:'''
 
*'''Module Features:'''
Line 14: Line 15:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Invoices And Transactions
+
|style="padding: 0px 0px 0px 45px;"|✔ Invoices  
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Transactions
 
|}
 
|}
 
{|
 
{|
 
|style="padding: 0px 0px 0px 45px;"|✔ Products
 
|style="padding: 0px 0px 0px 45px;"|✔ Products
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Credit Payments
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Product Addons
 
|}
 
|}
 
{|
 
{|
Line 27: Line 37:
 
{|
 
{|
 
|style="padding: 0px 0px 0px 45px;"|✔ Invoices
 
|style="padding: 0px 0px 0px 45px;"|✔ Invoices
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Merged Invoices
 
|}
 
|}
 
{|
 
{|
Line 35: Line 48:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Invoices Refunds
+
|style="padding: 0px 0px 0px 45px;"|✔ Refunds
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Invoices Merge
+
|style="padding: 0px 0px 0px 45px;"|✔ Credit Payments
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Import Synchronization:
+
|style="padding: 0px 0px 0px 30px;"|✔ Import And Synchronize:
 
|}
 
|}
 
{|
 
{|
Line 62: Line 75:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Custom Client Field
+
|style="padding: 0px 0px 0px 45px;"|✔ Custom Client Fields
 
|}
 
|}
 
{|
 
{|
 
|style="padding: 0px 0px 0px 45px;"|✔ Products With Automatching
 
|style="padding: 0px 0px 0px 45px;"|✔ Products With Automatching
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Product Addons With Automatching
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Domains With Automatching
 
|}
 
|}
 
{|
 
{|
Line 74: Line 93:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 45px;"|✔ Currencies With Payment Deposits
+
|style="padding: 0px 0px 0px 45px;"|✔ Currencies
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Payment Gateways - Including Payment Methods, Deposits And Currencies
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Transactions With Automatching
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Create Own Custom Rules
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Choose Default Product Item
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Choose Default Domain Item
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Choose Account For Products
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Define Default Product Item
+
|style="padding: 0px 0px 0px 30px;"|✔ Choose Tax Zero-Rated
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Define Default Domain Item
+
|style="padding: 0px 0px 0px 30px;"|✔ Choose US Default Tax
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Define Default Account For Products
+
|style="padding: 0px 0px 0px 30px;"|✔ Choose Home Currency
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Define Tax Zero-Rated
+
|style="padding: 0px 0px 0px 30px;"|✔ Set Exported Client Name Format
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Define Home Currency
+
|style="padding: 0px 0px 0px 30px;"|✔ Set Client Business Number Custom Field
 
|}
 
|}
 
{|
 
{|
 
|style="padding: 0px 0px 0px 30px;"|✔ Define Automatic Export Settings
 
|style="padding: 0px 0px 0px 30px;"|✔ Define Automatic Export Settings
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Set Printed Invoices Custom Field
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Choose Accounts Receivable
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Choose Invoice Default Class
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Choose Gateway Fee Account
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ Send Email Notifications About Task Failures
 
|}
 
|}
 
{|
 
{|
Line 117: Line 169:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 0px 30px;"|✔ Supports PHP 5.3 Up To PHP 7
+
|style="padding: 0px 0px 0px 30px;"|✔ Supports PHP 8.2 Back To PHP 7.4
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 10px 30px;"|✔ Supports WHMCS V6 and V7
+
|style="padding: 0px 0px 0px 30px;"|✔ Supports WHMCS V8.11 Back To WHMCS V8.8
 
|}
 
|}
 +
{|
 +
|style="padding: 0px 0px 10px 30px;"|✔ ✔ Easy [https://www.docs.modulesgarden.com/How_To_Upgrade_WHMCS_Module Module Upgrade] To [https://www.modulesgarden.com/products/whmcs/quickbooks-desktop#open-source-version Open Source Version]
 +
|}
 +
 
*'''Requirements:'''
 
*'''Requirements:'''
 
{|
 
{|
|style="padding: 10px 0px 0px 30px;"|✔ QuickBooks Desktop
+
|style="padding: 10px 0px 0px 30px;"|✔ QuickBooks Desktop Product:
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Pro Plus 2024
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Premier Plus 2024
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 45px;"|✔ Enterprise 24.X
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ QuickBooks Web Connector 34.X or Above
 +
|}
 +
{|
 +
|style="padding: 0px 0px 0px 30px;"|✔ WHMCS With HTTPS And SSL Certificate
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 30px;"|✔ QuickBooks Web Connector
+
|style="padding: 0px 0px 30px 30px;"|✔ ionCube Loader V13 Or Later
 
|}
 
|}
  
 
=Installation=
 
=Installation=
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|'''This tutorial will show you how to successfully install and configure QuickBooks Desktop For WHMCS.''' <br />
+
|style="padding: 10px 0px 15px 15px;"|'''This tutorial will show you how to successfully install and configure [https://www.modulesgarden.com/products/whmcs/quickbooks-desktop QuickBooks Desktop For WHMCS.]''' <br />
 
We will guide you step by step through the whole installation and configuration process.  
 
We will guide you step by step through the whole installation and configuration process.  
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|'''1. Log in to your client area and download QuickBooks Desktop For WHMCS.'''
+
|style="padding: 0px 0px 20px 15px;"|'''1. Log in to our client area and download the module.'''
 
|}
 
|}
 
{|
 
{|
Line 142: Line 213:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''2. Upload and extract the module into the main WHMCS directory.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''2. In the downloaded file you might find one or two packages that support different PHP versions.'''<br/>
Files in your WHMCS directory should look like on the following screen.
+
In the most recent versions of the module, you will find only one package that supports PHP 7.2 and later.<br/> <!-- If you need a package for the previous versions of PHP, please [https://www.modulesgarden.com/support/ticket/general-support contact our support]. -->
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:QBD_2.png]]
+
|style="padding: 0px 0px 20px 25px;"|[[File:PHP72_74.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''3. When you install QuickBooks Desktop for the first time you have to rename '' 'license_RENAME.php' '' file.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''Previous updates of the module may contain two packages dedicated to various PHP versions.'''<br/>
 +
The first one that supports PHP 5.6 up to PHP 7.1, and the second one addressed to PHP 7.2 up to PHP 7.4.<br/>
 +
'''''Note:''' Keep in mind that PHP versions 5.6 up to 7.1 are no longer officially supported and their security issues are not fixed or released any more. Find more info [http://php.net/supported-versions.php here].''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:PHP56_74.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 15px;"|<!-- '' '''Important''': This situation does not affect [https://www.modulesgarden.com/products/whmcs/quickbooks-desktop#open-source-version '''the open source version'''] of this module which can be applied to any PHP from version 5.6 and later.''<br/>'' --> '''Note''': You can check the current PHP version in your WHMCS. To do so, proceed to ''' 'Utilities' → 'System' → 'PHP Info'.'''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|'''3. Extract the package and upload its content into the main WHMCS directory.
 +
The content of the package to upload should look like this.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:QD_3.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|'''4. When you install QuickBooks Desktop For WHMCS for the first time you have to rename '' 'license_RENAME.php' '' file.'''<br />
 
File is located in '' 'modules/addons/QuickBooks_Desktop/license_RENAME.php'. '' Rename it from '' 'license_RENAME.php' '' to '' 'license.php'. ''
 
File is located in '' 'modules/addons/QuickBooks_Desktop/license_RENAME.php'. '' Rename it from '' 'license_RENAME.php' '' to '' 'license.php'. ''
 
|}
 
|}
Line 156: Line 245:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''4. In order to configure your license key, you have to edit the previously renamed '' 'license.php' file.'' '''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''5. In order to configure your license key, you have to edit the previously renamed '' 'license.php' file.'' '''<br />
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'. ''
+
Enter your license key between quotation marks as presented on the following screen. You can find your license key in our client area → '' 'My Products'. ''
 
|}
 
|}
 
{|
 
{|
Line 163: Line 252:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''5. Now you have to activate the module in your WHMCS system. '''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''6. Now you have to activate the module in your WHMCS system. '''<br />
 
Log in to your WHMCS admin area. Go to '' 'Setup' '' → '' 'Addon Modules' ''. Afterwards, find '' 'QuickBooks Desktop' '' and press '' 'Activate' '' button.
 
Log in to your WHMCS admin area. Go to '' 'Setup' '' → '' 'Addon Modules' ''. Afterwards, find '' 'QuickBooks Desktop' '' and press '' 'Activate' '' button.
 
|}
 
|}
Line 170: Line 259:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''6. In the next step you need to permit access to this module.'''<br />
+
|style="padding: 0px 0px 15px 15px;"|'''7. In the next step, you need to enable the access to this module.'''<br />
To do so, click on '' 'Configure' '' button, check required group of administrators and press '' 'Save Changes'. ''
+
To do so, click on '' 'Configure' '' button, check the required group of administrators and press '' 'Save Changes'. ''
 
|}
 
|}
 
{|
 
{|
Line 177: Line 266:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 15px;"|'''7. You have just successfully installed QuickBooks Desktop For WHMCS!'''<br />
+
|style="padding: 0px 0px 30px 15px;"|'''8. You have just successfully installed QuickBooks Desktop For WHMCS!'''<br />
 
You can access your module under '' 'Addons' '' → '' 'QuickBooks Desktop'. ''
 
You can access your module under '' 'Addons' '' → '' 'QuickBooks Desktop'. ''
 
|}
 
|}
Line 183: Line 272:
 
=Configuration and Management=
 
=Configuration and Management=
 
{|
 
{|
|style="padding: 10px 0px 30px 15px;"|'''QuickBooks Desktop For WHMCS is a module which allows you to export any data on clients, invoices and transactions directly to QuickBooks Desktop.'''
+
|style="padding: 10px 0px 30px 15px;"|'''QuickBooks Desktop For WHMCS is a module which allows you to synchronize any data on clients, invoices and transactions with QuickBooks Desktop.'''
 
|}
 
|}
 
==Configuration==
 
==Configuration==
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|'''1. To configure your module properly, first you have to add new account'''.<br/>
+
|style="padding: 10px 0px 20px 15px;"|'''1. To configure your module properly, you first have to add a new account'''.<br/>
To do so proceed to '' 'Addons' '' → '' 'QuickBooks Desktop' '' → '' 'Settings' '' → '' 'Accounts'. ''
+
To do so, proceed to '' 'Addons' '' → '' 'QuickBooks Desktop' '' → '' 'Settings' '' → '' 'Accounts'. ''
 
|}
 
|}
 
{|
 
{|
Line 194: Line 283:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|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.<br/>
+
|style="padding: 0px 0px 15px 15px;"|In order to use the module fully, your account will be linked to ''Web Connector'', the tool that enables the integration between your WHMCS system and QuickBooks Desktop.<br/>
Provide the necessary information. You can also define when the data will be synchronized automatically.
+
Provide the necessary information. You can also specify when the data shall be synchronized automatically.
 
|}
 
|}
 
{|
 
{|
Line 201: Line 290:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|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.
+
|style="padding: 0px 0px 20px 15px;"|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 of ''Web Connector'' now, as shown below.
 
|}
 
|}
 
{|
 
{|
Line 207: Line 296:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Open the file in the QuickBooks Web Connector.
+
|style="padding: 0px 0px 15px 15px;"|Be sure that your QuickBooks Desktop software is now running and there is your company file opened within in.  
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|You should see Web Connector window.
+
|style="padding: 0px 0px 15px 15px;"|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 your WHMCS connect with it.
You have successfully added your account!
+
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:QBD_15_1.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|Next, the certification window will appear to ask for permission to read and modify your company file. Choose the appropriate option and continue.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:QBD_15_2.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|You should see the successfully added account in Web Connector window:
 
|}
 
|}
 
{|
 
{|
Line 217: Line 317:
 
|}
 
|}
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|'''2. To use the module properly, remember to set the relations correctly'''.<br/>
+
|style="padding: 0px 0px 5px 15px;"|'''2. Synchronization Settings''' - decide which of the possible synchronization options you want to enable.<br/>
It is possible to manually declare relations between WHMCS clients, products as well as invoices and corresponding to them QuickBooks Desktop elements.<br/>
+
Proceed to '' 'Addons' '' → '' 'QuickBooks Desktop' '' → '' 'Settings' '' → '' 'General' '' and tick the ones you are interested in.<br/><br/>
This feature is especially helpful when you need to avoid confusion and misunderstandings.<br />
+
'' '''Note:''' To enable the synchronization between the setting fields and their equivalents in QuickBooks Desktop, the 'Default Tasks' that will automatically run the necessary actions are required.''<br/>
''Please note that this is an extra option, which gives the possibility to manually configure relations.''
+
''Since the 1.1.0 module version, the 'Default Tasks' are automatically added to the 'Tasks' list after the addon activation.'' <br/>
 +
''If you are using previous versions, you have to manually press on the 'Default Tasks' button to add all tasks to the list.''
 
|}
 
|}
====Relation: Clients====
 
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|The first possible relations to be declared are relations between WHMCS clients and QuickBooks customers. <br/>
+
|style="padding: 0px 0px 10px 25px;"|[[File:QBD_16_2.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|''In the 'Task' tab, you can check whether all the tasks are completed. Only then the values will be visible.''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:QBD_16_3.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|The following synchronization options are available:<br/>
 +
'''Clients''' synchronization:
 +
*Create - performed upon the client creation
 +
*Update - takes place when the client account has been updated
 +
*Delete - takes place when the client has been deleted
 +
'''Invoices''' synchronization:
 +
*Create - performed upon the invoice creation
 +
*Update - takes place when the invoice has been updated or altered 
 +
*Delete - takes place when the invoice has been deleted
 +
*Delete Cancelled - tick to remove the already cancelled WHMCS invoices from QuickBooks Desktop
 +
*"Add Funds" Invoice - select this option if you want to '''disable''' the synchronization of invoices of "Add Funds" type. By default the synchronization is enabled.
 +
'''Payments''' synchronization:
 +
*Create - performed when the transaction has been completed
 +
*Delete - takes place when the transaction has been deleted by an administrator
 +
'''Refunds''' synchronization:
 +
*Create - performed when the refund has been completed
 +
*Delete - takes place when the refund has been deleted by an administrator
 +
*:Please note that both payments and refunds are handled together and thus are summarized on the dashboard as a single point called '' 'Payments' ''
 +
'''Products''' synchronization:
 +
*Create - performed upon the product creation
 +
*Update - takes place when the product has been updated or altered 
 +
*Delete - takes place when the product has been deleted
 +
'''Query''' synchronization:
 +
*Invoices Query - performed before the invoice creation
 +
*Payments Query - takes place before the payment creation
 +
'''Customer Name Format''' synchronization:
 +
*Using the available fields, define the client name format that will be exported to QuickBooks Desktop.<br/>Note that you can use conditional instructions as well. For example: <pre>{if $companyname}{$companyname}{else}{$firstname}, {$lastname}{/if}</pre>The above format will result in exporting only company names for the clients who own them, otherwise, their first and last names will be exported.
 +
*Relations - select to synchronize the relations. If a single relation in QuickBooks has been deleted, it will be deleted in WHMCS accordingly.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|For more information about '''Import Synchronization''' configuration, go to the [[QuickBooks_Desktop_For_WHMCS#Cron_Jobs|Cron Jobs]] section.<br /><br />
 +
 
 +
Apart from choosing the required synchronization options, you have to decide which items from QuickBooks Desktop will be associated with '' 'Products ' '' and '' 'Domains' ''.<br />''Note: Default Product will be used only when there is no relation set for the selected product in 'Relation: Product' section.''<br/>
 +
Choose other options from the dropdown menu to set up. <br />
 +
*'''Sandbox Date''' - by default, the date used in '' 'sandbox mode' '' is different from the actual one. Here you can change it.
 +
*'''Shorten the Transaction ID''' - select this option to cut every transaction ID that is longer than 21 characters (the maximum length supported by QuickBooks)
 +
*'''Tax Zero-Rated''' - used when a charged item is not taxed
 +
*'''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
 +
*'''Clients Query Date''' - define the date from which the clients should be updated once performing the '' 'Clients Query' '' action.
 +
*'''Clients Requires Printed Invoice''' - select ''[https://docs.whmcs.com/Custom_Fields#Client_Custom_Fields Client Custom Field]'' which will be used to mark invoices as ''' '' '[https://www.docs.modulesgarden.com/images/7/77/QBD_17_1.png Print Later]' '' ''' in the QuickBooks Desktop. This custom field may be either of a '' 'Tick Box' '' or a '' 'Drop Down' '' type with '' 'yes' '' and '' 'no' '' select options to be chosen by the clients
 +
*'''Accounts Receivable''' - in case you use several different '[https://quickbooks.intuit.com/accounts-receivable/ accounts receivable]' in your QuickBooks Desktop, select one of them
 +
*'''Invoice Default Class''' - in case you use several [http://www.quickbooksnow.com/class-tracking-in-quickbooks-a-rarely-understood-awesome-feature/ classes] in your QuickBooks Desktop, select the class you want to use as default one
 +
*'''Request Limit''' - Too many queries executed at once may cause the web connector to stop working. In that case you can limit the number of requests here.
 +
*'''Failure Notifications''' - in this section you can select one administrator who will receive an email notification (in either hourly or daily intervals) about failures in the selected tasks. This is executed by [https://www.docs.modulesgarden.com/QuickBooks_Desktop_For_WHMCS#Cron_Jobs cron job].
 +
*'''Gateway Fee Account''' - define the relation between WHMCS transaction fees and QuickBooks deposit account.
 +
Press ''Save Changes'' button.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:QBD2_17.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|All the tasks and their statuses will be displayed in the ''Task'' tab.<br/>
 +
'' '''Note:''' Some tasks are automatically blocked when created. However, they will be automatically unlocked at a later stage of execution.''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:QBD_18.png]]
 +
|}
 +
 
 +
==Relations==
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|'''3. To use the module properly, remember to set the relations correctly'''.<br/>
 +
It is possible to manually declare relations between WHMCS clients, products as well as invoices and corresponding QuickBooks Desktop elements.<br/>
 +
This feature is especially helpful to avoid confusion and misunderstandings.<br />
 +
''Please note that this is an extra option, which grants you the possibility to manually configure relations.''
 +
|}
 +
===Relation: Clients===
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|One of possible relations to be declared are relations between WHMCS clients and QuickBooks customers.<br/>
 
Proceed to '' 'Relation' → 'Clients,' '' you will find there a list of all clients, with their email addresses, that exist in WHMCS,<br/> those who have not been exported to QuickBooks Desktop yet as well as those already exported.<br/>
 
Proceed to '' 'Relation' → 'Clients,' '' you will find there a list of all clients, with their email addresses, that exist in WHMCS,<br/> those who have not been exported to QuickBooks Desktop yet as well as those already exported.<br/>
This functionality is especially helpful when one of your clients has more than one account in WHMCS, but you do not want to double accounts in QuickBooks Desktop. <br/>Then you can simply assign such client to an already existing customer in QuickBooks Desktop.
+
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.
 
|}
 
|}
 
{|
 
{|
 
|style="padding: 0px 0px 30px 25px;"|[[File:QBD_23.png]]
 
|style="padding: 0px 0px 30px 25px;"|[[File:QBD_23.png]]
 
|}
 
|}
 
+
===Relation: Custom Client Fields===
====Relation: Custom Client Fields====
+
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|When you go to '' 'Relation' → ''Custom Client Fields' '', you will find a list of fields which appear in the client profile.  
+
|style="padding: 10px 0px 15px 15px;"|When you go to '' 'Relation' → Custom Client Fields' '', you will find a list of fields which appear in the client profile.<br/>Firstly, select 'Clients Query' option and wait until all tasks are done.<br/>
 +
''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 has to have it filled in.''
 
|}
 
|}
 
{|
 
{|
Line 240: Line 417:
 
|}
 
|}
  
====Relation: Products====
+
===Relation: Products===
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|Products relations can be declared manually and for each product separately along with those declared in '' 'Configuration' → 'Synchronization Settings.' '''<br />
+
|style="padding: 10px 0px 15px 15px;"|Product relations can be declared manually and for each product separately along with those declared in '' 'Configuration' → 'Synchronization Settings.' '''<br />
Proceed to '' 'Relation' → 'Products,' '' you will find there a list of all products with their type and payment standard. <br/> In the last column there is a dropdown menu with all QuickBooks Desktop items that can be assigned to exported products.
+
Proceed to '' 'Relation' → 'Products,' '' you will find there a list of all products with their type and payment standard. <br/> In the last column, there is a dropdown menu with all QuickBooks Desktop items that can be assigned to exported products.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:QBD_25.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:QBD_25.png]]
 
|}
 
|}
====Relation: Invoices====
+
===Relation: Domains===
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|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. <br/>
+
|style="padding: 10px 0px 15px 15px;"|In '' 'Relation' → 'Domains' '' tab, you will find a list of all WHMCS domains with their TLD. You may assign a WHMCS domain to a QuickBooks service here.<br/>Just select such a service from a dropdown menu and save the changes.
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.<br/> Transactions between the two invoices will be synchronized then.
+
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:QBD_25_1.png]]
 +
|}
 +
 
 +
===Relation: Addons===
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|You can assign addons to the services already existing in QuickBooks. Just go to '' 'Relation' → 'Addons' '' directory and choose the QuickBooks service from a dropdown menu.<br/> Remember to save the changes.<br/>
 +
You can also use the '' 'Match Addons' '' button to find any matches automatically.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:QBD_25_2.png]]
 +
|}
 +
 
 +
===Relation: Invoices===
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|In '' 'Relation' → 'Invoices' '' directory, you will find a list of all WHMCS invoices with their ID, date of creation, assigned client, total sum and status. <br/>
 +
It is possible to assign such a WHMCS invoice to another invoice already exported to QuickBooks Desktop. Just choose such from a dropdown menu and save changes.<br/> Transactions between the two invoices will be synchronized then.
 
|}
 
|}
 
{|
 
{|
 
|style="padding: 0px 0px 30px 25px;"|[[File:QBD_27.png]]
 
|style="padding: 0px 0px 30px 25px;"|[[File:QBD_27.png]]
 
|}
 
|}
====Relation: Tax Rules====
+
===Relation: Tax Rules===
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|In '' 'Relation' → 'Tax Rules' '' directory, you will find a list of defined taxes rules.<br/> Assign each rule to a specific QuickBooks tax. Select one from a dropdown menu and save changes.
+
|style="padding: 10px 0px 15px 15px;"|In '' 'Relation' → 'Tax Rules' '' directory, you will find a list of defined tax rules.<br/>Firstly, select 'Tax Rules Query' option and wait until all tasks are completed. Then, assign each rule to a specific QuickBooks tax. Select one from a dropdown menu and save changes.<br/>
 +
''Note: QuickBooks Desktop does ''' not ''' support WHMCS's level 2 taxes. Only level 1 taxes are supported.''
 
|}
 
|}
 
{|
 
{|
 
|style="padding: 0px 0px 30px 25px;"|[[File:QBD_28.png]]
 
|style="padding: 0px 0px 30px 25px;"|[[File:QBD_28.png]]
 
|}
 
|}
====Relation: Currencies====
+
 
 +
===Relation: Currencies===
 
{|
 
{|
|style="padding: 10px 0px 15px 15px;"|In '' 'Relation' → 'Currencies' '' directory, you will find a list of defined currencies.<br/> Assign each currency to a specific one from QuickBooks Desktop. Select one from a dropdown menu and save changes.
+
|style="padding: 10px 0px 15px 15px;"|In '' 'Relation' → 'Currencies' '' directory, you will find a list of defined currencies.<br/>Firstly, select 'Currencies Query' option and wait until all tasks are completed. Then, assign each currency to a specific one from QuickBooks Desktop. Select one from a dropdown menu and save changes.<br/>
 +
''Note that if you would like to use several currencies, 'Multicurrency' option has to be enabled in QuickBooks Desktop settings. Otherwise, the process will not be successful.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 25px;"|[[File:QBD_26.png]]
+
|style="padding: 0px 0px 30px 25px;"|[[File:QBD2_26.png]]
 
|}
 
|}
 +
 +
===Relation: Payment Gateways===
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|'''3. Synchronization Settings''' - decide which of the possible synchronization options you want to enable. <br/>
+
|style="padding: 10px 0px 20px 15px;"|In '' 'Relations' 'Payment Gateways', '' there is a list of available payment methods. Select the one you wish to use from a dropdown menu. Save changes.
Tick the ones you are interested in.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|There are:<br />
+
|style="padding: 0px 0px 20px 25px;"|[[File:QBD_26_2.png]]
'''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
+
'''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
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|Apart from choosing required synchronization options, you have to decide here, which items from QuickBooks Desktop, '' 'Products ' '' and '' 'Domains' '' will be associated with.<br />''Note: Default Product will be used only when tehre is no relation set for the selected product in 'Relation: Product' section.''<br/>  
+
|style="padding: 0px 0px 15px 15px;"|When you click the button in the '' 'Action' '' section, you can set relations for previously chosen payment method.<br/>
Choose other options from the dropdown menu to set up. <br />
+
Assign QuickBooks Payment Deposits to a single currency.
*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.
+
*Define your Home Currency
+
Press ''Save Changes'' button.
+
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|You can also set the default task that will be run automatically.
+
|style="padding: 0px 0px 20px 25px;"|[[File:QBD_26_3.png]]
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:QBD_17.png]]
+
|style="padding: 0px 0px 30px 15px;"|In this way, the relation between payment methods, upon which choosing the deposit a transaction in selected currency will go to depends, has been set. <br/>Finally, do not forget to save changes.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|All the tasks and their statuses will be displayed in ''Task'' tab.
+
|style="padding: 0px 0px 30px 25px;"|[[File:QBD_26_4.png]]
 
|}
 
|}
 +
===Relation: Transactions===
 
{|
 
{|
|style="padding: 0px 0px 20px 25px;"|[[File:QBD_18.png]]
+
|style="padding: 10px 0px 15px 15px;"|In '' 'Relation' → 'Transactions', '' there is a list of transactions.<br/> Press '' 'Payments Query' '' to fetch all the WHMCS transactions, then assign the QuickBooks Payment to every one you wish, use the dropdown menu. Save changes.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:QBD_27_1.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|Use the '' 'Match Transactions' '' button to automatically find an existing relation in QuickBooks without manual search for every single transaction. <br/> You will get an extended list with information on which of the transactions a match has been found, and for which it has not.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:QBD_27_2.png]]
 +
|}
 +
 
 +
===Relation: Custom Rules===
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|In '' 'Relations' → 'Custom Rules', '' there you can create and manage existing custom rules, which aim is to manage items that exist on the invoice but have no relation. <br/>
 +
The rule task checks if these items have any matching type in QuickBooks.<br/>
 +
Press '' 'Add New' '' button to create a custom rule.<br/>
 +
'''Important!''' Please remember that '' 'Custom Rules' '' are based on regular PHP expressions. An exemplary '' 'Custom Rule' '' is '''car(.*)'''
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:QBD_26_5.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|Provide necessary details of the created rule to make it work properly. These are:
 +
*Name - any friendly name of the rule
 +
*Custom Rule → for example ''car(.*)'' which is a regular PHP expression
 +
*Priority - the higher the number, the lower the priority, use integers only
 +
*QuickBooks Service - select service that will be checked with the rule<br/>
 +
Press '' 'Add' '' when ready.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:QBD_26_6.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 15px 15px;"|A new rule appears on the list immediately.<br/>
 +
You may edit its specification at any moment, just press the marked on the screen icon (1). <br/> Delete (2) unused rules from the list.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:QBD_26_7.png]]
 
|}
 
|}
  
 
==Management==
 
==Management==
 
{|
 
{|
|style="padding: 10px 0px 30px 15px;"|'''At this section we will show you the possibilities of QuickBooks Desktop For WHMCS.'''<br />
+
|style="padding: 10px 0px 30px 15px;"|'''In this section, we will show you the possibilities of QuickBooks Desktop For WHMCS.'''<br />
Once it has been properly connected with QuickBooks Desktop and all the configuration is now ready, we can move on to '' 'Export' '' section.  
+
Once it has been properly connected with QuickBooks Desktop and all the configuration is complete, we can move to the '' 'Export' '' section.  
 
|}
 
|}
 
===Export===
 
===Export===
 
{|
 
{|
|style="padding: 10px 0px 30px 15px;"|Our module allows several ways to export any data gathered in your WHMCS.<br />
+
|style="padding: 10px 0px 30px 15px;"|Our module offers several ways to export any data gathered in your WHMCS.<br />
Read the below points to learn what data can be synchronized with QuickBooks Desktop and what are the possible means of such synchronizations.  
+
Read the below points to learn what data can be synchronized with QuickBooks Desktop and what are the possible means of such synchronization.  
 
|}
 
|}
 
====Clients====
 
====Clients====
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|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.<br/> Use filter to find clients with their account created during the specified period of time.  
+
|style="padding: 10px 0px 20px 15px;"|The first option offered by our module is the export of clients from WHMCS to QuickBooks Desktop, proceed to '' 'Export' → 'Clients.' '' You will see a list of all clients who exist in your WHMCS and have not been synchronized with QuickBooks yet.<br/> Use the filter to find clients with their account created during the specified period of time.  
 
|}
 
|}
 
{|
 
{|
Line 344: Line 555:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 15px;"|If a client has already been exported from WHMCS to QuickBooks, they will no longer be visible on the list.  <br /> All clients newly added to WHMCS will be automatically synchronized with QuickBooks unless otherwise stated in '' 'Synchronization Settings.' ''
+
|style="padding: 0px 0px 30px 15px;"|If a client has already been exported from WHMCS to QuickBooks, they will no longer be visible on the list.  <br /> All clients newly added to WHMCS will be automatically synchronized with QuickBooks, unless otherwise stated in '' 'Synchronization Settings.' ''
 
|}
 
|}
 
====Invoices====
 
====Invoices====
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|The other choice is the export of invoices. <br /> 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.<br /> In details you will find information on the invoice:
+
|style="padding: 10px 0px 20px 15px;"|The other choice is the export of invoices. <br /> 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.<br /> In the details you will find information on the invoice:
 
*ID
 
*ID
*date when it was created
+
*date of creation
 
*client assigned to the invoice
 
*client assigned to the invoice
 
*items on the invoice
 
*items on the invoice
Line 358: Line 569:
 
{|
 
{|
 
|style="padding: 0px 0px 20px 15px;"|Just like in case of clients:
 
|style="padding: 0px 0px 20px 15px;"|Just like in case of clients:
*press '' 'Toggle Filters' '' to use filter to find invoices from specified period if time
+
*press '' 'Toggle Filters' '' to use the filter to find invoices from a specified period of time
*perform mass export of all checked invoices
+
*perform the mass export of all checked invoices
 
*export individual invoices to QuickBooks.  
 
*export individual invoices to QuickBooks.  
 
*: Use buttons marked on the screen to perform the above enumerated actions.
 
*: Use buttons marked on the screen to perform the above enumerated actions.
Line 367: Line 578:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|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.  
+
|style="padding: 0px 0px 20px 15px;"|Once you have exported some of the invoices, you will see their number along with the number of any transactions connected with them in the '' 'Summary' '' table on the dashboard.  
 
|}
 
|}
 
{|
 
{|
Line 373: Line 584:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 15px;"|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<br /> unless otherwise stated in '' 'Synchronization Settings.' ''
+
|style="padding: 0px 0px 30px 15px;"|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,<br /> unless otherwise stated in '' 'Synchronization Settings.' ''
 
|}
 
|}
 +
 +
====Transactions====
 +
{|
 +
|style="padding: 10px 0px 20px 15px;"|In '' 'Export' '' → '' 'Transactions' '' section you will find a list of payments for exported invoices. <br/>
 +
Note that only these transactions that could not be exported automatically during the invoice export will be visible or if the '' 'Payment Create' '' option in '' 'Export Synchronization' '' in general settings is disabled.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:QBD_22_1.png]]
 +
|}
 +
====Products====
 +
{|
 +
|style="padding: 10px 0px 15px 15px;"|If you would like to manually export products from WHMCS to your QuickBooks Desktop, please go to the '' 'Export' '' → '' 'Products' '' section.<br/>
 +
Then, select the products you want to be exported and press on the 'Export' button.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:QBD_22_2.png]]
 +
|}
 +
 +
====Credit Payments====
 +
{|
 +
|style="padding: 10px 0px 20px 15px;"|'' 'Export' → 'Credit Payment' '' section allows insight into the list of transactions with option to synchronize them manually.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:QBD2_26_1.png]]
 +
|}
 +
====Product Addons====
 +
{|
 +
|style="padding: 10px 0px 20px 15px;"|In the '' 'Export' → 'Addons' '' section you can see all product addons from your WHMCS system with the option to manually export them to QuickBooks.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 25px;"|[[File:QBD2_26_2.png]]
 +
|}
 +
 
===Cron Jobs===
 
===Cron Jobs===
 
{|
 
{|
|style="padding: 10px 0px 30px 15px;"|Properly set up cron job with a recommended interval is responsible for synchronization of any updates done on invoices or clients' accounts. <br/>
+
|style="padding: 10px 0px 20px 15px;"|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 carried out on invoices or clients' accounts from WHMCS. <br/>
All changes will be immediately visible in QuickBooks Desktop, after cron job has run, without any additional actions taken manually from QuickBooks Desktop For WHMCS.<br/>
+
Once the cron is running, it executes settings included in '' 'Import Synchronization' '' table and will also send the notifications specified in the '' 'Failure Notifications' '' section.
Whenever you commit changes in your WHMCS system, running a cron job is not needed, as all the information will be automatically retrieved.<br/><br/>
+
|}
It is recommended to run cron job every six hour in order to synchronize the data between QuickBooks Desktop and WHMCS.<br/>To do so use the '' 'php -q /var/www/whmcs/modules/addons/QuickBooksDesktop/cron/cron.php' '' cron with the following arguments: '' '--syncClients --syncInvoices --syncPayments --syncProducts'. ''<br/><br/>
+
 
In order to import new clients, invoices or products from QuickBooks Desktop to your WHMCS, run the '' 'php -q /var/www/whmcs/modules/addons/QuickBooksDesktop/cron/cron.php' '' cron<br/>with the following arguments: '' '--importClients --importInvoices --importPayments --importProducts' '' once a day.
+
{|
 +
|style="padding: 0px 0px 20px 25px;"|[[File:QBD_29_2.png]]
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 15px;"|
 +
*'''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) <br />
 +
*'''Transaction Date''' - downloads transactions according to a selected criterion, for example: '' 'This Month' '' will retrieve transactions from current QuickBooks month. <br />
 +
*'''Invoice Synchronization Date''' - gets invoices according to the selected criterion, for example: '' 'This Month' '' will retrieve invoices from current QuickBooks month. <br />
 +
*'''Invoice Synchronization Days''' - if set receives invoices, e.g. from the last 5 days. <br />
 +
*'''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. <br />
 +
*'''Import Limit''' - if the provided limit is reached, the script execution ends.
 +
It is recommended to run a cron job every six hours in order to synchronize the data between QuickBooks Desktop and WHMCS.<br/>To do so, use '' 'php -q /var/www/whmcs/modules/addons/QuickBooksDesktop/cron/cron.php' '' cron with the following arguments: '' '--syncClients --syncInvoices --syncPayments --syncProducts'. ''<br/><br/>
 +
In order to import new clients, invoices, payments or products from QuickBooks Desktop to your WHMCS, run '' 'php -q /var/www/whmcs/modules/addons/QuickBooksDesktop/cron/cron.php' '' cron<br/>with the following arguments: '' '--importClients --importInvoices --importPayments --importProducts' '' once a day. <br/><br/>
 +
If you want to synchronize clients, invoices, payments or products you can also use the following arguments: '' '--syncClients --syncInvoices --syncPayments --syncProducts'. ''<br/><br/>
 +
'' '--failureNotifications' '' argument is responsible for sending email notifications of failure tasks, as specified in the '' 'Failure Notifications' '' section.<br/><br/>
 +
The last two fail-over '' '--exportPayments' '' and '' '--exportInvoices' '' arguments check if all payments and transactions have been exported within the last 24 hours, if not, a task to re-export missing items is created.
 
|}
 
|}
  
 
===Logs===
 
===Logs===
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|In '' 'Logs' '' tab there are enumerated '''ALL''' actions on clients, invoices and transactions. <br />No matter if they were taken manually in the module, automatically or by a cron job.  <br /> Find there a list of all entries with precisely described details and an exact date of the action.
+
|style="padding: 10px 0px 20px 15px;"|The '' 'Logs' '' tab contains '''ALL''' actions on clients, invoices and transactions. <br />Regardless of whether they were performed manually in the module, automatically or by a cron job.  <br /> You will find there a list of all entries with precisely described details and the exact date of the action.
 
|}  
 
|}  
 
{|
 
{|
Line 392: Line 652:
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 15px;"|Clear all the entries or delete only some of them. Use buttons marked on the screen above.
+
|style="padding: 0px 0px 30px 15px;"|Clear all the entries or delete only some of them. Use the buttons marked on the screen above.
 
|}
 
|}
 
===Dashboard===
 
===Dashboard===
 
{|
 
{|
 
|style="padding: 10px 0px 15px 15px;"|'' 'Dashboard' '' includes two useful and user-friendly tables. <br />
 
|style="padding: 10px 0px 15px 15px;"|'' 'Dashboard' '' includes two useful and user-friendly tables. <br />
The first one, '' 'Export Summary' '' contains data on the number of exported clients, invoices and payments.<br/>The number includes exports done in all possible manners.<br />
+
The first one, '' 'Export Summary' '' contains data on the number of exported clients, invoices and payments.<br/>The number includes exports performed in all possible manners.<br />
The second table shows information about the number of tasks performed including their statuses.
+
The second table shows information about the number of performed tasks with their statuses.
 
|}  
 
|}  
 
{|
 
{|
Line 405: Line 665:
 
===Documentation===
 
===Documentation===
 
{|
 
{|
|style="padding: 10px 0px 30px 15px;"|The very last tab '' 'Documentation' '' once clicked will redirect you to the article you are currently reading!  
+
|style="padding: 10px 0px 30px 15px;"|The very last tab - '' 'Documentation' '', once clicked, will redirect you to the article you are currently reading!  
 
|}
 
|}
  
 
=Tips=
 
=Tips=
 
{|
 
{|
|style="padding: 10px 0px 30px 15px;"|1. Please note that QuickBooks Desktop supports the services of ''One Time'' type only. Other billing cycles cannot be added.  
+
|style="padding: 10px 0px 10px 15px;"|1. Please note that QuickBooks Desktop supports the services of ''One Time'' type only. Other billing cycles cannot be added.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 15px;"|2. If you add a single transaction in WHMCS using the '' 'Add to Client's Credit Balance' '' option, a transaction corresponding to this one will be also created in QuickBooks. <br/>Afterwards, when the customer pays the invoice using WHMCS credits, this invoice will also be added to the previously created transaction in QuickBooks (provided that there are sufficient funds in this transaction).
 +
|}
 +
 
 +
=Update Instructions=
 +
{|
 +
|style="padding: 10px 0px 30px 15px;"|An essential guidance through the process of updating the module is offered '''[https://www.docs.modulesgarden.com/How_To_Update_WHMCS_Module here]'''.<br/>
 +
Ensure successful completion of the module update by carefully following each step, thereby preventing data loss or any unforeseen issues.<br/> Additionally, you will find a current list of supplementary actions necessary for a smooth update process there.
 +
|}
 +
=Upgrade Guide=
 +
{|
 +
|style="padding: 10px 0px 30px 15px;"|Seeking a solution that offers greater flexibility, customization tailored to your precise needs, and unrestricted availability?<br/> There is an option that not only proves to be cost-effective in the long run but also includes prioritized support services, making it a truly valuable investment.<br/>
 +
 
 +
Opt for the [https://www.modulesgarden.com/products/whmcs/quickbooks-desktop#open-source-version Open Source version] of your QuickBooks Desktop For WHMCS module to unlock these benefits.<br/> Simply click on either the '''Get Source Code''' or '''Upgrade To Lifetime''' button found on the product's page in our client area to complete the one-step upgrade process, with a '''dedicated discount''' already applied.<br/>
 +
 
 +
Follow a [https://www.docs.modulesgarden.com/How_To_Upgrade_WHMCS_Module comprehensive guide] covering the transition process, the advantages it brings, and step-by-step instructions on what to do next after the order has been successfully finalized.  
 
|}
 
|}
  
 
=Common Problems=
 
=Common Problems=
 
{|
 
{|
|style="padding: 10px 0px 20px 15px;"|'''1. When you have problems with connection, check whether your SELinux or firewall does not block ports.'''
+
|style="padding: 10px 0px 10px 15px;"|'''1. When you have problems with connection, check whether your SELinux or firewall does not block ports.'''
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 20px 15px;"|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!
+
|style="padding: 0px 0px 10px 15px;"|2. In rare cases, taxes might be counted incorrectly for invoices with multiple items, whereby a part of the items is taxed and some are not. Please, be careful!
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 15px 15px;"|3. In case you encounter any issues with installation and configuration please make sure you have php7.0-mcrypt and php7.0-soap installed.
+
|style="padding: 0px 0px 5px 15px;"|3. In case you encounter any issues with installation and configuration please make sure you have php7.0-soap installed.<br/>
 
Without that the module will not work properly.
 
Without that the module will not work properly.
 
|}
 
|}
 
{|
 
{|
|style="padding: 0px 0px 30px 15px;"|4. When .htaccess is enabled the module may not work due to the lack of connection between QuickBooks Web Connector and WHMCS system.
+
|style="padding: 0px 0px 10px 15px;"|4. When .htaccess is enabled, the module may not work due to the lack of connection between QuickBooks Web Connector and WHMCS system.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 15px;"|5. In order for Web Connector to be linked with your WHMCS, your site has to be SSL certified.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 5px 15px;"|
 +
6. If you get the following error: '' 'Got a packet bigger than 'max_allowed_packet' bytes' '' you need to increase the <code><nowiki>max_allowed_packet</nowiki></code> parameter on your server. <br/>
 +
To do this, log in to your ''mysql'' console with administrator permissions and execute the following command: 
 +
SET GLOBAL max_allowed_packet=16777216;
 +
This command can be also performed in your phpMyAdmin if you are logged in as the root user.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 15px;"|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.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 15px;"|8. If you get an error '' 'Object specified in the request cannot be found' '' during the invoice export, make sure that you have '' 'Accounts Receivable' '' field selected in general settings.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 10px 15px;"|9. Long product names are automatically cut to a maximum of 31 characters to meet QuickBooks requirements.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 5px 15px;"|10. If you get the following error: '' 'There was an error when converting the price "x.xyz" in the field "item cost". QuickBooks error message: This field contains an invalid character.' ''<br/>
 +
You need to make sure your system locale settings ''(Time & Language → Region → Additional date, time, & regional settings)'' are the same as the ones set up in your WHMCS.
 +
|}
 +
{|
 +
|style="padding: 0px 0px 30px 15px;"|11. Error: ''"An application with a revoked certificate is requesting access to the following QuickBooks company file"''<br/>
 +
Solution: please contact the QuickBooks team support or follow the instructions in the following [https://quickbooks.intuit.com/learn-support/en-us/help-article/web-integration/fix-error-quickbooks-application-revoked/L6Y849bKg_US_en_US article].
 
|}
 
|}

Latest revision as of 07:28, 26 September 2024

Contents

[edit] About QuickBooks Desktop For WHMCS

QuickBooks Desktop For WHMCS module enables the two-way integration between WHMCS and QuickBooks Desktop and thereby helps you improve your accounting management.

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

  • Module Features:
✔ Export Manually:
✔ Clients
✔ Invoices
✔ Transactions
✔ Products
✔ Credit Payments
✔ Product Addons
✔ Export Automatically:
✔ Clients
✔ Invoices
✔ Merged Invoices
✔ Transactions
✔ Products
✔ Refunds
✔ Credit Payments
✔ Import And Synchronize:
✔ Clients
✔ Invoices
✔ Transactions
✔ Products
✔ Manage Relations:
✔ Clients With Automatching
✔ Custom Client Fields
✔ Products With Automatching
✔ Product Addons With Automatching
✔ Domains With Automatching
✔ Invoices With Automatching
✔ Tax Rules
✔ Currencies
✔ Payment Gateways - Including Payment Methods, Deposits And Currencies
✔ Transactions With Automatching
✔ Create Own Custom Rules
✔ Choose Default Product Item
✔ Choose Default Domain Item
✔ Choose Account For Products
✔ Choose Tax Zero-Rated
✔ Choose US Default Tax
✔ Choose Home Currency
✔ Set Exported Client Name Format
✔ Set Client Business Number Custom Field
✔ Define Automatic Export Settings
✔ Set Printed Invoices Custom Field
✔ Choose Accounts Receivable
✔ Choose Invoice Default Class
✔ Choose Gateway Fee Account
✔ Send Email Notifications About Task Failures
✔ 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 8.2 Back To PHP 7.4
✔ Supports WHMCS V8.11 Back To WHMCS V8.8
✔ ✔ Easy Module Upgrade To Open Source Version
  • Requirements:
✔ QuickBooks Desktop Product:
✔ Pro Plus 2024
✔ Premier Plus 2024
✔ Enterprise 24.X
✔ QuickBooks Web Connector 34.X or Above
✔ WHMCS With HTTPS And SSL Certificate
✔ ionCube Loader V13 Or Later

[edit] Installation

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 our client area and download the module.
QBD 1.png
2. In the downloaded file you might find one or two packages that support different PHP versions.

In the most recent versions of the module, you will find only one package that supports PHP 7.2 and later.

PHP72 74.png
Previous updates of the module may contain two packages dedicated to various PHP versions.

The first one that supports PHP 5.6 up to PHP 7.1, and the second one addressed to PHP 7.2 up to PHP 7.4.
Note: Keep in mind that PHP versions 5.6 up to 7.1 are no longer officially supported and their security issues are not fixed or released any more. Find more info here.

PHP56 74.png
Note: You can check the current PHP version in your WHMCS. To do so, proceed to 'Utilities' → 'System' → 'PHP Info'.
3. Extract the package and upload its content into the main WHMCS directory.

The content of the package to upload 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 our 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 enable the access to this module.

To do so, click on 'Configure' button, check the 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'.

[edit] Configuration and Management

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

[edit] Configuration

1. To configure your module properly, you first have to add a 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, the tool that enables the integration between your WHMCS system and QuickBooks Desktop.

Provide the necessary information. You can also specify when the data shall 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 of Web Connector now, as shown below.
QBD 14.png
Be sure that your QuickBooks Desktop software is now running and there is your company file opened within in.
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 your WHMCS connect 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 the 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 the synchronization between the setting fields and their equivalents in QuickBooks Desktop, the 'Default Tasks' that will automatically run the necessary actions are required.
Since the 1.1.0 module version, the 'Default Tasks' are automatically added to the 'Tasks' list after the addon activation.
If you are using previous versions, you have to manually press on the 'Default Tasks' button to add all tasks to the list.

QBD 16 2.png
In the '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 - performed upon the client creation
  • Update - takes place when the client account has been updated
  • Delete - takes place when the client has been deleted

Invoices synchronization:

  • Create - performed upon the invoice creation
  • Update - takes place when the invoice has been updated or altered
  • Delete - takes place when the invoice has been deleted
  • Delete Cancelled - tick to remove the already cancelled WHMCS invoices from QuickBooks Desktop
  • "Add Funds" Invoice - select this option if you want to disable the synchronization of invoices of "Add Funds" type. By default the synchronization is enabled.

Payments synchronization:

  • Create - performed when the transaction has been completed
  • Delete - takes place when the transaction has been deleted by an administrator

Refunds synchronization:

  • Create - performed when the refund has been completed
  • Delete - takes place when the refund has been deleted by an administrator
    Please note that both payments and refunds are handled together and thus are summarized on the dashboard as a single point called 'Payments'

Products synchronization:

  • Create - performed upon the product creation
  • Update - takes place when the product has been updated or altered
  • Delete - takes place when the product has been deleted

Query synchronization:

  • Invoices Query - performed before the invoice creation
  • Payments Query - takes place before the payment creation

Customer Name Format synchronization:

  • Using the available fields, define the client name format that will be exported to QuickBooks Desktop.
    Note that you can use conditional instructions as well. For example:
    {if $companyname}{$companyname}{else}{$firstname}, {$lastname}{/if}
    The above format will result in exporting only company names for the clients who own them, otherwise, their first and last names will be exported.
  • Relations - select to synchronize the relations. If a single relation in QuickBooks has been deleted, it will be deleted in WHMCS accordingly.
For more information about Import Synchronization configuration, go to the Cron Jobs section.

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

  • Sandbox Date - by default, the date used in 'sandbox mode' is different from the actual one. Here you can change it.
  • Shorten the Transaction ID - select this option to cut every transaction ID that is longer than 21 characters (the maximum length supported by QuickBooks)
  • Tax Zero-Rated - used when a charged item is not taxed
  • 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
  • Clients Query Date - define the date from which the clients should be updated once performing the 'Clients Query' action.
  • Clients Requires Printed Invoice - select Client Custom Field which will be used to mark invoices as 'Print Later' in the QuickBooks Desktop. This custom field may be either of a 'Tick Box' or a 'Drop Down' type with 'yes' and 'no' select options to be chosen by the clients
  • Accounts Receivable - in case you use several different 'accounts receivable' in your QuickBooks Desktop, select one of them
  • Invoice Default Class - in case you use several classes in your QuickBooks Desktop, select the class you want to use as default one
  • Request Limit - Too many queries executed at once may cause the web connector to stop working. In that case you can limit the number of requests here.
  • Failure Notifications - in this section you can select one administrator who will receive an email notification (in either hourly or daily intervals) about failures in the selected tasks. This is executed by cron job.
  • Gateway Fee Account - define the relation between WHMCS transaction fees and QuickBooks deposit account.

Press Save Changes button.

QBD2 17.png
All the tasks and their statuses will be displayed in the Task tab.

Note: Some tasks are automatically blocked when created. However, they will be automatically unlocked at a later stage of execution.

QBD 18.png

[edit] Relations

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 QuickBooks Desktop elements.
This feature is especially helpful to avoid confusion and misunderstandings.
Please note that this is an extra option, which grants you the possibility to manually configure relations.

[edit] Relation: Clients

One of 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

[edit] 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 has to have it filled in.

QBD 24.png

[edit] Relation: Products

Product 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

[edit] Relation: Domains

In 'Relation' → 'Domains' tab, you will find a list of all WHMCS domains with their TLD. You may assign a WHMCS domain to a QuickBooks service here.
Just select such a service from a dropdown menu and save the changes.
QBD 25 1.png

[edit] Relation: Addons

You can assign addons to the services already existing in QuickBooks. Just go to 'Relation' → 'Addons' directory and choose the QuickBooks service from a dropdown menu.
Remember to save the changes.

You can also use the 'Match Addons' button to find any matches automatically.

QBD 25 2.png

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

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

QBD 27.png

[edit] Relation: Tax Rules

In 'Relation' → 'Tax Rules' directory, you will find a list of defined tax rules.
Firstly, select 'Tax Rules Query' option and wait until all tasks are completed. Then, assign each rule to a specific QuickBooks tax. Select one from a dropdown menu and save changes.

Note: QuickBooks Desktop does not support WHMCS's level 2 taxes. Only level 1 taxes are supported.

QBD 28.png

[edit] 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 completed. 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 has to be enabled in QuickBooks Desktop settings. Otherwise, the process will not be successful.

QBD2 26.png

[edit] Relation: Payment Gateways

In 'Relations' → 'Payment Gateways', there is a list of available payment methods. Select the one you wish to use from a dropdown menu. Save changes.
QBD 26 2.png
When you click the button in the 'Action' section, you can set relations for previously chosen payment method.

Assign QuickBooks Payment Deposits to a single currency.

QBD 26 3.png
In this way, the relation between payment methods, upon which choosing the deposit a transaction in selected currency will go to depends, has been set.
Finally, do not forget to save changes.
QBD 26 4.png

[edit] Relation: Transactions

In 'Relation' → 'Transactions', there is a list of transactions.
Press 'Payments Query' to fetch all the WHMCS transactions, then assign the QuickBooks Payment to every one you wish, use the dropdown menu. Save changes.
QBD 27 1.png
Use the 'Match Transactions' button to automatically find an existing relation in QuickBooks without manual search for every single transaction.
You will get an extended list with information on which of the transactions a match has been found, and for which it has not.
QBD 27 2.png

[edit] Relation: Custom Rules

In 'Relations' → 'Custom Rules', there you can create and manage existing custom rules, which aim is to manage items that exist on the invoice but have no relation.

The rule task checks if these items have any matching type in QuickBooks.
Press 'Add New' button to create a custom rule.
Important! Please remember that 'Custom Rules' are based on regular PHP expressions. An exemplary 'Custom Rule' is car(.*)

QBD 26 5.png
Provide necessary details of the created rule to make it work properly. These are:
  • Name - any friendly name of the rule
  • Custom Rule → for example car(.*) which is a regular PHP expression
  • Priority - the higher the number, the lower the priority, use integers only
  • QuickBooks Service - select service that will be checked with the rule

Press 'Add' when ready.

QBD 26 6.png
A new rule appears on the list immediately.

You may edit its specification at any moment, just press the marked on the screen icon (1).
Delete (2) unused rules from the list.

QBD 26 7.png

[edit] Management

In 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 complete, we can move to the 'Export' section.

[edit] Export

Our module offers 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 synchronization.

[edit] Clients

The first option offered by our module is the export of clients from WHMCS to QuickBooks Desktop, proceed to 'Export' → 'Clients.' You will see a list of all clients who exist in your WHMCS and have not been synchronized with QuickBooks yet.
Use the 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.'

[edit] Invoices

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 the details you will find information on the invoice:
  • ID
  • date of creation
  • 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 the filter to find invoices from a specified period of time
  • perform the 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 the '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.'

[edit] Transactions

In 'Export' 'Transactions' section you will find a list of payments for exported invoices.

Note that only these transactions that could not be exported automatically during the invoice export will be visible or if the 'Payment Create' option in 'Export Synchronization' in general settings is disabled.

QBD 22 1.png

[edit] Products

If you would like to manually export products from WHMCS to your QuickBooks Desktop, please go to the 'Export' 'Products' section.

Then, select the products you want to be exported and press on the 'Export' button.

QBD 22 2.png

[edit] Credit Payments

'Export' → 'Credit Payment' section allows insight into the list of transactions with option to synchronize them manually.
QBD2 26 1.png

[edit] Product Addons

In the 'Export' → 'Addons' section you can see all product addons from your WHMCS system with the option to manually export them to QuickBooks.
QBD2 26 2.png

[edit] 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 carried out on invoices or clients' accounts from WHMCS.

Once the cron is running, it executes settings included in 'Import Synchronization' table and will also send the notifications specified in the 'Failure Notifications' section.

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 a 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, payments 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.

If you want to synchronize clients, invoices, payments or products you can also use the following arguments: '--syncClients --syncInvoices --syncPayments --syncProducts'.

'--failureNotifications' argument is responsible for sending email notifications of failure tasks, as specified in the 'Failure Notifications' section.

The last two fail-over '--exportPayments' and '--exportInvoices' arguments check if all payments and transactions have been exported within the last 24 hours, if not, a task to re-export missing items is created.

[edit] Logs

The 'Logs' tab contains ALL actions on clients, invoices and transactions.
Regardless of whether they were performed manually in the module, automatically or by a cron job.
You will find there a list of all entries with precisely described details and the exact date of the action.
QBD 29.png
Clear all the entries or delete only some of them. Use the buttons marked on the screen above.

[edit] Dashboard

'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 performed in all possible manners.
The second table shows information about the number of performed tasks with their statuses.

QBD 30.png

[edit] Documentation

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

[edit] Tips

1. Please note that QuickBooks Desktop supports the services of One Time type only. Other billing cycles cannot be added.
2. If you add a single transaction in WHMCS using the 'Add to Client's Credit Balance' option, a transaction corresponding to this one will be also created in QuickBooks.
Afterwards, when the customer pays the invoice using WHMCS credits, this invoice will also be added to the previously created transaction in QuickBooks (provided that there are sufficient funds in this transaction).

[edit] Update Instructions

An essential guidance through the process of updating the module is offered here.

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

[edit] Upgrade Guide

Seeking a solution that offers greater flexibility, customization tailored to your precise needs, and unrestricted availability?
There is an option that not only proves to be cost-effective in the long run but also includes prioritized support services, making it a truly valuable investment.

Opt for the Open Source version of your QuickBooks Desktop For WHMCS module to unlock these benefits.
Simply click on either the Get Source Code or Upgrade To Lifetime button found on the product's page in our client area to complete the one-step upgrade process, with a dedicated discount already applied.

Follow a comprehensive guide covering the transition process, the advantages it brings, and step-by-step instructions on what to do next after the order has been successfully finalized.

[edit] Common Problems

1. When you have problems with connection, check whether your SELinux or firewall does not block ports.
2. In rare cases, taxes might be counted incorrectly for invoices with multiple items, whereby a 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-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 be linked with your WHMCS, your site has to be SSL certified.

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

SET GLOBAL max_allowed_packet=16777216;

This command can be also performed in your phpMyAdmin if you are logged in as the 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.
8. If you get an error 'Object specified in the request cannot be found' during the invoice export, make sure that you have 'Accounts Receivable' field selected in general settings.
9. Long product names are automatically cut to a maximum of 31 characters to meet QuickBooks requirements.
10. If you get the following error: 'There was an error when converting the price "x.xyz" in the field "item cost". QuickBooks error message: This field contains an invalid character.'

You need to make sure your system locale settings (Time & Language → Region → Additional date, time, & regional settings) are the same as the ones set up in your WHMCS.

11. Error: "An application with a revoked certificate is requesting access to the following QuickBooks company file"

Solution: please contact the QuickBooks team support or follow the instructions in the following article.

Navigation
WHMCS Modules
WHMCS Widgets
Translations
cPanel Modules
General
FAQ
Community
QuickBooks Desktop For WHMCS