QuickBooks Types

QuickBooks Automation: Are you sending data to QuickBooks while operating multiple company files, BE CAREFUL…!!

While QuickBooks Web Connector provides a powerful capability of data exchange with QuickBooks Desktop, it comes with its own intricacies.  

This capability, while invaluable, introduces complexities due to the nuances inherent in data exchange with desktop components. Factors such as port openings and synchronization trigger points add layers of intricacy to the process. 

This time around, I want to double click on one specific scenario which we came across while working on one such integration.  

For the uninitiated, the data exchange with QuickBooks Desktop happens in the following way: 

It’s common for QuickBooks Desktop users to manage multiple company files. This practice facilitates the segregation of disparate business verticals, enabling independent management. 

As shown in the image above, users switch between different companies. It’s important to note that QuickBooks Web Connector communicates with QuickBooks Desktop, rather than directly accessing company files (unless explicitly instructed). 

Users are prompted for the access levels as shown in image below. All these options are self explanatory. Unless mission critical data update, 3rd  (Yes, whenever this QuickBooks company file is open) or the 4th (Yes, always;….. ) are convenient to choose. 

Consider a scenario where “Company1” is configured to allow QWC to read and update its data, and the data exchange occurs successfully. Now, if “Company2” is opened and the web service attempts to send data intended for “Company1,” complications arise. 

Now lets assume Company file “Company2” is opened and your web service tries to send the data meant for “Company1”. What happens next? 

QuickBooks Web Connector will endeavor to update “Company2” data, regardless of the initial configuration being tailored for “Company1.” 

Since qwc file does not hold the information of the company file it needs to connect to, the best (and probably only) way to address this is the following. 

When “authenticate ()” method is called, you have the capability to return the company file location where data should be sent to. It is better to capture the company file location in the workflow and send this information when the communication starts. 

Also, since company file location can change, it is advisable to warn the user of the company file location when the data exchange starts. Users will have to ensure that this company file location does not change, and if it does, this should be updated the web service component which is the source of the data stream. 

Thank you for joining me on this journey through QuickBooks automation. I hope you found valuable insights and practical tips to enhance your experience with QuickBooks Desktop. Here’s to smoother workflows, improved productivity, and greater success in your financial endeavors! Do reach out to us at [email protected] for feedback on this blog. 

Mahendra Batra


Mahendra Batra

Mahendra is a Computer Science graduate and has been working with global clients since 15+ years. He has exposure in requirement gathering, analysis & design, development, testing and production support of a project life cycle. He takes care of understanding business requirements, translating them in to SRS, process models etc and subsequently aligns these requirements with technical implementation. He emphasizes on following best practices and tools for product execution and management. He can be reached at [email protected]