View as Markdown

QuickBooks Online Integration

Manage QuickBooks Online company data, customers, vendors, items, accounts, invoices, bills, payments, reports, and queries

The QuickBooks Online integration provides access to manage QuickBooks Online company data, customers, vendors, items, accounts, invoices, bills, payments, reports, and queries through the Integrate MCP server.

Installation

The QuickBooks Online integration is included with the SDK:

import { quickbooksIntegration } from "integrate-sdk/server";

Setup

1. Create a QuickBooks Online OAuth App

  1. Create an OAuth application for QuickBooks Online
  2. Configure your redirect URI
  3. Note your Client ID and Client Secret

2. Configure the Integration on Your Server

Add the QuickBooks Online integration to your server configuration. The integration automatically reads QUICKBOOKS_CLIENT_ID and QUICKBOOKS_CLIENT_SECRET from your environment variables:

import { createMCPServer, quickbooksIntegration } from "integrate-sdk/server";
 
export const { client: serverClient } = createMCPServer({
  apiKey: process.env.INTEGRATE_API_KEY,
  integrations: [
    quickbooksIntegration({
      scopes: ["com.intuit.quickbooks.accounting", "openid", "profile", "email", "offline_access"], // Optional
    }),
  ],
});

You can override the environment variables by passing explicit values:

quickbooksIntegration({
  clientId: process.env.CUSTOM_QUICKBOOKS_ID,
  clientSecret: process.env.CUSTOM_QUICKBOOKS_SECRET,
      scopes: ["com.intuit.quickbooks.accounting", "openid", "profile", "email", "offline_access"], // Optional
});

3. Client-Side Usage

The default client automatically includes all integrations. You can use it directly:

import { client } from "integrate-sdk";
 
await client.authorize("quickbooks");
const result = await client.quickbooks.getCompanyInfo({
  company_id: "value",
});
 
console.log(result);

If you're using a custom client, add the integration to the integrations array:

import { createMCPClient, quickbooksIntegration } from "integrate-sdk";
 
const customClient = createMCPClient({
  integrations: [quickbooksIntegration()],
});

Configuration Options

export interface QuickBooksIntegrationConfig {
  clientId?: string;

Default Scopes

These defaults are applied unless you override scopes in the integration config:

  • com.intuit.quickbooks.accounting
  • openid
  • profile
  • email
  • offline_access

Tools

quickbooks_get_company_info

Get company info

export interface QuickbooksGetCompanyInfoParams { company_id: string;

quickbooks_query

Query

export interface QuickbooksQueryParams { company_id: string;

quickbooks_list_customers

List customers

export interface QuickbooksListCustomersParams { company_id: string;

quickbooks_get_customer

Get customer

export interface QuickbooksGetCustomerParams { company_id: string;

quickbooks_create_customer

Create customer

export interface QuickbooksCreateCustomerParams { company_id: string;

quickbooks_list_vendors

List vendors

export interface QuickbooksListVendorsParams { company_id: string;

quickbooks_create_vendor

Create vendor

export interface QuickbooksCreateVendorParams { company_id: string;

quickbooks_list_items

List items

export interface QuickbooksListItemsParams { company_id: string;

quickbooks_create_item

Create item

export interface QuickbooksCreateItemParams { company_id: string;

quickbooks_list_accounts

List accounts

export interface QuickbooksListAccountsParams { company_id: string;

quickbooks_list_invoices

List invoices

export interface QuickbooksListInvoicesParams { company_id: string;

quickbooks_get_invoice

Get invoice

export interface QuickbooksGetInvoiceParams { company_id: string;

quickbooks_create_invoice

Create invoice

export interface QuickbooksCreateInvoiceParams { company_id: string;

quickbooks_list_bills

List bills

export interface QuickbooksListBillsParams { company_id: string;

quickbooks_create_bill

Create bill

export interface QuickbooksCreateBillParams { company_id: string;

quickbooks_create_payment

Create payment

export interface QuickbooksCreatePaymentParams { company_id: string;

quickbooks_get_report

Get report

export interface QuickbooksGetReportParams { company_id: string;

Notes

  • Category: Accounting
  • Authentication mode: OAuth