QuickBooks Web connector – Schematic Data Flow
In the previous blog “Smooth Transitions: Importing Data Seamlessly into QuickBooks Desktop” we saw how one can achieve integrations with QuickBooks via SDK and Web Connector respectively.
Clearly, QuickBooks Web Connector (QBWC) is the preferred choice of most developers/implementors for obvious reasons. While I am not wanting to delve in to comparison of QB SDK vs QuickBooks Web Connector implementation, instead as a continuation of our previous blog, let’s have a detailed walk through of how you can achieve integration with QuickBooks via Web Connector. This step-by-step guide focuses on utilizing the QuickBooks Web Connector to achieve QuickBooks Desktop integration, touching upon essential components like QuickBooks SOAP authentication and QuickBooks SOAP request for a thorough understanding.
What is QuickBooks Web Connector?
Integrating QuickBooks Desktop with web-based applications through QuickBooks Web Connector (QBWC) simplifies accounting processes by enabling seamless data exchange. If you have to implement integration between webservice and QuickBooks Desktop, there are only 2 ways of doing it. Firstly, you will have to write a thick client which talks to QuickBooks Desktop, secondly, you can integrate with QBWC. QBWC is nothing but a thick client wrapped with QBD which enables data exchange between web service and QBD company files.
Why cant my web service connect directly to QBD? Why do I have to do it via QBWC? (probably in the next blog 😉)
Please note that QBWC (Web connector) comes packaged as part of QuickBooks installations and is Intuit’s recommended way of developing the apps around QuickBooks for data sharing with company files.
Communication model: First Time Setup
- Your current web app user shows interest in your application and agrees to proceed with setting up communication between web service and company data
- Web app prompts user to download .qwc file
- Web app shares password corresponding to .qwc file
- User open QBWC and configure the qwc file, enters the password shared by your web app
- QBWC initiates the communication with web service
- Web service authenticates the request with credentials (user id and password)
- Communication channel between web service and QBWC is setup for further data communication
Communication Model: Ongoing data exchanges
- QBWC calls clientVersion which triggers communication. Web service will receive info like QuickBooks and QBWC version. Web service will have an opportunity to stop the communication here (if there are version conflicts)
- QBWC calls authenticate() method. This implementation of authenticate method by web service is meant to authenticate user as it receives credentials in the SOAP request. authenticate() method can return token or invalid user response.
- QBWC now calls sendRequestXML() to enquire with web service of what action service needs to perform on the company data. The response to this request decides set of action on QuickBooks desktop.
- If the response to sendRequestXML in step#3 is empty, QBWC now calls getLastError which gives web service opportunity to report an error.
- If getLastError responds with “Interactive mode”, QBWC calls getInteractiveURL() method and opens the URL in the response in browser.
- If response to sendRequestXML() in Step 3 is valid qbXML, the request is sent to QuickBooks. Response from QuickBooks desktop is delegated to method ReceiveResponseXML() method.
- If sendRequestXML() responds anything between 0 to 99, Steps 3 and 6 are repeated, while if it returns 100, closeConnection() method is called.
Please let us know your feedback on this block at [email protected]