Integrate QuickBooks Desktop in Application
Tags: dotnet, quickbook, angular, enterprise
Published: 2019-01-07 10:50:54

In the different process of businesses, managing expenses, sales and keeping track of daily transactions is one of the primary and indispensable tasks that cannot be ignored. When the word is about accounting, it’s certain that entrepreneurs would have come across term QuickBooks, but wondering what it is and how it is used? Well, the blog is right to read for you.
 
<b> Lights On The Term ‘QUICKBOOKS’</b>

QuickBooks helps you to uncover the ease of managing finance. It is one of the <a href="https://www.cmarix.com/everything-know-quickbooks/"> best business accounting software developed </a> by Intuit to simplify complex financial operations like budgeting, payroll, expense tracking, inventory,  sales and more than enterprise needs.
  
<b> “Stress Less Over The Paper Mess With Smart Invoicing Solution - QuickBooks” <b> 

QuickBooks help you to make effective use of time by automatically managing the bookkeeping and paperwork of invoicing. QuickBooks <a href="http://www.cmarix.com/finance-and-banking-enterprise-product-developement.html/"> automates most of the accounting process </a> like calculating sales tax, tracking products and automatically updating transactions. Presently, QuickBooks is providing two versions online and desktop. QuickBooks Desktop is a software to be installed on the office desktop computer. And, QuickBooks online is a cloud-based subscription service that enables you to work from anywhere, anytime and from any device. However, QuickBooks Desktop still holds a major advantage, as managing large amounts of inventory and job costing is done easily.  

The integration of both versions online and desktop is done in a different way. The integration of QuickBooks online is done via OAuth, while the integration of QuickBooks desktop is done with help of SDKs available. 

<b> Let’s Uncover The Facts About QuickBooks Desktop Integration </b> 

The integration of QuickBooks desktop is done with the help of already available SDKs by QuickBooks itself.  The application that will be integrated with QuickBooks desktop will run on the same machine or in local area network. The application will communicate with QuickBooks Desktop through QBXML. QBXML is specially developed to communicate with QuickBooks Desktop from the application.

We know that with the help of QuickBooks desktop SDKs, we can easily connect the applications to QuickBooks Desktop, and can read/write date from/to desktop. As discussed above, the communication between QuickBooks Desktop and our application is handled through QBXML format. Hence, in order to connect with desktop, we need to do the process of reading data from QuickBooks desktop and writing data to QuickBooks desktop. For that to occur, we need to send the message to QuickBooks Desktop in QBXML formal and receive the message from QuickBooks Desktop in QBXML formal. 
  
QuickBooks Desktop SDKs allows our applications to read/write data from/in the local environment as shown in below picture:

![](https://thepracticaldev.s3.amazonaws.com/i/dqb48asrtbn95q16ldsu.jpg)
 
<b> Steps To Integrate QuickBooks Desktop </b> 

So after understanding the concept of integration, you must be wondering how you can do that. Follow these few steps that you need to do for integrating QuickBooks Desktop to the application: 

1.QuickBooks is an accounting software provided by Intuit. So in order to start managing QuickBooks, you need to have an account on Intuit. Hence the first step is to create an Intuit Developer account, and you can do that by accessing this URL: https://developer.intuit.com/app/developer/homepage

![](https://thepracticaldev.s3.amazonaws.com/i/jssa2okouyl0smrn42rm.png)

2.Hopefully, you have created your developer account. Once you do that, in order to access QuickBooks SDKs, you need to download them with the help of this URL:
https://developer.intuit.com/app/developer/qbdesktop/docs/get-started/download-and-install-the-sdk

Once you be on the given page, you will find the link to download the SDKs. 

![](https://thepracticaldev.s3.amazonaws.com/i/br1kua3nat75mu2uxlb7.png)

3.Once you have successfully downloaded the QuickBooks Desktop SDKs, you need to install it to your system where you are going to develop your application. Ensure you follow the points given in the picture:

![](https://thepracticaldev.s3.amazonaws.com/i/784kpcu5770rtkj0huoy.png)

4.Now the next step is to create a sample application where you want to integrate QuickBooks Desktop SDKs. 

5.Once you have created the sample application you need to follow this path: 
C:\Program Files (x86)\Intuit\QuickBooks 2017\Interop.QBXMLRP2Lib.dll, copy this DLL and paste into your sample application.

6.Add reference of this DLL (Dynamic Link Library) into your application. Instead of copy pasting DLL into your application and assigning a reference of DLL from your application, you can directly provide a reference of DLL from the original source as well. But if you move your application into a different system then probably you may face an issue related to this reference.

![](https://thepracticaldev.s3.amazonaws.com/i/qj8pjwfk9b1b53wmcxpl.jpg)

7.In order to connect your application with QuickBooks Desktop, you need to create its object and need to provide QB Company file path. Once you do that you need to open a connection. 

RequestProcessor2 request = new RequestProcessor2();
request.OpenConnection2("","TestQuickBook", QBXMLRPConnectionType.localQBD);
string ticket = request.BeginSession(@"C:\Users\Public\Documents\Intuit\QuickBooks\Company Files\QBCompanyFile.qbw", QBFileMode.qbFileOpenDoNotCare);

Here, 
RequestProcessor2 is the object of DLL which will help us to interact with QuickBooks Desktop from our application.

TestQuickBook is the name of your application.

The first parameter of BeginSession is the path of your company file.
QBCompanyFile.qbw is the file name of your company file.


8.When you will run the above code for the first time, you have to keep QuickBooks Desktop running because it will ask for read/write permission to the above provided company file. The prompt will appear something like this:

![](https://thepracticaldev.s3.amazonaws.com/i/1y6dyt242rnjashk7qkz.png)
 
Here, you have to choose an option based on your preference. In general, you have to choose last option “Yes, always; allow access even if QuickBooks is not running”. By choosing this option, your application will not be dependent on, whether your QuickBooks is running or not. Once you continue in the above step by choosing the appropriate option, you will get a confirmation prompt from QuickBooks Desktop like this: