Skip to main content

At a glance

Credentials

Set these per environment. See Connect an integration. With a managed OAuth app, Connect works without these variables; set them to use your own OAuth app instead.
VariableRequiredDescription
QUICKBOOKS_CLIENT_IDYesIntuit OAuth Client ID (from your app’s Keys & credentials page) Docs.
QUICKBOOKS_CLIENT_SECRETYesIntuit OAuth Client Secret Docs.

Setup

  1. Create an Intuit developer account: Sign up at https://developer.intuit.com/ - creating an app automatically provisions a QuickBooks Online sandbox company with sample data for testing.
  2. Create an app: In the developer dashboard (https://developer.intuit.com/app/developer/dashboard), create an app for the QuickBooks Online and Payments platform with the com.intuit.quickbooks.accounting scope, and add your /api/auth/quickbooks/callback URL as a redirect URI.
  3. Copy credentials: From the app’s Keys & credentials page, copy the Client ID and Client Secret (Development keys work against the sandbox host; Production keys require app review). Set QUICKBOOKS_CLIENT_ID and QUICKBOOKS_CLIENT_SECRET in your .env.
  4. Note your realm ID: The OAuth callback includes a realmId query parameter identifying the connected company - save it; every QuickBooks tool requires it as the realmId parameter. You can also find it under the gear icon → Additional Info in QuickBooks Online.
  5. Verify access: Run the List Invoices tool with your realmId (set host to sandbox-quickbooks.api.intuit.com for a sandbox company).
  • The token endpoint authenticates with HTTP Basic (client_id:client_secret base64-encoded)
  • Access tokens last 60 minutes; refresh tokens roll and remain valid for up to 100 days
  • The company realm ID arrives as a query parameter on the OAuth callback, not in the token response - it must be saved and passed to every tool
  • QuickBooks responds with XML unless the Accept: application/json header is sent (the tools set it by default)
  • Sandbox companies use the sandbox-quickbooks.api.intuit.com host
Provider API reference: https://developer.intuit.com/app/developer/qbo/docs/develop/authentication-and-authorization/oauth-2.0

Tools

ToolAccessDescription
List InvoicesReadList recent invoices in a QuickBooks Online company
List CustomersReadList customers in a QuickBooks Online company
List AccountsReadList the chart of accounts in a QuickBooks Online company
Get InvoiceReadGet a QuickBooks invoice with its line items
Create InvoiceWriteCreate an invoice in a QuickBooks Online company
List BillsReadList vendor bills (accounts payable) in a QuickBooks Online company
Get BillReadGet a QuickBooks vendor bill with its line items
Create BillWriteCreate a vendor bill (accounts payable) in a QuickBooks Online company
Create PurchaseWriteRecord an expense (cash, check, or credit card purchase) in a QuickBooks Online company
Upload AttachmentWriteUpload a file and attach it to a QuickBooks transaction (bill, invoice, purchase, …) via the Attachable API
Run QueryReadRun an arbitrary QuickBooks query against any entity (Invoice, Customer, Account, Payment, Bill, Item, …)
List VendorsReadList vendors in a QuickBooks Online company - use this to find the VendorRef IDs that Create Bill requires
List PurchasesReadList purchase transactions (cash, check, or credit card expenses) in a QuickBooks Online company - the read counterpart to Create Purchase

Example prompts

  • List my QuickBooks invoices with an outstanding balance, sorted by due date.
  • Create an invoice in QuickBooks for a customer with the line items I provide.