Exploring the QuickBooks desktop SDK

This is a guide to the functional areas of QuickBooks Desktop that your app can access. It describes how the UI works and operational details for each area. Generally, the API parallels the functionality provided in the QuickBooks Desktop user interface. The more clearly you understand the resource model and how your app integrates with the available resources, the better your app will be.

QuickBooks Desktop accounting concepts

QuickBooks Desktop provides an array of forms and lists to keep track of a company’s money and business activities. These forms are used to create transactions. Transactions are accounted for using a system of double-entry bookkeeping that feeds into the company’s general ledger. The QuickBooks Desktop API provides a system of resources parallel to QuickBooks Desktop forms and lists.

At the core of double-entry bookkeeping is the concept that every transaction involves at least two accounts. For example, when a company sells a product its cash account increases and the asset account, called Inventory Asset, decreases. Similarly, when a company makes a purchase such as lunch, its cash account decreases and the expense account, called Meals and Entertainment, increases.

When a company sets up their financial records, they create a chart of accounts appropriate to their business activities. Once set up, the chart of accounts is used as a point of reference each time two or more accounts are selected in order to enter a transaction into the general ledger. The QuickBooks Desktop API, and similarly the QuickBooks Desktop UI, uses transactions such as Invoice, Bill, and so on to automatically maintain the general ledger on your behalf.

QuickBooks Desktop API resource model

Consult the API reference for details about individual resources.

Here’s what the model looks like:

Types of resources

For a complete list of objects and operations that can be performed on them, see QuickBooks objects and operations accessible with the SDK.

Types of operations

For a complete list of objects and operations that can be performed on them, see QuickBooks objects and operations accessible with the SDK.

Company settings

Company settings define attributes about the QuickBooks company, such as the default currency, the nomenclature used for customers, default accounts. The QuickBooks Desktop user adjusts company settings via the QuickBooks Desktop UI. Applications access them via the PreferencesQuery request, but have limited ability to change them via the SDK. In most cases changes must be made directly in the QuickBooks Desktop UI.


The QuickBooks company includes a chart of accounts. Each account has a role to play in recording a total monetary amount allocated against a specific use. One of the first integration points for your app is to map the QuickBooks company chart of accounts to your app’s accounts.

There are five classifications of accounts to be concerned with:


Asset, liability, and equity accounts comprise the position accounts for the company; a balance sheet report presents a snapshot of the company’s financial position at one moment in time. Expense and income accounts comprise the performance accounts for the company; a profit and loss report shows the profitability of the company during the time interval specified in its heading.

You access the company’s chart of accounts via the QuickBooks Desktop API Account object list. Individual accounts are organized according to their account type attributes.


The QuickBooks company includes a list of customers, who are consumers of services or products that the company offers. Your app needs to provide options to track the company’s customers. Use the Customer object to access the customer list. Internally, the QuickBooks Desktop API always refers t consumers as customers; however, the QuickBooks company may use another term.


The QuickBooks company includes a list of vendors, who are providers of services or products that the company uses. Your need to provide options to track the company’s vendors as appropriate to your app. Use the Vendor object to access the vendor list.


Inventory are things the QuickBooks company sells, as well as things it buys. QuickBooks Desktop can manage product inventory. Line items entered on sales, purchase, and refund transactions flow into inventory items to automatically adjust quantity on hand. Additionally, cost and price of individual inventory items are stored so inventory value can be tracked.

After enabling inventory management, add individual inventory items as Item objects.

What is supported What’s not supported
  • FIFO inventory accounting
  • Tracking quantity on hand
  • Categories to four levels
  • Taxable status of the item
  • Price and cost
  • LIFO or Average Cost inventory accounting
  • Tracking individual items, for example, by serial number
  • Tracking by different stock locations

Based on how your app manages inventory and the level of support provided by QuickBooks Desktop, here are two ways for your app to integrate with the QuickBooks company inventory:

What’s next