Create a QuickBooks Online Invoice with line items referencing existing Items and Customers
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
Authenticate with OAuth 2.0 using the 'com.intuit.quickbooks.accounting' scope
Verify the customer exists via SELECT * FROM Customer WHERE DisplayName = 'Acme Corp' and capture the customer Id
Verify the item exists via SELECT * FROM Item WHERE Name = 'Widget' and capture the item Id
POST to /v3/company/{realmId}/invoice with 'CustomerRef' (customer Id), 'TxnDate', 'DueDate', and a 'Line' array
Each line with an item reference uses 'DetailType': 'SalesItemLineDetail' and includes 'ItemRef' (item Id), 'Qty', and optionally 'UnitPrice'
Retrieve the created invoice and verify 'Balance' equals 'TotalAmt' (unpaid) and 'EmailStatus' reflects whether the invoice was sent
Known gotchas
If 'UnitPrice' is omitted on a line, QBO uses the item's default sales price; explicitly supply 'UnitPrice' if you need contract-specific pricing
QBO enforces fiscal year and period rules based on company settings; posting an invoice to a closed period may succeed or fail depending on the 'Close the books' setting
The invoice 'DocNumber' field is optional but should be supplied for human-readable reference; QBO auto-assigns one if omitted, which may conflict with your numbering scheme
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?