AUTOMATION ERP ETL Technology
importing-data-in-QuickBooks

Smooth Transitions: Importing Data Seamlessly into QuickBooks Desktop

Most businesses, irrespective of their size, have a common challenge, their data rests in silos. While interacting with numerous businesses across my career, I often see this challenge in some or other form. 

Back in the days, when the digitization wave accelerated efficiency and reduced operational cost, the inefficiency of having disparate components holding related data went unnoticed since we had more serious challenges to deal with. Unknowingly, we were waiting for the beast to mature which could not be tamed easily. 

Last few years, we have seen some disruptive innovation happening around data transformation. Complying your app with standard protocols like XML, JSON makes life a lot simpler. And above all tools like Zapier comes very handy when it comes to data and workflow automation. 

However, when it comes to businesses, the ultimate place where data resides is ERP systems. And data transformation becomes even more difficult when you rely on desktop-based ERPs like QuickBooks , Tally or Sage  etc.

  1. QuickBooks SDK
  2. QuickBooks WebConnector

QuickBooks SDK (Software Development Kit) is a set of tools and resources provided by Intuit, the company behind QuickBooks accounting software. The SDK is designed to help software developers integrate their applications with QuickBooks, allowing for seamless data exchange and automation. 

With QuickBooks SDK, developers can create custom solutions that connect to QuickBooks and perform various tasks such as importing/exporting data, automating financial processes, and integrating QuickBooks functionality into their own applications. 

QuickBooks1

Communication between QuickBooks Desktop and SDK based app happens via predefined XML format, also known as QBXML. These formats are pre-defined for all entities and apps must comply with them. Apps can also utilize QuickBooks Foundation Classes (QBFC) for writing requests/response. 

Downside of using QB SDK:  

1) For successful data exchange, you will have to write a local app which runs on the same machine as QuickBooks desktop.

Apart from managing your own web-service which aggregates data, it is cumbersome (efforts intensive) to maintain an additional component. 

2) For you to communicate with the desktop app, you will have to open a port for communication between service and local app. This portrays a serious security issue: 

QuickBooks Web Connectors to the rescue. 

QuickBooks WebConnector 

 Intuit observed these challenges in QB SDK approach and came up with what you call QuickBooks Web Connectors aka QBWC. QBWC is installed locally and enables web services to exchange data with QuickBooks desktop.  

Quickbooks-flow2

QBWC is a generalized app that ends the woes of writing your own app which uses QBSDK to talk to QBD. Since it is generalized, services wanting to go this route must adhere to specifications of QBWC and most important of all is SOAP. Yeah, you read it right, you must write a SOAP service to subscribe your service in QBWC. 

But wait, QBWC is still a local installed app, how does it solve port-opening issue? Well, the communication is triggered from QBWC, so it consumes API and sends data to QBD which it receives in response. 

Downside: SOAP in my opinion is an obsolete way of implementing modern services.

If you are facing any challenges in QuickBooks integration or have any queries around how integration works, please reach out to us at TechFrolic. We have implemented numerous data pipelines which consumes data from sources and imports it to QuickBooks Desktop. Please write to us at [email protected] 

Mahendra Batra

Author

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]