> For the complete documentation index, see [llms.txt](https://docs.appmixer.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.appmixer.com/connector-configuration/quickbooks.md).

# Quickbooks

First, you need to set a Quickbooks key and endpoint through the Backoffice in order to provide the Quickbooks components to your customers.

Go to the <https://developer.intuit.com/app/developer/dashboard> to create a new app.

<figure><img src="https://802996127-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIAGKHlIqVKJe9agnFr14%2Fuploads%2Fgit-blob-774fcbd7b737de22c6dc1a6235f5529c5fbb3739%2Fquickbooks-1.png?alt=media" alt=""><figcaption></figcaption></figure>

Select the name and scope:

<figure><img src="https://802996127-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIAGKHlIqVKJe9agnFr14%2Fuploads%2Fgit-blob-8fa1ad5d0555fc6c31bbafd67b896f24e9fa4574%2Fquickbooks-2.png?alt=media" alt=""><figcaption></figcaption></figure>

Then you receive your *clientID* and *clientSecret*.

Intuit issues two separate key pairs: **Development keys** work only with sandbox companies and **Production keys** work only with production companies. Configure the pair that matches the companies your users will connect.

Also add the redirect URL. Example: `https://api.YOUR_SUBDOMAIN.appmixer.cloud/auth/quickbooks/callback`.

<figure><img src="https://802996127-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIAGKHlIqVKJe9agnFr14%2Fuploads%2Fgit-blob-17fd24f52879a2ce4ec6202ae1d7caa50df816c5%2Fquickbooks-3.png?alt=media" alt=""><figcaption></figcaption></figure>

Go the Appmixer BackOffice -> Configuration. Add new configuration: `appmixer:quickbooks` Add your *clientId* and *clientSecret* keys.

When you use the **Development (sandbox) keys**, also add `sandbox`: `true` to the same configuration — it switches the connector to the sandbox API base URL (`sandbox-quickbooks.api.intuit.com`) and the sandbox OpenID endpoint. With Production keys, omit the flag (production is the default).

## Webhooks

All trigger components (for example `NewInvoice`) use QuickBooks webhooks. In order to use this component(s) in Appmixer, you have to register Appmixer's QuickBooks URI in QuickBooks first and set the webhook key in the Appmixer BackOffice.

Go to <https://developer.intuit.com/app/developer/dashboard> then choose your Appmixer app. Navigate to the "Webhooks" section either for the sandbox or production environment and add a new webhook.

<figure><img src="https://802996127-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIAGKHlIqVKJe9agnFr14%2Fuploads%2Fgit-blob-c37597ccfaa22b1bceb01cf119eea01f97bea336%2Fquickbooks-4.png?alt=media" alt=""><figcaption><p>QuickBooks Webhooks configuration</p></figcaption></figure>

Fill the field **Endpoint URL** with `https://api.acme.appmixer.cloud/plugins/appmixer/quickbooks/webhooks` (replace `acme` with your subdomain).

In **Subscribed events**, select the entities and operations the trigger components consume:

| Entity   | Operations     | Trigger components           |
| -------- | -------------- | ---------------------------- |
| Customer | Create, Update | NewCustomer, UpdatedCustomer |
| Invoice  | Create, Update | NewInvoice, UpdatedInvoice   |

Leave the **Enable cloud event payload format** toggle **off** — the connector processes the classic webhook payload format.

<figure><img src="https://802996127-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIAGKHlIqVKJe9agnFr14%2Fuploads%2Fgit-blob-7536fe9a0dc75a7b849a06dcc9362c62f9a332c4%2Fquickbooks-5.png?alt=media" alt=""><figcaption><p>QuickBooks Webhooks event triggers</p></figcaption></figure>

For detailed steps, see [QuickBooks documentation](https://developer.intuit.com/app/developer/qbo/docs/develop/webhooks#endpoints).

Make sure to copy the **Verifier Token** and paste it to the Appmixer BackOffice -> Configuration -> `appmixer:quickbooks` -> `webhookVerifierToken` field.

Intuit issues a **different verifier token for the Development (sandbox) and Production** webhook sections, even when both point at the same endpoint. The connector accepts multiple tokens: set the production token in `webhookVerifierToken` and the sandbox token in `webhookVerifierTokenSandbox` (or put several tokens comma-separated into `webhookVerifierToken`). Incoming events are verified against every configured token; delivery is routed by the company (`realmId`), so sandbox and production events never mix.

<figure><img src="https://802996127-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIAGKHlIqVKJe9agnFr14%2Fuploads%2Fgit-blob-2fd2b655b94478b0cf9fa6049fccceee396eaea1%2Fquickbooks-6.png?alt=media" alt=""><figcaption><p>Appmixer BackOffice configuration for QuickBooks Webhooks</p></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.appmixer.com/connector-configuration/quickbooks.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
