Create service and inventory item records in QuickBooks Online via the Item API
domain: developer.intuit.com · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
In-depth guide
QuickBooks OAuth refresh token rotation — the full failure-mode walkthrough related to developer.intuit.com, checked against official docs, with linked verified routes.
Steps
POST to /v3/company/{realmId}/item with 'Type' set to 'Service', 'NonInventory', or 'Inventory'
For Inventory items, also set 'TrackQtyOnHand': true, 'QtyOnHand', 'InvStartDate', 'AssetAccountRef' (inventory asset account), and 'COGSAccountRef'
Set 'IncomeAccountRef' to the revenue account and 'ExpenseAccountRef' to the COGS or expense account appropriate to the item type
Use 'UnitPrice' to set the default sales price and 'PurchaseCost' for the default purchase cost
To update an item, GET it first, increment nothing but capture 'SyncToken', then PUT the modified body back to /v3/company/{realmId}/item
Query existing items via the QBO query endpoint: SELECT * FROM Item WHERE Type = 'Inventory' to avoid creating duplicates
Known gotchas
Inventory items require the Inventory tracking feature to be enabled in QBO company settings; attempting to create them without this feature returns a 400
Changing an item's Type after creation (e.g., from NonInventory to Inventory) is not supported via API and may require inactivating and recreating the item
Account references must resolve to accounts of the correct account type (Income, COGS, OtherAsset); a mismatched account type causes a validation error
Give your agent this knowledge — and 15,600+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?