> ## Documentation Index
> Fetch the complete documentation index at: https://kb.mspprocess.com/llms.txt
> Use this file to discover all available pages before exploring further.

# QuickBooks Online

> Connect QuickBooks Online to Triggr with an Intuit Developer app that a QuickBooks admin authorizes for each company.

Triggr works with QuickBooks Online customers, invoices, payments, bills, items, accounts and vendors, and can query any type of record. Each configuration connects to one company: the Base Configuration is usually your own, and each client's configuration is that client's company.

## Set up QuickBooks Online

**1. Create an Intuit app**

In the [Intuit Developer Portal](https://developer.intuit.com), go to **My Hub > App dashboard**, select the card with a +, name the app `Triggr` and select the `com.intuit.quickbooks.accounting` scope.

**2. Get production keys**

In **Keys and credentials > Production**, fill in App Details and complete the Compliance questionnaire. Intuit releases the keys once it approves the questionnaire.

**3. Add Triggr's redirect URI**

In **Settings > Redirect URIs**, select Production, click Add URI and enter `https://app.triggr-app.com/oauth/callback` exactly.

**4. Copy the credentials**

In Keys and credentials > Production, turn on Show credentials and copy the Client ID and Client secret.

**5. Find each company ID**

In each company, select the Settings gear, then **Additional info**, and copy the company ID (digits only).

See Intuit's guides to [creating an app](https://developer.intuit.com/app/developer/qbo/docs/get-started/start-developing-your-app), [going live](https://developer.intuit.com/app/developer/qbo/docs/go-live/publish-app), [redirect URIs](https://developer.intuit.com/app/developer/qbo/docs/develop/authentication-and-authorization/set-redirect-uri) and [finding your company ID](https://quickbooks.intuit.com/learn-support/en-global/help-article/customer-company-settings/find-quickbooks-online-company-id/L7lp8O9yU_ROW_en).

## Connect it in Triggr

**1. Open the configuration**

Go to **Integrations > QuickBooks Online** and click **Configure** on the Base Configuration card.

![The Base Configuration card with Status Not Configured, Admin Consent Not Required and a Configure button.](https://mintcdn.com/triggr/nyuVXZ1rouDTTEvu/images/integrations-common/base-configuration.png?fit=max\&auto=format\&n=nyuVXZ1rouDTTEvu\&q=85\&s=bb81acb082055015f91beda7b4876f35)

**2. Enter the app and company**

Enter the production Client ID and Client Secret and the Company ID (realm ID), then click Save Configuration.

![The QuickBooks Online configuration window with Client ID, Client Secret and Company ID (realm ID) fields, an Allow insecure TLS switch under Advanced, and a Save Configuration button.](https://mintcdn.com/triggr/nyuVXZ1rouDTTEvu/images/quickbooks-online/configure.png?fit=max\&auto=format\&n=nyuVXZ1rouDTTEvu\&q=85\&s=fb9b078a97ba9e5929f84928278c879d)

**3. Authorize**

Click **Authorize**, sign in to Intuit as a primary admin or company admin, choose the company whose ID you entered and approve.

Authorize again if someone disconnects the app in QuickBooks, or you change the credentials or company ID.

## Set up each client

Per-client integrations never fall back to the Base Configuration. On the Per-Client Configuration card, click **Configure** on the client's row, enter the same app credentials with that client's company ID, save, then click Authorize on the row.

![The Per-Client Configuration card listing Acme Corp and Globex, each Not Configured with Admin Consent Not Required and a Configure button.](https://mintcdn.com/triggr/nyuVXZ1rouDTTEvu/images/integrations-common/per-client-configuration.png?fit=max\&auto=format\&n=nyuVXZ1rouDTTEvu\&q=85\&s=11464b4946bea0b580c73330d9114a41)

## Use it in workflows

* Run Query lists any type of record with a QuickBooks query, such as `select * from Customer where Active = true`.
* Update Customer and Update Invoice need the record's `Id`, its current `SyncToken` and `"sparse": true` in `jsonBody`. Read the record first with Get Customer or Get Invoice.

## Troubleshooting

> [accordion] Intuit shows a redirect URI error
>
> Add `https://app.triggr-app.com/oauth/callback` under Production in Settings > Redirect URIs, exactly as shown, then click Authorize again.

> [accordion] Authorization fails or steps return 401 or 403
>
> Use the app's Production credentials, not its Development keys. Check the app is still connected in QuickBooks and the company ID matches the company you chose, then click Authorize again.

> [accordion] no QuickBooks Online integration is configured for this client
>
> Configure and authorize the client on the Per-Client Configuration card.

> [accordion] Update fails with a Stale Object error (5010)
>
> Run Get Customer or Get Invoice again and use the `SyncToken` it returns.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.