QuickBooks
Create invoices, manage customers, and sync accounting data with QuickBooks Online.
On this page
Connect
Auth type: OAuth (oauth2). Click Connect and approve access on the provider's page. Appbricx runs the OAuth flow (signed single-use state, PKCE where the provider supports it), stores the tokens encrypted and refreshes them before they expire.
Scopes requested: com.intuit.quickbooks.accounting
OAuth needs an OAuth app: the platform's when the operator configured one, or your own (admin panel, Integrations, Configure). You can also bring your own credentials.
- In the editor: Backend panel, Integrations tab, then Connect. This connects it for the project.
- For every project in a workspace: Workspace settings, Integrations.
- Owners and admins choose which integrations members may connect in the admin panel (Integrations tab), and can attach their own OAuth app there.
Call it from a workflow
Pass the action name and its input. The call resolves with { success, output, error? }; a missing connection resolves with success false and the reason. See ctx.integrations.invoke and ctx.integrations.call.
// .workflow.js (native ctx)
export async function run(ctx) {
const res = await ctx.integrations.invoke("quickbooks", "create_invoice", {
"customerRef": "<customerRef>",
"lineItems": []
});
if (!res.success) throw new Error(res.error);
ctx.log.info("QuickBooks answered", { output: res.output });
}// defineWorkflow module (@app/sdk ctx)
import { defineWorkflow } from "@app/sdk";
export default defineWorkflow({
id: "quickbooks-create-invoice",
name: "QuickBooks: Create Invoice",
description: "Calls QuickBooks when a row is created.",
trigger: { type: "entity_event", entity: "tickets", event: "created" },
async run(ctx, event) {
const res = await ctx.integrations.call("quickbooks", {
"action": "create_invoice",
"customerRef": "<customerRef>",
"lineItems": []
}) as { success: boolean; error?: string };
if (!res.success) throw new Error(res.error);
},
});curl -X POST "$APP_ORIGIN/__appbricx/connector-proxy/quickbooks/create_invoice" \
-H "Authorization: Bearer $APP_KEY" \
-H "content-type: application/json" \
-d '{"props":{"customerRef":"<customerRef>","lineItems":[]}}'Actions
create_invoicein catalog
Create Invoice. Creates an invoice in QuickBooks.
| Input | Type | Description |
|---|---|---|
customerRefrequired | id (picked from your account) | Customer |
lineItemsrequired | array | Line items for the invoice |
emailStatusoptional | one of "NotSet" | "NeedToSend" | Specify whether the invoice should be emailed after creation. |
billEmailoptional | text | Email address to send the invoice to. Required if Email Status is "Needs To Be Sent". Overrides customer default. |
dueDateoptional | date-time (ISO) | The date when the payment for the invoice is due. If not provided, default term from customer or company is used. |
docNumberoptional | text | Optional reference number for the invoice. If not provided, QuickBooks assigns the next sequential number. |
txnDateoptional | date-time (ISO) | The date entered on the transaction. Defaults to the current date if not specified. |
privateNoteoptional | long text | Note to self. Does not appear on the invoice sent to the customer. |
customerMemooptional | long text | Memo to be displayed on the invoice sent to the customer (appears on statement). |
create_expense
Create Expense. Creates an expense transaction (purchase) in QuickBooks.
| Input | Type | Description |
|---|---|---|
accountRefrequired | id (picked from your account) | The account from which the expense was paid. |
paymentTyperequired | one of "Cash" | "Check" | "CreditCard" | Payment Type |
entityRefoptional | id (picked from your account) | Optional - The vendor the expense was paid to. |
txnDateoptional | date-time (ISO) | The date the expense occurred. |
lineItemsrequired | array | Details of the expense (e.g., categories or items purchased). At least one line is required. |
privateNoteoptional | long text | Internal note about the expense. |
custom_api_call
Custom API Call. Make a custom API call to a specific endpoint
| Input | Type | Description |
|---|---|---|
urlrequired | object (depends on other props) | url |
methodrequired | one of "GET" | "POST" | "PATCH" | "PUT" | "DELETE" | "HEAD" | Method |
headersrequired | object | Authorization headers are injected automatically from your connection. |
queryParamsrequired | object | Query Parameters |
body_typeoptional | one of "none" | "json" | "form_data" | "raw" | Body Type |
bodyoptional | object (depends on other props) | Body |
response_is_binaryoptional | boolean | Enable for files like PDFs, images, etc. |
failsafeoptional | boolean | No Error on Failure |
timeoutoptional | number | Timeout (in seconds) |
followRedirectsoptional | boolean | Follow redirects |
find_customer
Find Customer. Search for a customer by display name in QuickBooks.
| Input | Type | Description |
|---|---|---|
search_termrequired | text | The display name of the customer to search for. |
find_invoice
Find Invoice. Search for an invoice by its number in QuickBooks.
| Input | Type | Description |
|---|---|---|
invoice_numberrequired | text | The document number (DocNumber) of the invoice to search for. |
find_payment
Find Payment. Finds an existing payment in QuickBooks.
| Input | Type | Description |
|---|---|---|
customerIdrequired | text | The ID of the customer to find payments for. |
Details
- Id
quickbooks- Category
- Finance and payments
- Tags
- accounting, invoicing, bookkeeping, finance
- Package
@activepieces/piece-quickbooks@0.1.4- Tier
- Built in