From 7627c9c01724f38d86ff1653a4c60a505281f4d5 Mon Sep 17 00:00:00 2001 From: Eric Gustin Date: Sat, 13 Jun 2026 20:52:39 -0700 Subject: [PATCH 1/2] docs: add Intuit (QuickBooks) auth provider reference page [TOO-1144] Customer-facing page on using and configuring Intuit/QuickBooks OAuth with Arcade: scopes table, create-an-app steps on the Intuit Developer portal (including the production-keys assessment note), configuring a custom provider in the dashboard, app-code examples (Python + JS), and a custom-tool example. Adds the Intuit ToolCard to the auth-providers index. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../references/auth-providers/intuit/page.mdx | 217 ++++++++++++++++++ app/en/references/auth-providers/page.mdx | 7 + 2 files changed, 224 insertions(+) create mode 100644 app/en/references/auth-providers/intuit/page.mdx diff --git a/app/en/references/auth-providers/intuit/page.mdx b/app/en/references/auth-providers/intuit/page.mdx new file mode 100644 index 000000000..508d599d0 --- /dev/null +++ b/app/en/references/auth-providers/intuit/page.mdx @@ -0,0 +1,217 @@ +import { Tabs, Callout, Steps } from "nextra/components"; + +# Intuit + +The Intuit auth provider enables tools and agents to call the [Intuit QuickBooks Online API](https://developer.intuit.com/) on behalf of a user, using OAuth 2.0. + +### What's documented here + +This page describes how to use and configure Intuit (QuickBooks) auth with Arcade. + +This auth provider is used by: + +- Your [app code](#using-intuit-auth-in-app-code) that needs to call Intuit/QuickBooks APIs +- Or, your [custom tools](#using-intuit-auth-in-custom-tools) that need to call Intuit/QuickBooks APIs + +Arcade offers a default Intuit auth provider for getting started quickly. In production you will most likely want to use your own Intuit app credentials, so your users see your application's name on the consent screen. + +## Scopes + +Intuit splits its scopes into the QuickBooks API scopes and the OpenID Connect scopes. Request only the scopes your tools need. + +| Scope | Description | +| --- | --- | +| `com.intuit.quickbooks.accounting` | Read and write QuickBooks Online accounting data (customers, invoices, accounts, etc.) | +| `com.intuit.quickbooks.payment` | Process payments via the QuickBooks Payments API | +| `openid` | Authenticate the user and return an ID token | +| `profile` | The user's given and family name | +| `email` | The user's email address | +| `phone` | The user's phone number | +| `address` | The user's physical address | + +## Configuring Intuit auth + + + When using your own app credentials, make sure you configure your project to + use a [custom user + verifier](/guides/user-facing-agents/secure-auth-production#build-a-custom-user-verifier). + Without this, your end-users will not be able to use your app or agent in + production. + + +Before configuring your Intuit credentials in Arcade, create an app on the Intuit Developer portal. + +### Create an Intuit app + + + +#### Create the app + +- Sign in to the [Intuit Developer portal](https://developer.intuit.com/) and open **My Hub > App dashboard** (or [developer.intuit.com/app/developer/dashboard](https://developer.intuit.com/app/developer/dashboard)). +- Open (or create) a **workspace**, then select the **+** tile to create a new app. +- Select **QuickBooks Online and Payments**, give the app a name (letters, numbers, and spaces only), choose the scopes your integration needs, and create the app. + +#### Add the redirect URI + +- Open your app's **Keys & OAuth** (a.k.a. **Keys & credentials**) page. +- Under **Redirect URIs**, click **Add URI** and paste the redirect URL generated by Arcade (see below), then **Save**. +- Intuit allows `http://localhost` redirect URIs for development; production redirect URIs must be HTTPS. + +#### Copy the credentials + +- On the **Keys & OAuth** page, toggle **Show credentials** to reveal the **Client ID** and **Client Secret** for the environment you are using (Development/sandbox or Production). + + + + + Intuit issues **Development** (sandbox) keys immediately. **Production** keys + require completing Intuit's production app assessment and accepting Intuit's + production terms before the production Client ID/Secret are issued. + + +### Configuring your own Intuit Auth Provider in Arcade + + + + +#### Configure Intuit Auth Using the Arcade Dashboard GUI + + + +#### Access the Arcade Dashboard + +To access the Arcade Cloud dashboard, go to [api.arcade.dev/dashboard](https://api.arcade.dev/dashboard). If you are self-hosting, by default the dashboard will be available at http://localhost:9099/dashboard. Adjust the host and port number to match your environment. + +#### Navigate to the OAuth Providers page + +- Under the **Connections** section of the Arcade Dashboard left-side menu, click **Connected Apps**. +- Click **Add OAuth Provider** in the top right corner. +- Select the **Included Providers** tab at the top. +- In the **Provider** dropdown, select **Intuit**. + +#### Enter the provider details + +- Choose a unique **ID** for your provider (e.g. "my-intuit-provider"). +- Optionally enter a **Description**. +- Enter the **Client ID** and **Client Secret** from your Intuit app. +- Note the **Redirect URL** generated by Arcade. This must be added to your Intuit app's Redirect URIs. + +#### Create the provider + +Hit the **Create** button and the provider will be ready to be used. + + + +When you use tools that require Intuit auth using your Arcade account credentials, Arcade will automatically use this Intuit OAuth provider. If you have multiple Intuit providers, see [using multiple auth providers of the same type](/references/auth-providers#using-multiple-providers-of-the-same-type) for more information. + + + + +## Using Intuit auth in app code + +Use the Intuit auth provider in your own agents and AI apps to get a user token for the Intuit/QuickBooks API. See [authorizing agents with Arcade](/get-started/about-arcade) to understand how this works. + +Use `client.auth.start()` to get a user token for the Intuit API: + + + + +```python {8-12} +from arcadepy import Arcade + +client = Arcade() # Automatically finds the `ARCADE_API_KEY` env variable + +user_id = "{arcade_user_id}" + +# Start the authorization process +auth_response = client.auth.start( + user_id=user_id, + provider="intuit", + scopes=["com.intuit.quickbooks.accounting", "openid", "profile", "email"], +) + +if auth_response.status != "completed": + print("Please complete the authorization challenge in your browser:") + print(auth_response.url) + +# Wait for the authorization to complete +auth_response = client.auth.wait_for_completion(auth_response) + +token = auth_response.context.token +# Do something interesting with the token... +``` + + + + + +```javascript {8-10} +import { Arcade } from "@arcadeai/arcadejs"; + +const client = new Arcade(); + +const userId = "{arcade_user_id}"; + +// Start the authorization process +const authResponse = await client.auth.start(userId, "intuit", { + scopes: ["com.intuit.quickbooks.accounting", "openid", "profile", "email"], +}); + +if (authResponse.status !== "completed") { + console.log("Please complete the authorization challenge in your browser:"); + console.log(authResponse.url); +} + +// Wait for the authorization to complete +authResponse = await client.auth.waitForCompletion(authResponse); + +const token = authResponse.context.token; +// Do something interesting with the token... +``` + + + + + +## Using Intuit auth in custom tools + +You can author your own [custom tools](/guides/create-tools/tool-basics/build-mcp-server) that interact with the Intuit/QuickBooks API. + +Use the `Intuit()` auth class to specify that a tool requires authorization with Intuit. The `context.authorization.token` field will be automatically populated with the user's Intuit token. The user's QuickBooks company (realm) id is returned on the authorization context and is required for most accounting API calls: + +```python {5-6,9-13} +from typing import Annotated + +import httpx + +from arcade_tdk import ToolContext, tool +from arcade_tdk.auth import Intuit + + +@tool( + requires_auth=Intuit( + scopes=["com.intuit.quickbooks.accounting"], + ) +) +async def get_company_info( + context: ToolContext, + realm_id: Annotated[str, "The QuickBooks company (realm) id to query."], +) -> Annotated[dict, "The QuickBooks CompanyInfo resource"]: + """Get the authenticated user's QuickBooks company information.""" + url = f"https://quickbooks.api.intuit.com/v3/company/{realm_id}/companyinfo/{realm_id}" + headers = { + "Authorization": f"Bearer {context.authorization.token}", + "Accept": "application/json", + } + + async with httpx.AsyncClient() as client: + response = await client.get(url, headers=headers) + response.raise_for_status() + return response.json() +``` + + + Development (sandbox) keys call the sandbox base URL + `https://sandbox-quickbooks.api.intuit.com`; production keys call + `https://quickbooks.api.intuit.com`. + diff --git a/app/en/references/auth-providers/page.mdx b/app/en/references/auth-providers/page.mdx index edbdfaa0c..dd86e7794 100644 --- a/app/en/references/auth-providers/page.mdx +++ b/app/en/references/auth-providers/page.mdx @@ -78,6 +78,13 @@ For more information on how to customize your auth provider, select an auth prov link="/references/auth-providers/hubspot" category="Auth" /> + Date: Sun, 14 Jun 2026 04:51:16 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=A4=96=20Regenerate=20LLMs.txt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/llms.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/public/llms.txt b/public/llms.txt index 1346f271c..14de3524a 100644 --- a/public/llms.txt +++ b/public/llms.txt @@ -1,4 +1,4 @@ - + # Arcade @@ -34,6 +34,7 @@ Arcade delivers three core capabilities: Deploy agents even your security team w - [GitHub](https://docs.arcade.dev/en/references/auth-providers/github): This documentation page provides guidance on using and configuring the GitHub auth provider with Arcade, enabling users to call GitHub APIs securely on behalf of users. It emphasizes the necessity of using GitHub Apps over OAuth Apps for enhanced security, granular permissions, and - [Google](https://docs.arcade.dev/en/references/auth-providers/google): This documentation page provides guidance on using and configuring Google authentication with Arcade, enabling users to access Google/Google Workspace APIs through their applications. It outlines the benefits of using Arcade's default Google OAuth provider for quick integration, as well as instructions for setting up - [Hubspot](https://docs.arcade.dev/en/references/auth-providers/hubspot): This documentation page provides guidance on using and configuring the Hubspot authentication provider within the Arcade platform, enabling users to call Hubspot APIs on behalf of their applications. It outlines the steps for utilizing Arcade's default Hubspot auth provider, as well as instructions +- [Intuit](https://docs.arcade.dev/en/references/auth-providers/intuit): Documentation page - [Linear](https://docs.arcade.dev/en/references/auth-providers/linear): This documentation page provides guidance on configuring and using the Linear authentication provider with Arcade, enabling users to call Linear APIs on behalf of users in their applications. It outlines the steps to create a Linear app, set up OAuth2 credentials, and integrate Linear auth - [LinkedIn](https://docs.arcade.dev/en/references/auth-providers/linkedin): This documentation page provides guidance on configuring and using the LinkedIn authentication provider within Arcade, enabling applications and custom tools to access LinkedIn APIs on behalf of users. It outlines the necessary steps to create a LinkedIn app, set up app credentials, and - [Mailchimp](https://docs.arcade.dev/en/references/auth-providers/mailchimp): This documentation page provides guidance on configuring the Mailchimp authentication provider for use with Arcade, enabling users to access Mailchimp Marketing APIs through OAuth 2.0. It includes steps for creating a Mailchimp app, registering it, and integrating it with Arcade