The QuickBooks Online Accounting API lets you build apps that can access most customer-facing QuickBooks features small businesses use to do their accounting.
Here, we’ll explain features that are unique to QuickBooks Online. If you’re looking for info about our API and how it’s modeled, here’s an overview of the QuickBooks Online Accounting API.
Before you learn about specific QuickBooks Online features, we recommend you learn basic bookkeeping and accounting concepts.
As you develop, you’ll encounter many accounting concepts. Most are based on general accounting knowledge. However, some are specific to or behave in ways that are unique to QuickBooks Online.
When users first sign up for QuickBooks Online, they create what’s called a “company file.” They use company files to organize all of their business activities and accounting data. Think of them like “profiles” for their business.
Company files store everything related to QuickBooks. This includes transactions, lists, sales forms, customer profiles, financial reports, and much more. Company files usually track the activities for a single business. It’s uncommon for a business to have multiple company files. Learn more about company files.
How this relates to app development
All QuickBooks Online users have a company file. It’s where all their data gets stored and the accounting happens.
When users connect to your app and authorize it, they’re connecting their company files, and it’s data, to your app. It’s also what gives your app the access and refresh tokens needed to make API calls.
Company settings define the attributes of a QuickBooks Online company file. This includes settings like the default currency or accounts for features, as well as preferences and customizations like personalized account names.
Users adjust their company settings in QuickBooks Online by selecting the gear icon and then Account and settings.
How this relates to app development
While users call this their “company settings,” the corresponding APIs use different names. Familiarize yourself with the available company settings and how they impact other APIs’ behaviors. We note these effects in the API Explorer.
Use the Preferences and CompanyInfo entities to adjust company settings.
Here are common preferences to be aware of:
Preferences.AccountingInfoPrefs.CustomerTerminology
: The term used by a company file for its customers. This string is used in many places throughout the QuickBooks UI related to sales activities.Preferences.AccountInfoPrefs.TrackDepartments
: A flag indicating whether department location is tracked on transactions. If this feature is enabled (set to true), the DepartmentRef attribute is available to use for transaction entities.Preferences.CurrencyPrefs.HomeCurrency
: The currency of the country where the business is physically located. This setting appears in the CurrencyRef
attribute of transaction entities.Preferences.AccountInfoPrefs.ClassTrackingPerLine
and Preferences.AccountInfoPrefs.ClassTrackingPerTxn
: These settings correspond to class tracking, for transaction entities.Preferences.SalesFormsPrefs.CustomTxnNumbers
: Lets apps specify custom transaction numbers. Transaction numbers surface in the DocNumber
attribute of certain transaction resources.Preferences.ProductAndServicesPrefs
: A container with settings to enable and manage inventory tracking.Financial accounts (often referred to as just “accounts”) are how QuickBooks uses to categorize and organize transactions.
The list of accounts a business uses to track transactions is known as the chart of accounts. While there are many common accounts, each business will have a unique chart of accounts based on their industry and needs.
Learn more about financial accounts in QuickBooks Online.
Businesses constantly interact with two groups of people: customers (who they sell products and services to) and vendors (who they buy products or services from, including contractors).
QuickBooks keeps customer and vendor lists so businesses always know who’s connected to each transaction.
Learn more about customers and vendors in QuickBooks Online.
Some versions of QuickBooks Online (also known as SKUs) come with inventory tracking and management features.
Inventory items are products a business sells and tracks quantities for in QuickBooks. Some businesses sell items that they don’t track quantities for - these are considered non-inventory. This distinction is important since inventory items are tied to specific accounts.
Learn more about how inventory works in QuickBooks.
How this relates to app development
Learn how to create items and implement inventory features for your app.
Taxes are tricky. Familiarize yourself with your region’s tax laws so you can utilize tax features correctly.
How this relates to app development
QuickBooks Online handles sales and purchase taxes in particular ways. The QuickBooks Online API tax model is a set of resources for managing taxes for transactions such as invoices, bills, purchase orders, and sales receipts. Refer to the TaxCode, TaxRate, and TaxAgency entities.
These entities behave differently between US and non-US editions of QuickBooks Online.
As an app developer, you may want to create tools that streamline one or more accounting tasks into a seamless experience for end-users.
Accounting involves many related tasks that follow specific sequences. We can call these groups of tasks “workflows.” Some workflows involve only a few tasks while others involve more than a dozen.
We’ve created guides for common workflows you can build your app around.