In QuickBooks Online, your customers create items to represent the products and services they sell. This lets them quickly save and add items to sales forms, such as invoices and sales receipts. If they have certain versions of QuickBooks Online, they can create inventory-type items to count and manage inventory directly in QuickBooks Online.
We’ll show you how to use your app to create items (i.e., products and services) and briefly cover managing inventory in a customer’s QuickBooks Online company file.
If you need additional background information, see Items and inventory in QuickBooks Online.
Depending on how your app manages inventory, there are a couple ways to make sure it stays in sync with QuickBooks Online:
QuickBooks Online follows a FIFO model for inventory cost accounting. More information is here.
If you don’t want to enable inventory features for your customers, or they don’t have a version of QuickBooks Online that supports inventory, you can skip this section.
Before you start, check to see if a customer already has inventory features enabled. Use the preferences entity to see if Preferences.ProductAndServicesPrefs
attributes.
To enable inventory, set these flags to true:
ForSales
— Shows product column on sales formsForPurchase
— Shows product column on purchase formsQuantityWithPriceAndRate
— Enables quantity with price and rate fields on sales formsQuantityOnHand
— Enables quantity on hand trackingAfter enabling inventory, you can add inventory items using the item entity.
Note
All items - inventory, non-inventory, and services - are connected to finanical accounts in QuickBooks. These track the value of items in inventory, the money made from the sale of those items, and any associated expenses.
Below are basic fields you may see that indicate how an item is connected to an account:
Field | Description |
---|---|
Name |
The name of the item. This must be unique across items. Tip: Query items by name to see if they already exist before creating new ones. |
IncomeAccountRef |
References the income account that tracks the sale of an item. The account type must be Sales of Product Income. |
ExpenseAccountRef |
Reference the expense account that tracks payments to vendors for buying an item. The account type must be Cost of Goods Sold. |
AssetAccountRef |
Reference the inventory asset account that tracks the current value of a company’s inventory. If the same account is used for all inventory items, the balance will represent the current total value of all items in inventory. |
Type |
Specifies the item type. Learn more about item types. |
Use the item entity to create a product or service.
Here’s an example POST request to create an “office supplies” inventory item:
Operation: POST https://quickbooks.api.intuit.com/v3/company/<realmId>/item Content type: application/json
Sample request body
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | { "Name": "Office Supplies", "Description": "This is the sales description.", "Active": true, "Taxable": true, "UnitPrice": 25, "Type": "Inventory", "IncomeAccountRef": { "value": "79", "name": "Sales of Product Income" }, "PurchaseDesc": "This is the purchasing description.", "PurchaseCost": 35, "ExpenseAccountRef": { "value": "80", "name": "Cost of Goods Sold" }, "AssetAccountRef": { "value": "81", "name": "Inventory Asset" }, "TrackQtyOnHand": true, "QtyOnHand": 10, "InvStartDate": "2013-02-19" } |
View Sample Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | { "Item": { "Name": "Office Supplies", "Description": "This is the sales description.", "Active": true, "FullyQualifiedName": "Office Supplies", "Taxable": true, "UnitPrice": 25, "Type": "Inventory", "IncomeAccountRef": { "value": "79", "name": "Sales of Product Income" }, "PurchaseDesc": "This is the purchasing description.", "PurchaseCost": 35, "ExpenseAccountRef": { "value": "80", "name": "Cost of Goods Sold" }, "AssetAccountRef": { "value": "81", "name": "Inventory Asset" }, "TrackQtyOnHand": true, "QtyOnHand": 10, "InvStartDate": "2013-02-19", "domain": "QBO", "sparse": false, "Id": "36", "SyncToken": "0", "MetaData": { "CreateTime": "2015-04-17T15:21:09-07:00", "LastUpdatedTime": "2015-04-17T15:21:10-07:00" } }, "time": "2015-04-17T15:21:09.688-07:00" } |
Let’s review a few fields. The type
field is set to inventory. This means the item is a product and not a service. The product is an inventory type item, rather than a non-inventory item.
Also look at assetAccountRef
and trackQtyOnHand
. You can see the asset account is Inventory asset. This is what QuickBooks uses to track the total value of all inventory items.. The quantity tracking field is set to true and shows a starting value of 10 items.
Note: If you use categories to define inventory items, take extra care when parsing. These add additional data points and complexity.
Here’s how to create invoices and add items to them.
Remember, when you add inventory type items to invoices, sales receipts, purchase orders, or refund transactions, QuickBooks automatically adjusts the quantity on hand.