Most of us use apps that integrate with QuickBooks Online everyday, but did you ever stop to wonder how apps connect to QuickBooks and send data back and forth?
QuickBooks Online has two APIs that allow third party apps to connect, the QuickBooks Online Accounting API, which allows developers to connect to QBO and the QuickBooks Payments API, which allows developers to process credit card payments on an eCommerce site. In this article, we’ll be discussing the Accounting API.
What is an API?
So what the heck is an API?
API stands for application program interface. Software companies create APIs to help developers build apps that can connect to their platform. The API provides instructions and tools that developers use to create apps that can manage tasks or retrieve data from QuickBooks.
Both APIs are RESTful APIs, which use representational state transfer (the language of the internet) to communicate with other apps.
The API provides instructions and tools that developers use to create apps that can manage tasks or retrieve data from QuickBooks.
Developers use different programming languages to build apps and Intuit accommodates for this by providing three “official” software developer toolkits (SDK) to help them integrate their app with QuickBooks Online including .NET, Java and PHP, however developers can use open source SDKs in other programming languages, too.
The difference is that the “official” SDKs provided by Intuit are continually monitored by engineers and tested to keep them up to date. Intuit’s goal is to make the process easy for all developers to connect their app to QBO.
In addition to the SDKs, they also provide test environments (called a sandbox), the API explorer, which allows developers to perform functions in their QBO sandbox without writing code, tools and other resources to help them develop their app. And just like we have 3rd party apps that enhance the functionality of QuickBooks Online, there are third party tools that developers can use to beef up their integration too.
How do QuickBooks users allow a third party application access to their data?
Before an application can make API calls to a QuickBooks Online Company, the QuickBooks Company admin must provide their explicit authorization to that application. Only the company admins have this ability, other users of the company will not be able to authorize for security.
This is done by logging into their QuickBooks Online account via the app, and then clicking authorize for that application. This must be done anytime you want to connect a new application. Intuit believes the data belongs to their users and users can revoke access to their data at anytime for any reason. You can manage all of your applications and access at apps.com or in the QuickBooks Apps Tab.
QBO app pix
Ex: Authorizing access to the TSheets Time Tracking Application
What can developers do with the Accounting API? A developer can perform many tasks when connected to QuickBooks Online, such as managing lists and settings or creating, modifying or deleting transactions.
Developers use resources and operations to interact with QuickBooks. Resources are types of data, such as lists, settings, transactions, reports, inventory and journal entry. Operations are actions the app wants to perform. Developers call these CRUD operations (Create, Read, Update and Delete).
There different ways that an app can perform operations in QuickBooks such as single requests – which involves an individual process, query requests - where multiple requests are returned in one response, batch operations – which allow many tasks to be completed at the same time (such as create a customer, update an invoice and read an account) and change data capture operations – which only returns a list of data that has changed since a specified time.
While any developer can create an app that connects with QuickBooks using the API, in order to publish an app that will be listed on apps.com, Intuit’s app marketplace for QuickBooks Online, developers must adhere to strict guidelines and meet technical and security requirements. Intuit offers free support to developers including technical and security reviews to ensure that the app is compliant and won’t compromise customer data.
You can learn more about the QuickBooks Online APIs at Intuit’s developer website. You’ll find documentation on how the API works, what information can be exchanged and the process to build and test an app that connects to QuickBooks.
Heather Satterley is an Advanced QuickBooks ProAdvisor at Satterley Training & Consulting, LLC. Her passion is helping SMB clients and accounting professionals learn and use QuickBooks and related apps. You can find her at www.satterleyconsulting.com.