# QuickBooks — Accounting API: configuration

> Canonical URL: https://developers.apideck.com/apis/accounting/quickbooks/configuration

# How to connect to the QuickBooks API

Apideck enables you to build a native integration with QuickBooks. This guide explains how to configure the QuickBooks connector.

## Before you start, you’ll need:

To create your Intuit Developer account, follow the steps below.

1. Navigate to [developer.intuit.com](https://developer.intuit.com/app/developer/homepage)
2. On the menu bar, click **Sign up**, which will open the "Create your account" form.
3. Fill out the form and click **Create Account**, which redirects you to the developer homepage.
4. Navigate to [Account Profile](https://developer.intuit.com/app/developer/userprofile), fill out your profile details, and click **Submit**.
5. Watch the email inbox you specified for a confirmation message and a second message that contains some introductory links to get you started.
6. To create a new app, navigate to the [Apps dashboard](https://developer.intuit.com/app/developer/dashboard) and click **Create an app**. Copy the Client ID and Secret.
7. Add the Apideck Redirect URI:  
   `https://unify.apideck.com/vault/callback`
8. Go back to Apideck to configure the [QuickBooks connector](https://platform.apideck.com/configuration/accounting/quickbooks) with your Client ID and Secret.

![Apideck QuickBooks Client ID/Secret](https://res.cloudinary.com/apideck/image/upload/v1675199230/docs/connectors/quickbooks/apideck-quickbooks-client-id-secret.png)

Intuit Enterprise Suite companies connect through this same Intuit app, so the app’s webhooks serve both QuickBooks Online and Intuit Enterprise Suite companies. Copy either connector’s **Webhook execute URL** (Apideck Dashboard → Configuration → Accounting → the connector → **Webhooks**). In the Intuit developer portal, open My Hub → App dashboard → your app → **Webhooks**, paste it into the Endpoint URL, select the events to receive, and save. Production and Development are configured separately, each with its own Endpoint URL, so repeat this for each environment you use. Each event is delivered through the company’s connection under the URL’s connector, or under the other connector when the company has none there, never both. If the URL is the QuickBooks connector’s, remove the old QuickBooks connection after moving a company from QuickBooks Online to Intuit Enterprise Suite rather than disabling it: a disabled or invalid leftover connection still takes precedence, its events are dropped, and the company’s Intuit Enterprise Suite connection receives nothing.

## Required Scopes for QuickBooks Integration

When setting up the QuickBooks connector in the Apideck dashboard, you’ll be asked to select the scopes your integration requires. Scopes define which parts of the QuickBooks API your app can access.

At a minimum, you should enable:

- `com.intuit.quickbooks.accounting`: This grants access to QuickBooks accounting data (such as invoices, customers, and general ledger information).  
  This is the only required scope for most accounting use cases.

If your integration needs to access user-specific identity information (like name, email, phone number, or address), you must also select:

- `openid`: Enables identity support via OpenID Connect.  
  This scope is required in order to use any of the following:
  - `profile`: For the user’s first and last name
  - `email`: For the user’s email address
  - `phone`: For the user’s phone number
  - `address`: For the user’s physical address

**Important**: Selecting `profile`, `email`, `phone`, or `address` without selecting `openid` will cause the connection to fail.

## Do your first API call to the QuickBooks API

- Connect your QuickBooks account through [Vault](https://platform.apideck.com/vault) with a test session.

- To test the access token, make a query to get your [`Invoices`](https://developers.apideck.com/apis/accounting/reference#operation/invoicesAll) endpoint using the [Accounting API](https://developers.apideck.com/apis/accounting/reference#operation/invoicesAll).

```bash
curl --location --request GET 'https://unify.apideck.com/accounting/invoices' \
--header 'x-apideck-consumer-id: test-consumer' \
--header 'x-apideck-app-id: {APIDECK_APP_ID}' \
--header 'x-apideck-service-id: quickbooks' \
--header 'Authorization: Bearer {APIDECK_API_KEY}' \
--header 'Content-Type: application/json'
```

## Start building with the QuickBooks API

Learn what else you can [build with the QuickBooks API](https://developers.apideck.com/apis/accounting/quickbooks).

Interested in a personalized demo? [Let us know](https://www.apideck.com/demo-request?from=guide).

## Next steps

- [Disconnect Setup Guide](https://developers.apideck.com/connectors/quickbooks/docs/application_owner+disconnect_setup): configure the Disconnect URL so Apideck is notified when a user disconnects your app from within QuickBooks Online.
- [App Compliance Guide](https://developers.apideck.com/connectors/quickbooks/docs/application_owner+app_compliance): answer Intuit's App Assessment and Compliance Questionnaire to certify your app.
- [API Changes Guide](https://developers.apideck.com/connectors/quickbooks/docs/application_owner+api_changes): review Intuit's recent rate-limit, deprecation, and query-filtering changes that may affect your integration.
- [Departments and Classes Guide](https://developers.apideck.com/connectors/quickbooks/docs/application_owner+departments_and_classes): enable and map QuickBooks Departments, Locations, and Classes through the Apideck Accounting API.


[API reference](https://developers.apideck.com/apis/accounting/reference.md) · [Coverage matrix](https://developers.apideck.com/apis/accounting/coverage)
