CONNECT APP
Build with QuickBooks
Commerce
- OAuth
MCP
Give your agent QuickBooks tools
Every QuickBooks action is exposed as an MCP tool on Pipedream's remote server. Point a client at it with your end user's ID and Connect resolves that user's QuickBooks account for each tool call — you store no tokens.
// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "quickbooks",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// e.g. run Create AP Aging Detail Report:
const result = await mcp.callTool({
name: "quickbooks-create-ap-aging-report",
arguments: {
shipvia: "Ship Via",
termIds: ["Term IDs"],
},
})# access_token: mint a short-lived token with the Connect SDK — see the MCP guide
headers = {
"Authorization": f"Bearer {access_token}",
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", # any stable ID for this user in your system
"x-pd-app-slug": "quickbooks",
}
async with streamablehttp_client("https://remote.mcp.pipedream.net/v3", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
# e.g. run Create AP Aging Detail Report:
result = await session.call_tool("quickbooks-create-ap-aging-report", {
"shipvia": "Ship Via",
"termIds": ["Term IDs"],
})API PROXY
Call the QuickBooks API directly
For an endpoint with no pre-built tool, the Connect proxy forwards your request to the QuickBooks API with the connected user's credentials attached. You store no tokens and write no refresh logic.
const resp = await pd.proxy.get({
externalUserId: "{external_user_id}", // any stable ID for this user in your system
accountId: "apn_xxxxxxx",
url: "https://api.example.com/v1/me",
})
// Any allowed QuickBooks endpoint works here. Pipedream attaches the
// connected account's credentials to the outgoing request.# The path segment is the target URL, URL-safe base64 encoded:
# https://api.example.com/v1/me
curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vdjEvbWU?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
-H "Authorization: Bearer {access_token}" \
-H "x-pd-environment: production"SDK
Run QuickBooks actions from your backend
Connect a user's QuickBooks account once, then run Create AP Aging Detail Report on their behalf from your own code — TypeScript, Python, or plain HTTP.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "quickbooks-create-ap-aging-report",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
quickbooks: { authProvisionId: "apn_xxxxxxx" },
shipvia: "Ship Via",
termIds: ["Term IDs"],
},
})from pipedream import Pipedream
pd = Pipedream(
client_id="{oauth_client_id}",
client_secret="{oauth_client_secret}",
project_id="{project_id}",
project_environment="production",
)
result = pd.actions.run(
id="quickbooks-create-ap-aging-report",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"quickbooks": {"authProvisionId": "apn_xxxxxxx"},
"shipvia": "Ship Via",
"termIds": ["Term IDs"],
},
)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "quickbooks-create-ap-aging-report",
"configured_props": {
"quickbooks": { "authProvisionId": "apn_xxxxxxx" },
"shipvia": "Ship Via",
"termIds": ["Term IDs"]
}
}'TOOLS
QuickBooks actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
Create AP Aging Detail Report
actionCreates an AP aging report in Quickbooks Online. See the documentationWritev0.0.8 -
Create Bill
actionCreates a bill. See the documentationWritev0.1.13 -
Create Customer
actionCreates a customer. See the documentationWritev0.1.13 -
Create Estimate
actionCreates an estimate. See the documentationWritev0.0.5 -
Create Invoice
actionCreates an invoice. See the documentationWritev0.2.7 -
Create Payment
actionCreates a payment. See the documentationWritev0.0.12 -
Create Profit and Loss Detail Report
actionCreates a profit and loss report in Quickbooks Online. See the documentationWritev0.0.8 -
Create Purchase
actionCreates a new purchase. See the documentationWritev0.0.11 -
Create Purchase Order
actionCreates a purchase order. See the documentationWritev0.0.5 -
Create Sales Receipt
actionCreates a sales receipt. See the documentationWritev0.0.12 -
Delete Purchase
actionDelete a specific purchase. See the documentationWritev0.0.11 -
Get Balance Sheet Report
actionRetrieves the balance sheet report from Quickbooks Online. See the documentationRead-onlyv0.0.1 -
Get Bill
actionReturns info about a bill. See the documentationRead-onlyv0.1.13 -
Get Cash Flow Report
actionRetrieves the cash flow report from Quickbooks Online. See the documentationRead-onlyv0.0.1 -
Get Customer
actionReturns info about a customer. See the documentationRead-onlyv0.3.13 -
Get Invoice
actionReturns info about an invoice. See the documentationRead-onlyv0.2.14 -
Get My Company
actionGets info about a company. See the documentationRead-onlyv0.1.13 -
Get Payment
actionReturns info about a payment. See the documentationRead-onlyv0.0.7 -
Get Purchase
actionReturns info about a purchase. See the documentationRead-onlyv0.1.13 -
Get Purchase Order
actionReturns details about a purchase order. See the documentationRead-onlyv0.1.13 -
Get Sales Receipt
actionReturns details about a sales receipt. See the documentationRead-onlyv0.1.13 -
Get Time Activity
actionReturns info about an activity. See the documentationRead-onlyv0.1.13 -
List Account IDs Options
actionRetrieves available options for the Account IDs field.Read-onlyv0.0.1 -
List Bill ID Options
actionRetrieves available options for the Bill ID field.Read-onlyv0.0.1 -
List Class IDs Options
actionRetrieves available options for the Class IDs field.Read-onlyv0.0.1 -
List Currency Code Options
actionRetrieves available options for the Currency Code field.Read-onlyv0.0.1 -
List Customer Reference Options
actionRetrieves available options for the Customer Reference field.Read-onlyv0.0.1 -
List Customer Type Options
actionRetrieves available options for the Customer Type field.Read-onlyv0.0.1 -
List Department IDs Options
actionRetrieves available options for the Department IDs field.Read-onlyv0.0.1 -
List Employee IDs Options
actionRetrieves available options for the Employee IDs field.Read-onlyv0.0.1 -
List Estimate ID Options
actionRetrieves available options for the Estimate ID field.Read-onlyv0.0.1 -
List Invoice ID Options
actionRetrieves available options for the Invoice ID field.Read-onlyv0.0.1 -
List Item ID Options
actionRetrieves available options for the Item ID field.Read-onlyv0.0.1 -
List Open Invoices
actionLists invoices with an outstanding balance (open invoices). Optionally supply a full query to override the default filter. See the documentationRead-onlyv0.0.2 -
List Past Due Invoices
actionLists open invoices whose due date is before today in the company's time zone (from CompanyInfo.DefaultTimeZone when available). Optionally supply a full Invoice query to override the default filter. See the documentationRead-onlyv0.0.2 -
List Payment ID Options
actionRetrieves available options for the Payment ID field.Read-onlyv0.0.1 -
List Payment Method Options
actionRetrieves available options for the Payment Method field.Read-onlyv0.0.1 -
List Purchase ID Options
actionRetrieves available options for the Purchase ID field.Read-onlyv0.0.1 -
List Purchase Order ID Options
actionRetrieves available options for the Purchase Order ID field.Read-onlyv0.0.1 -
List Sales Receipt ID Options
actionRetrieves available options for the Sales Receipt ID field.Read-onlyv0.0.1 -
List Tax Classification ID Options
actionRetrieves available options for the Tax Classification ID field.Read-onlyv0.0.1 -
List Tax Code ID Options
actionRetrieves available options for the Tax Code ID field.Read-onlyv0.0.1 -
List Term IDs Options
actionRetrieves available options for the Term IDs field.Read-onlyv0.0.1 -
List Time Activity ID Options
actionRetrieves available options for the Time Activity ID field.Read-onlyv0.0.1 -
List Vendor IDs Options
actionRetrieves available options for the Vendor IDs field.Read-onlyv0.0.1 -
List Vendor Reference Options
actionRetrieves available options for the Vendor Reference field.Read-onlyv0.0.1 -
Search Accounts
actionSearch for accounts. See the documentationRead-onlyv0.2.13 -
Search Customers
actionSearches for customers. See the documentationRead-onlyv0.1.13 -
Search Invoices
actionSearches for invoices. See docs hereWritev0.1.6 -
Search Invoices
actionSearches for invoices. See the documentationRead-onlyv0.0.7 -
Search Items
actionSearches for items. See the documentationRead-onlyv0.1.13 -
Search Products
actionSearch for products. See the documentationRead-onlyv0.1.13 -
Search Purchases
actionSearches for purchases. See the documentationRead-onlyv0.0.11 -
Search Query
actionPerforms a search query against a Quickbooks entity. See the documentationRead-onlyv0.1.13 -
Search Services
actionSearch for services. See the documentationRead-onlyv0.0.7 -
Search Time Activities
actionSearches for time activities. See the documentationRead-onlyv0.1.13 -
Search Vendors
actionSearches for vendors. See the documentationRead-onlyv0.1.13 -
Send Estimate
actionSends an estimate by email. See the documentationWritev0.0.5 -
Send Invoice
actionSends an invoice by email. See the documentationWritev0.0.5 -
Sparse Update Invoice
actionSparse updating provides the ability to update a subset of properties for a given object; only elements specified in the request are updated. Missing elements are left untouched. The ID of the object to update is specified in the request body. See the documentationWritev0.1.11 -
Update Customer
actionUpdates a customer. See the documentationWritev0.1.13 -
Update Estimate
actionUpdates an estimate. See the documentationWritev0.0.5 -
Update Invoice
actionUpdates an invoice. See the documentationWritev0.0.5 -
Update Item
actionUpdates an item. See the documentationWritev0.0.8 -
Void Invoice
actionVoids an invoice. See the documentationWritev0.0.5
EVENTS
QuickBooks triggers
Event sources your backend can deploy for users and receive through a webhook.
-
New Customer Created
triggerEmit new event when a new customer is created.v0.0.9 -
New Customer Updated
triggerEmit new event when a customer is updated.v0.0.9 -
New Employee Created
triggerEmit new event when a new employee is created.v0.0.7 -
New Employee Updated
triggerEmit new event when an employee is updated.v0.0.7 -
New Invoice Created
triggerEmit new event when a new invoice is created.v0.0.9 -
New Invoice Updated
triggerEmit new event when an invoice is updated.v0.0.9 -
New Item Created
triggerEmit new event when a new item is created.v0.0.9 -
New Item Updated
triggerEmit new event when an item is updated.v0.0.9 -
New Purchase Created
triggerEmit new event when a new purchase is created.v0.0.3 -
New Purchase Updated
triggerEmit new event when a purchase is updated.v0.0.3
MULTI-APP
Use QuickBooks with other popular apps
Most products don't stop at one integration. Pair QuickBooks with the other apps your users rely on, and ship use cases that span both.
- App slug
- quickbooks
- Authentication
- OAuth
- Categories
- Commerce
- Actions
- 65
- Triggers
- 10
- API proxy
- Available
OAuth scopes
These are the scopes Pipedream's managed QuickBooks OAuth client requests when one of your users connects an account. Supply your own OAuth client to request a different set.
- com.intuit.quickbooks.accounting
- openid
- profile