QuickBooks Item API
An item is a thing that your company buys, sells, or re-sells, such as products and services. An item is shown as a line on an invoice or other sales form. The Item.Type attribute, which specifies how the item is used, has one of the following values: Inventory Used in transactions to track merchandise that your business purchases, stocks, and re-sells as inventory. QuickBooks tracks the current number of inventory items in stock, cost of goods sold, and the asset value of the inventory after the purchase and sale of every item. Group Used as a container for a bundle of items with a count for each item. For example, a Gift Basket with 2 apples, 5 pencils and 1 stack of paper. The bundle is the Gift Basket, the bundle items are apples, pencils and paper. Note: Creating them via the QuickBooks Online API is not supported. Bundles cannot contain other bundles. Bundles cannot contain categories. An item can be listed more than once with same or different quantities. Bundles can be added to transactions. Service Used in transactions to track services that you charge on the purchase. For example, specialized labor, consulting hours, and professional fees. NonInventory Used for goods you buy but don’t track, like office supplies. Used in transactions for goods and materials for a specific job that you charge back to the customer and don't track yourself. In addition to the above, QuickBooks companies supports item categories to define item hierarchies. Use Item.Type set to Category to create hierarchies. Of note: Non-category items used as parent items and used for things the company sells cannot be freely mixed. An app can now clearly distinguish between things the company sells and categories used to build a hierarchy to organize them. Categories do not have a price, income account, or expense accounts. Items—-the things the company sells—-cannot have children. That is, if your items are organized into a hierarchy, items can only be at the leaf level of the hierarchy. Categories are only available on companies that have enabled Categories. Test the CompanyInfo.NameValue.Name.ItemCategoriesFeature flag:true— categories are enabled false— categories are not enabled.