At a glance
- Availability: Experimental (how to enable).
- Auth: OAuth 2.0.
- Connection: A user authorizes the connection in the provider’s consent screen.
- Scopes:
com.intuit.quickbooks.accounting. - Docs: https://developer.intuit.com/app/developer/qbo/docs/develop/authentication-and-authorization/oauth-2.0
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.Setup
- 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.
- 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.
- 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.
- 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.
- 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
Tools
| Tool | Access | Description |
|---|---|---|
| List Invoices | Read | List recent invoices in a QuickBooks Online company |
| List Customers | Read | List customers in a QuickBooks Online company |
| List Accounts | Read | List the chart of accounts in a QuickBooks Online company |
| Get Invoice | Read | Get a QuickBooks invoice with its line items |
| Create Invoice | Write | Create an invoice in a QuickBooks Online company |
| List Bills | Read | List vendor bills (accounts payable) in a QuickBooks Online company |
| Get Bill | Read | Get a QuickBooks vendor bill with its line items |
| Create Bill | Write | Create a vendor bill (accounts payable) in a QuickBooks Online company |
| Create Purchase | Write | Record an expense (cash, check, or credit card purchase) in a QuickBooks Online company |
| Upload Attachment | Write | Upload a file and attach it to a QuickBooks transaction (bill, invoice, purchase, …) via the Attachable API |
| Run Query | Read | Run an arbitrary QuickBooks query against any entity (Invoice, Customer, Account, Payment, Bill, Item, …) |
| List Vendors | Read | List vendors in a QuickBooks Online company - use this to find the VendorRef IDs that Create Bill requires |
| List Purchases | Read | List 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.