> ## Documentation Index
> Fetch the complete documentation index at: https://www.klavis.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Setting Up QuickBooks OAuth App

> Complete guide to creating and configuring a QuickBooks OAuth application

## Prerequisites

* Intuit Developer account (free to sign up)
* Access to Intuit Developer Platform

## Step 1: Create Intuit Developer Account & Workspace

1. Visit [https://developer.intuit.com](https://developer.intuit.com) and sign in with your Intuit credentials

![Intuit Developer Platform Homepage](https://mintcdn.com/klavisai/TEzGHGg1v0ZnLKee/images/knowledge-base/quickbooks_oauth_app/step1_homepage.png?fit=max\&auto=format\&n=TEzGHGg1v0ZnLKee\&q=85\&s=d1ceca9fdc609f4fbe29a2b9877cdc88)

2. Click **"Create a workspace"** to set up your development environment

![Workspaces Overview](https://mintcdn.com/klavisai/TEzGHGg1v0ZnLKee/images/knowledge-base/quickbooks_oauth_app/step2_workspaces.png?fit=max\&auto=format\&n=TEzGHGg1v0ZnLKee\&q=85\&s=407d08751dda30e5ffe00deeba99d52f)

3. Fill out the workspace creation form with three steps:
   * **Step 1 - Basic Information**: Enter workspace name and description
   * **Step 2 - Company Information**: Provide your company details
   * **Step 3 - Contact Information**: Add your contact information

![Create Workspace Dialog](https://mintcdn.com/klavisai/TEzGHGg1v0ZnLKee/images/knowledge-base/quickbooks_oauth_app/step3_create_workspace_dialog.png?fit=max\&auto=format\&n=TEzGHGg1v0ZnLKee\&q=85\&s=3bc14e473a4bd51474cb807bd804f9c7)

![Company Information Form](https://mintcdn.com/klavisai/TEzGHGg1v0ZnLKee/images/knowledge-base/quickbooks_oauth_app/step5-company-info-form.png?fit=max\&auto=format\&n=TEzGHGg1v0ZnLKee\&q=85\&s=1acb8dcf105cd332cce9713816f451ee)

![Contact Information Form](https://mintcdn.com/klavisai/TEzGHGg1v0ZnLKee/images/knowledge-base/quickbooks_oauth_app/step7-contact-info-form.png?fit=max\&auto=format\&n=TEzGHGg1v0ZnLKee\&q=85\&s=a6efb9361571f7d9cd2b91f348675b62)

![Contact Information Filled](https://mintcdn.com/klavisai/TEzGHGg1v0ZnLKee/images/knowledge-base/quickbooks_oauth_app/step8-contact-info-filled.png?fit=max\&auto=format\&n=TEzGHGg1v0ZnLKee\&q=85\&s=60620bba15c326501fc549151e18b02c)

4. Click **"Create workspace"** to complete the setup

![Workspace Dashboard](https://mintcdn.com/klavisai/TEzGHGg1v0ZnLKee/images/knowledge-base/quickbooks_oauth_app/step9_workspace_dashboard.png?fit=max\&auto=format\&n=TEzGHGg1v0ZnLKee\&q=85\&s=f7b46cd309f25ce1f1365cc071b50746)

## Step 2: Create QuickBooks OAuth Application

1. After workspace creation, click **"Create an app"** to start building your QuickBooks integration

![Create App Dialog](https://mintcdn.com/klavisai/TEzGHGg1v0ZnLKee/images/knowledge-base/quickbooks_oauth_app/step10_create_app_dialog.png?fit=max\&auto=format\&n=TEzGHGg1v0ZnLKee\&q=85\&s=d2ac0fb5133cb7522b24302b2691fe69)

2. In the app creation dialog, select app type and configure basic information:
   * **Choose "QuickBooks Online"** as your app type
   * **Enter your app name** (avoid using "Intuit" or "QuickBooks" in the name)
   * **Provide app description**

![App Basic Information](https://mintcdn.com/klavisai/TEzGHGg1v0ZnLKee/images/knowledge-base/quickbooks_oauth_app/step11_app_basic_info.png?fit=max\&auto=format\&n=TEzGHGg1v0ZnLKee\&q=85\&s=1b1fc29ed619cc86e1f134bf05764649)

## Step 3: Configure OAuth Permissions

> [!NOTE]
>
> Klavis QuickBooks MCP Server uses the following OAuth scopes: `com.intuit.quickbooks.accounting` (for full accounting data access) and `com.intuit.quickbooks.payment` (for payment processing)

1. In the permissions configuration step, select the required QuickBooks scopes:
   * **com.intuit.quickbooks.accounting** - For accessing accounting data (customers, invoices, items, etc.)
   * **com.intuit.quickbooks.payment** - For payment processing capabilities

![Permissions Setup](https://mintcdn.com/klavisai/TEzGHGg1v0ZnLKee/images/knowledge-base/quickbooks_oauth_app/step13_permissions_setup.png?fit=max\&auto=format\&n=TEzGHGg1v0ZnLKee\&q=85\&s=a2295d82bfda4e1f02f3a010709ab7da)

2. Review and confirm the permissions by clicking **"Confirm"**

![Permissions Confirmed](https://mintcdn.com/klavisai/TEzGHGg1v0ZnLKee/images/knowledge-base/quickbooks_oauth_app/step14_permissions_confirmed.png?fit=max\&auto=format\&n=TEzGHGg1v0ZnLKee\&q=85\&s=368a7c4f763e1f277ccd46e306229d10)

## Step 4: Access Your OAuth Credentials

1. Once your app is created, you'll see the success page with your development credentials

![App Created Successfully](https://mintcdn.com/klavisai/TEzGHGg1v0ZnLKee/images/knowledge-base/quickbooks_oauth_app/step15_app_created_success.png?fit=max\&auto=format\&n=TEzGHGg1v0ZnLKee\&q=85\&s=5836e72f7be6efac8adca0e7de75cd1b)

2. Navigate to **"Keys and credentials"** in the left sidebar to view your OAuth credentials:
   * **Client ID**: Your OAuth application identifier
   * **Client Secret**: Your OAuth application secret (keep this secure)

![Keys and Credentials Page](https://mintcdn.com/klavisai/TEzGHGg1v0ZnLKee/images/knowledge-base/quickbooks_oauth_app/step16_keys_and_credentials.png?fit=max\&auto=format\&n=TEzGHGg1v0ZnLKee\&q=85\&s=db26d7dc373958471e71abb40acbde7c)

3. Configure your redirect URIs:
   * For Klavis integration: `https://api.klavis.ai/oauth/quickbooks/callback`
   * For local development: `http://localhost:3000/oauth/quickbooks/callback`

> [!TIP]
>
> You have successfully created a QuickBooks OAuth application! You now have your Client ID and Client Secret ready for integration with Klavis AI.

> [!TIP]
>
> **Klavis handles all token management automatically** - we securely store and manage your OAuth tokens so you maintain seamless access to your QuickBooks data without any interruption.

## (Local Testing) Step 5: Testing Your Integration

1. Open the Intuit API Playground: [https://developer.intuit.com/app/developer/playground](https://developer.intuit.com/app/developer/playground)
2. Select your app and environment (Development)
3. Click "Get Access Token" to authorize and retrieve the token
4. Copy both the Access Token and the Realm ID for testing API calls

![Intuit API Playground - Get Access Token and Realm ID](https://mintcdn.com/klavisai/TEzGHGg1v0ZnLKee/images/knowledge-base/quickbooks_oauth_app/step17_test_api_playground.png?fit=max\&auto=format\&n=TEzGHGg1v0ZnLKee\&q=85\&s=73a92fd6d21ef4e23b06bfee29ffb9de)

> [!TIP]
>
> Use the Access Token as the Bearer token in Authorization header and the Realm ID as the companyId for API requests.

## (Optional) Step 6: White Labeling

> [!NOTE]
>
> White labeling allows you to customize the OAuth experience with your own branding instead of Klavis AI's.

If you want to use your own QuickBooks OAuth application with custom branding:

1. **Configure White Labeling**: Go to [https://www.klavis.ai/home/white-label](https://www.klavis.ai/home/white-label)
2. **Add Your Credentials**: Enter your QuickBooks **Client ID** and **Client Secret** from Step 4
3. **Set Redirect URI**: Use `https://api.klavis.ai/oauth/quickbooks/callback` or your custom callback URL
4. **Initiate OAuth**: Use your client ID when starting the OAuth flow:

   ```javascript without SDK theme={null}
   // Example: Initiating QuickBooks OAuth with white-label
   const authUrl = `https://api.klavis.ai/oauth/quickbooks/authorize?instance_id=${instanceId}&client_id=${yourClientId}`;
   window.location.href = authUrl;
   ```

   ```typescript TypeScript SDK theme={null}
   import { Klavis } from "@klavis/sdk";

   const klavis = new Klavis({
     apiKey: "YOUR_API_KEY"
   });

   // Example: Initiating QuickBooks OAuth with white-label
   const oauthUrl = await klavis.mcpServer.getOAuthUrl({
     serverName: Klavis.McpServerName.Quickbooks,
     instanceId: instanceId,
     clientId: yourClientId,
     // redirectUri: YOUR_REDIRECT_URI,
     // scope: "YOUR_SCOPES", 
   });

   window.location.href = oauthUrl;
   ```

   ```python Python SDK theme={null}
   import webbrowser
   from klavis import Klavis
   from klavis.types import McpServerName

   klavis = Klavis(api_key="YOUR_API_KEY")

   # Example: Initiating QuickBooks OAuth with white-label
   oauth_url = klavis.mcp_server.get_oauth_url(
       server_name=McpServerName.QUICKBOOKS,
       instance_id=instance_id,
       client_id=your_client_id,
       # redirect_uri="YOUR_REDIRECT_URI",
       # scope="YOUR_SCOPES"
   )

   # Open OAuth URL in user's default browser
   webbrowser.open(oauth_url)
   ```

> [!TIP]
>
> For detailed white labeling implementation and code examples, see our [OAuth & White Labeling guide](https://www.klavis.ai/docs/auth/white-label.md).

## Resources

* [QuickBooks Online API Documentation](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/account)
* [QuickBooks OAuth 2.0 Guide](https://developer.intuit.com/app/developer/qbo/docs/develop/authentication-and-authorization/oauth_2.0)
* [Intuit Developer Platform](https://developer.intuit.com)
* [QuickBooks API Explorer](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/account)
* [Klavis OAuth & White Labeling Guide](https://www.klavis.ai/docs/auth/white-label.md)
* [Klavis White Label Dashboard](https://www.klavis.ai/home/white-label)


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