Skip to main content

QuickBooks Component

Create and manage customers and invoices within Intuit QuickBooks

Component key: quickbooks · Changelog ↓

Description

QuickBooks is an accounting and payment platform for individuals and businesses. This component allows generating invoices, managing customers, and more within the QuickBooks platform.

API Documentation

This component was built using the QuickBooks Online API Documentation

The QuickBooks Sandbox allows developers to develop and test integrations without affecting real customer data. Point integrations at this sandbox during development and testing.

Connections

OAuth 2.0

key: oauth2

QuickBooks uses OAuth 2.0 to authenticate requests against the QuickBooks Online API.

Prerequisites

Setup Steps

  1. Create an app within the Intuit developer portal.
  2. When creating the app, enter the OAuth callback URL https://oauth2.prismatic.io/callback.
    1. Consult QuickBooks OAuth scopes documentation to determine the proper OAuth Scopes to assign.
  3. Once the app has been created, a Client ID and Client Secret will be provided.

Configure the Connection

Create a connection of type QuickBooks OAuth 2.0 and enter:

  • Client ID and Client Secret from the Intuit developer portal
  • Scopes: Set to any of the values in this list
  • Use Sandbox: Enable to connect to the QuickBooks Sandbox for testing without affecting real customer data
InputNotesExample
Authorize URL

The OAuth 2.0 Authorization URL for QuickBooks.

https://appcenter.intuit.com/connect/oauth2
Client ID

The client ID from the QuickBooks developer console, used to identify the application during OAuth authentication.

Client Secret

The client secret from the QuickBooks developer console, used to authenticate the application during OAuth token exchange.

Revoke URL

The OAuth 2.0 Revocation URL for QuickBooks.

https://developer.api.intuit.com/v2/oauth2/tokens/revoke
Scopes

A space-delimited set of one or more scopes to request access to QuickBooks resources.

com.intuit.quickbooks.accounting
Token URL

The OAuth 2.0 Token URL for QuickBooks.

https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer
Use Sandbox

When true, requests are sent to the QuickBooks sandbox environment instead of production. Useful for integration testing.

false

Triggers

Entity Change Events

Receive webhook notifications from QuickBooks when entity changes occur. | key: webhook

InputNotesExample
Connection

The QuickBooks connection to use.

QuickBooks sends webhook notifications when entities change in a company's account (e.g., an Invoice is created, a Customer is updated, a Payment is deleted).

This trigger automatically normalizes both CloudEvents and legacy webhook formats into a consistent data structure, so no additional parsing is required.

How It Works

  1. Configure a webhook subscription in the QuickBooks Developer Portal pointing to the flow's webhook URL.
  2. When an entity change occurs, QuickBooks sends a notification to the webhook URL.
  3. The trigger detects the payload format (CloudEvents or legacy) and normalizes it into a consistent structure.
  4. The normalized data is passed to the flow for processing.

Format detection is automatic. The trigger inspects the incoming payload and handles both formats transparently. If a legacy-format webhook is received, a deprecation warning is included in the output since QuickBooks will require CloudEvents format after May 15, 2026.

Event Types

Common Entity Change Events
EntityOperationsDescription
AccountCreate, Update, DeleteChart of accounts changes
CustomerCreate, Update, Delete, MergeCustomer record changes
InvoiceCreate, Update, Delete, VoidInvoice lifecycle events
PaymentCreate, Update, Delete, VoidPayment processing events
BillCreate, Update, DeleteVendor bill changes
VendorCreate, Update, Delete, MergeVendor record changes
ItemCreate, Update, DeleteProduct and service changes
EmployeeCreate, Update, DeleteEmployee record changes
PurchaseCreate, Update, DeletePurchase transaction changes
EstimateCreate, Update, DeleteEstimate lifecycle events
SalesReceiptCreate, Update, Delete, VoidSales receipt events
RefundReceiptCreate, Update, Delete, VoidRefund receipt events
PurchaseOrderCreate, Update, DeletePurchase order changes

Refer to the QuickBooks webhook documentation for the complete and up-to-date list of supported entities and operations.

Returned Data

The trigger normalizes both webhook formats into a consistent NormalizedWebhookOutput structure available at payload.body.data:

Example Payload (CloudEvents format)
{
"format": "cloudevents",
"eventCount": 1,
"events": [
{
"id": "evt_abc123",
"entityId": "456",
"accountId": "1234567890",
"entity": "invoice",
"operation": "create",
"eventType": "qbo.invoice.create",
"timestamp": "2026-02-26T14:30:00Z",
"source": "qbo",
"specversion": "1.0"
}
],
"event": {
"id": "evt_abc123",
"entityId": "456",
"accountId": "1234567890",
"entity": "invoice",
"operation": "create",
"eventType": "qbo.invoice.create",
"timestamp": "2026-02-26T14:30:00Z",
"source": "qbo",
"specversion": "1.0"
},
"entityId": "456",
"accountId": "1234567890",
"entity": "invoice",
"operation": "create",
"eventType": "qbo.invoice.create",
"timestamp": "2026-02-26T14:30:00Z"
}
Example Payload (Legacy format - deprecated)
{
"format": "legacy",
"formatWarning": "Legacy webhook format detected. This format is deprecated and will be removed on May 15, 2026. Please migrate to CloudEvents format in your QuickBooks webhook settings.",
"eventCount": 1,
"events": [
{
"id": "1234567890-456-2026-02-26T14:30:00Z",
"entityId": "456",
"accountId": "1234567890",
"entity": "customer",
"operation": "update",
"eventType": "legacy.customer.update",
"timestamp": "2026-02-26T14:30:00Z",
"source": "legacy"
}
],
"event": {
"id": "1234567890-456-2026-02-26T14:30:00Z",
"entityId": "456",
"accountId": "1234567890",
"entity": "customer",
"operation": "update",
"eventType": "legacy.customer.update",
"timestamp": "2026-02-26T14:30:00Z",
"source": "legacy"
},
"entityId": "456",
"accountId": "1234567890",
"entity": "customer",
"operation": "update",
"eventType": "legacy.customer.update",
"timestamp": "2026-02-26T14:30:00Z"
}

Key fields:

  • format — Either "cloudevents" or "legacy", indicating which webhook format was received.
  • event — The first parsed event (convenient shortcut when processing single-event webhooks).
  • events — Array of all parsed events in the notification.
  • entity / operation — The entity type and operation from the first event (e.g., "invoice" / "create").
  • entityId / accountId — The affected entity ID and QuickBooks company account ID.

Notes

  • Legacy format deprecation: QuickBooks will require CloudEvents format after May 15, 2026. Update webhook subscriptions in the QuickBooks Developer Portal to use CloudEvents before this date.
  • Multi-event notifications: A single webhook request may contain multiple entity change events. Use the events array to process all changes, not just the event shortcut.
  • Webhook verification: QuickBooks signs webhook payloads with a verification token. Configure the token in the QuickBooks Developer Portal to match the value in the connection settings.

Data Sources

Select Account

Select an Account from a dropdown menu. | key: selectAccount | type: picklist

InputNotesExample
Connection

The QuickBooks connection to use.

{
"result": [
{
"key": "1",
"label": "Checking"
}
]
}

Select Attachment

Select an attachment from a dropdown menu. | key: selectAttachment | type: picklist

InputNotesExample
Connection

The QuickBooks connection to use.

{
"result": [
{
"label": "invoice_scan.pdf",
"key": "5000000000001348400"
},
{
"label": "receipt_photo.jpg",
"key": "5000000000001348401"
}
]
}

Select Customer

Select a Customer from a dropdown menu. | key: selectCustomer | type: picklist

InputNotesExample
Connection

The QuickBooks connection to use.

{
"result": [
{
"key": "1",
"label": "John Doe"
}
]
}

Select Invoice

Select an Invoice from a dropdown menu. | key: selectInvoice | type: picklist

InputNotesExample
Connection

The QuickBooks connection to use.

{
"result": [
{
"key": "1",
"label": "1005"
}
]
}

Select Purchase Order

Select a Purchase Order from a dropdown menu. | key: selectPurchaseOrder | type: picklist

InputNotesExample
Connection

The QuickBooks connection to use.

{
"result": [
{
"key": "1",
"label": "1005"
}
]
}

Select Refund Receipt

Select a Refund Receipt from a dropdown menu. | key: selectRefundReceipt | type: picklist

InputNotesExample
Connection

The QuickBooks connection to use.

{
"result": [
{
"key": "1",
"label": "1005"
}
]
}

Select Term

Select a payment term from a dropdown menu. | key: selectTerm | type: picklist

InputNotesExample
Connection

The QuickBooks connection to use.

{
"result": [
{
"key": "3",
"label": "Net 30"
}
]
}

Actions

Batch Request

Perform a batch request against the QuickBooks API. | key: batchRequest

InputNotesExample
Batch Request Items

An array of batch request items to be executed; see https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/batch for detailed information.

Connection

The QuickBooks connection to use.

{
"data": {
"BatchItemResponse": [
{
"Fault": {
"type": "ValidationFault",
"Error": [
{
"Message": "Stale Object Error",
"code": "5010",
"Detail": "Stale Object Error : You and root were working on this at the same time. root finished before you did, so your work was not saved.",
"element": ""
}
]
},
"bId": "bid1"
},
{
"bId": "bid2",
"QueryResponse": {
"SalesReceipt": [
{
"TxnDate": "2015-08-25",
"domain": "QBO",
"CurrencyRef": {
"name": "United States Dollar",
"value": "USD"
},
"PrintStatus": "NotSet",
"PaymentRefNum": "10264",
"TotalAmt": 337.5,
"Line": [
{
"Description": "Custom Design",
"DetailType": "SalesItemLineDetail",
"SalesItemLineDetail": {
"TaxCodeRef": {
"value": "NON"
},
"Qty": 4.5,
"UnitPrice": 75,
"ItemRef": {
"name": "Design",
"value": "4"
}
},
"LineNum": 1,
"Amount": 337.5,
"Id": "1"
},
{
"DetailType": "SubTotalLineDetail",
"Amount": 337.5,
"SubTotalLineDetail": {}
}
],
"ApplyTaxAfterDiscount": false,
"DocNumber": "1003",
"PrivateNote": "A private note.",
"sparse": false,
"DepositToAccountRef": {
"name": "Checking",
"value": "35"
},
"CustomerMemo": {
"value": "Thank you for your business and have a great day!"
},
"Balance": 0,
"CustomerRef": {
"name": "Dylan Sollfrank",
"value": "6"
},
"TxnTaxDetail": {
"TotalTax": 0
},
"SyncToken": "1",
"PaymentMethodRef": {
"name": "Check",
"value": "2"
},
"EmailStatus": "NotSet",
"BillAddr": {
"Lat": "INVALID",
"Long": "INVALID",
"Id": "49",
"Line1": "Dylan Sollfrank"
},
"MetaData": {
"CreateTime": "2015-08-27T14:59:48-07:00",
"LastUpdatedTime": "2016-04-15T09:01:10-07:00"
},
"CustomField": [
{
"DefinitionId": "1",
"Type": "StringType",
"Name": "Crew #"
}
],
"Id": "11"
}
],
"startPosition": 1,
"maxResults": 1
}
}
],
"time": "2016-04-15T09:01:18.141-07:00"
}
}

Create Invoice

Create a new invoice using individual field inputs. | key: createInvoiceV2

InputNotesExample
Apply Tax After Discount

When true, applies tax after discount is calculated.

false
Bill Email

The email address to send the invoice to.

customer@example.com
Bill Email BCC

The BCC email address for the invoice.

records@example.com
Bill Email CC

The CC email address for the invoice.

accounting@example.com
Billing City

The city of the billing address.

Mountain View
Billing Address Line 1

Line 1 of the billing address.

123 Main Street
Billing Address Line 2

Line 2 of the billing address.

Suite 200
Billing Postal Code

The postal code of the billing address.

94043
Billing State

The state or province of the billing address.

CA
Customer ID

The ID of the customer to attach to the receipt.

56
Customer Memo

A memo that appears on the invoice sent to the customer.

Thank you for your business!
Customer Name

The name of the customer that will show on the receipt.

John Doe
Custom Fields

A JSON array of custom field objects. Each object requires DefinitionId (the custom field ID), Type (e.g., "StringType"), and Name (the field label). Leave empty if no custom fields are needed.

Document Number

The reference number for the invoice.

INV-1001
Due Date

The due date of the invoice in YYYY-MM-DD format.

2026-04-30
Dynamic Fields

A field for dynamic inputs that can be configured at deploy time with the use of a key/value config variable.

Optional Values

The names of optional fields and their values to use when creating/updating a record. For example, if you have a custom configured field that is not represented as an input, here you are able to specify its key and assign it a value.

Invoice Date

The transaction date of the invoice in YYYY-MM-DD format.

2026-03-31
Line Items

A JSON array of line item objects. Each line item requires a DetailType, Amount, and a detail object matching the type. The most common type is "SalesItemLineDetail" with ItemRef (value is the item ID), Qty, and UnitPrice. Add multiple objects to the array for multiple line items. See QuickBooks documentation for all supported line types.

Private Note

An internal note that is not visible to the customer.

Follow up in 30 days
Connection

The QuickBooks connection to use.

Sales Term ID

The ID of the sales term (e.g., Net 30) to apply to the invoice.

3
Shipping City

The city of the shipping address.

Palo Alto
Shipping Address Line 1

Line 1 of the shipping address.

456 Oak Avenue
Shipping Address Line 2

Line 2 of the shipping address.

Building B
Shipping Postal Code

The postal code of the shipping address.

94301
Shipping State

The state or province of the shipping address.

CA

{
"data": {
"TxnDate": "2015-07-24",
"domain": "QBO",
"PrintStatus": "NeedToPrint",
"TotalAmt": 150,
"Line": [
{
"LineNum": 1,
"Amount": 150,
"SalesItemLineDetail": {
"TaxCodeRef": {
"value": "NON"
},
"ItemRef": {
"name": "Services",
"value": "1"
}
},
"Id": "1",
"DetailType": "SalesItemLineDetail"
},
{
"DetailType": "SubTotalLineDetail",
"Amount": 150,
"SubTotalLineDetail": {}
}
],
"DueDate": "2015-08-23",
"ApplyTaxAfterDiscount": false,
"DocNumber": "1070",
"sparse": false,
"Deposit": 0,
"Balance": 150,
"CustomerRef": {
"name": "Amy's Bird Sanctuary",
"value": "1"
},
"TxnTaxDetail": {
"TotalTax": 0
},
"SyncToken": "0",
"LinkedTxn": [],
"EmailStatus": "NotSet",
"BillAddr": {
"City": "Bayshore",
"Line1": "4581 Finch St.",
"PostalCode": "94326",
"CountrySubDivisionCode": "CA",
"Id": "2"
},
"MetaData": {
"CreateTime": "2015-07-24T10:35:08-07:00",
"LastUpdatedTime": "2015-07-24T10:35:08-07:00"
},
"CustomField": [
{
"DefinitionId": "1",
"Type": "StringType",
"Name": "Crew #"
}
],
"Id": "239"
}
}

Create Invoice (JSON)

Create an invoice by providing a raw JSON payload matching the QuickBooks API schema. | key: createInvoice

InputNotesExample
Data

A string of JSON data that represents a QuickBooks invoice.

Connection

The QuickBooks connection to use.


Create Item

Create a new non-inventory item in QuickBooks. | key: createNonInventoryItem

InputNotesExample
API Minor Version

The minor version of the QuickBooks API to use.

75
Non-Inventory Item Data

The attributes of the non-inventory item to create

Connection

The QuickBooks connection to use.


Create Note Attachment

Attach a note to an object. | key: createNoteAttachment

InputNotesExample
Connection

The QuickBooks connection to use.

Entity Reference Type

Object reference to which this attachment is linked. Set this value with the specific type of the target object.

Invoice
Entity Reference Value

Object reference to which this attachment is linked. Set this value with the ID of the target object as returned in its response body when queried.

95
Include on Send

Used when Entity Reference Type references a transaction object. This field indicates whether or not the attachment is sent with the transaction when Save and Send button is clicked in the QuickBooks UI or when the Send endpoint is invoked for the object.

false
API Minor Version

The minor version of the QuickBooks API to use.

75
Note

The note is either related to the attachment specified with the FileName attribute, or as a standalone note. Required for note attachments.


Create Purchase Order

Create a new Purchase Order. | key: createPurchaseOrder

InputNotesExample
AP Account ID

The AP account to which the bill is credited.

Connection

The QuickBooks connection to use.

Dynamic Fields

A field for dynamic inputs that can be configured at deploy time with the use of a key/value config variable.

Optional Values

The names of optional fields and their values to use when creating/updating a record. For example, if you have a custom configured field that is not represented as an input, here you are able to specify its key and assign it a value.

Lines

Data representing line items of purchase orders. See 'Line' in QuickBooks' docs at https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/purchaseorder#create-a-purchase-order.

Vendor ID

The vendor referenced in this transaction.

{
"data": {
"PurchaseOrder": {
"DocNumber": "1005",
"SyncToken": "0",
"POEmail": {
"Address": "send_email@intuit.com"
},
"APAccountRef": {
"name": "Accounts Payable (A/P)",
"value": "33"
},
"CurrencyRef": {
"name": "United States Dollar",
"value": "USD"
},
"TxnDate": "2015-07-28",
"TotalAmt": 25,
"ShipAddr": {
"Line4": "Half Moon Bay, CA 94213",
"Line3": "65 Ocean Dr.",
"Id": "121",
"Line1": "Grace Pariente",
"Line2": "Cool Cars"
},
"domain": "QBO",
"Id": "257",
"POStatus": "Open",
"sparse": false,
"EmailStatus": "NotSet",
"VendorRef": {
"name": "Hicks Hardware",
"value": "41"
},
"Line": [
{
"DetailType": "ItemBasedExpenseLineDetail",
"Amount": 25,
"Id": "1",
"ItemBasedExpenseLineDetail": {
"ItemRef": {
"name": "Garden Supplies",
"value": "38"
},
"CustomerRef": {
"name": "Cool Cars",
"value": "3"
},
"Qty": 1,
"TaxCodeRef": {
"value": "NON"
},
"BillableStatus": "NotBillable",
"UnitPrice": 25
}
}
],
"CustomField": [
{
"DefinitionId": "1",
"Type": "StringType",
"Name": "Crew #"
},
{
"DefinitionId": "2",
"Type": "StringType",
"Name": "Sales Rep"
}
],
"VendorAddr": {
"Line4": "Middlefield, CA 94303",
"Line3": "42 Main St.",
"Id": "120",
"Line1": "Geoff Hicks",
"Line2": "Hicks Hardware"
},
"MetaData": {
"CreateTime": "2015-07-28T16:01:47-07:00",
"LastUpdatedTime": "2015-07-28T16:01:47-07:00"
}
},
"time": "2015-07-28T16:04:49.874-07:00"
}
}

Create Refund Receipt

Create a new Refund Receipt in QuickBooks. | key: createRefundReceipt

InputNotesExample
Account ID

The ID of the account to which payment money is deposited. If not specified, payment is applied to the Undeposited Funds account.

35
Account Name

The name of the account to which payment money is deposited. If not specified, payment is applied to the Undeposited Funds account.

Checking
Billing Address ID

The unique identifier of the billing address.

78
Custom Fields

A JSON array of custom field objects. Each object requires DefinitionId (the custom field ID), Type (e.g., "StringType"), and Name (the field label). Leave empty if no custom fields are needed.

Optional Values

The names of optional fields and their values to use when creating/updating a record. For example, if you have a custom configured field that is not represented as an input, here you are able to specify its key and assign it a value.

Billing Latitude

The latitude of the billing address.

40.7489277
Billing Line 1

Line 1 of the billing address.

Karen Pye
Billing Line 2

Line 2 of the billing address.

Pye's Cakes
Billing Line 3

Line 3 of the billing address.

350 Mountain View Dr.
Billing Line 4

Line 4 of the billing address.

South Orange, NJ 07079
Line Items

A JSON array of line item objects. Each line item requires a DetailType, Amount, and a detail object matching the type. The most common type is "SalesItemLineDetail" with ItemRef (value is the item ID), Qty, and UnitPrice. Add multiple objects to the array for multiple line items. See QuickBooks documentation for all supported line types.

Billing Longitude

The longitude of the billing address.

-74.2609903
Connection

The QuickBooks connection to use.


Create Resource

Create a new resource in QuickBooks. | key: createResource

InputNotesExample
Connection

The QuickBooks connection to use.

Resource Attributes

A list of attributes used to create a resource in QuickBooks. For more information refer to https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/customer.

Resource Type

The type of QuickBooks resource to operate on.


Create Sales Receipt

Create a new Sales Receipt in QuickBooks. | key: createReceipt

InputNotesExample
Account ID

The ID of the account to which payment money is deposited. If not specified, payment is applied to the Undeposited Funds account.

35
Account Name

The name of the account to which payment money is deposited. If not specified, payment is applied to the Undeposited Funds account.

Checking
Apply Tax After Discount

When true, applies tax after discount is calculated.

false
Create Time

The date and time when the record was created in ISO 8601 format.

2014-09-16T14:59:48-07:00
Customer ID

The ID of the customer to attach to the receipt.

56
Customer Name

The name of the customer that will show on the receipt.

John Doe
Custom Fields

A JSON array of custom field objects. Each object requires DefinitionId (the custom field ID), Type (e.g., "StringType"), and Name (the field label). Leave empty if no custom fields are needed.

Line Items

A JSON array of line item objects. Each line item requires a DetailType, Amount, and a detail object matching the type. The most common type is "SalesItemLineDetail" with ItemRef (value is the item ID), Qty, and UnitPrice. Add multiple objects to the array for multiple line items. See QuickBooks documentation for all supported line types.

Payment Method ID

The ID of the payment method associated with this transaction.

2
Payment Method Name

The name of the payment method associated with this transaction.

Check
Connection

The QuickBooks connection to use.


Delete Attachable

Delete an attachable object. | key: deleteAttachable

InputNotesExample
Attachable Payload

The full payload of the attachable as returned in a read response. Could be a reference from a previously executed "Read Attachable" action response data.

Connection

The QuickBooks connection to use.

API Minor Version

The minor version of the QuickBooks API to use.

75

Delete Purchase Order

Delete an existing Purchase Order. | key: deletePurchaseOrder

InputNotesExample
Connection

The QuickBooks connection to use.

Purchase Order ID

The id of the purchase order to delete.

259
Sync Token

The sync token of the purchase order to delete.

{
"data": {
"PurchaseOrder": {
"status": "Deleted",
"domain": "QBO",
"Id": "125"
},
"time": "2015-05-26T14:08:39.858-07:00"
}
}

Delete Refund Receipt

Delete an existing Refund Receipt in QuickBooks. | key: deleteRefundReceipt

InputNotesExample
Connection

The QuickBooks connection to use.

Receipt ID

The unique identifier of the receipt.

101
Sync Token

The sync token of the resource, used for optimistic locking to prevent concurrent update conflicts.


Download Attachment

Retrieves a temporary download URL to the specified attachableID. | key: downloadAttachment

InputNotesExample
Attachable ID

The unique identifier of the attachment.

5000000000001348400
Connection

The QuickBooks connection to use.

API Minor Version

The minor version of the QuickBooks API to use.

75

Find Resource by ID

Retrieve a resource by ID from QuickBooks. | key: findResource

InputNotesExample
Connection

The QuickBooks connection to use.

Resource ID

The primary ID of a resource in QuickBooks.

Resource Type

The type of QuickBooks resource to operate on.


Get Company Info

Retrieve information about the company. | key: getCompanyInfo

InputNotesExample
Connection

The QuickBooks connection to use.

{
"data": {
"CompanyName": "Example Corp",
"Id": "1234",
"SyncToken": "0",
"CompanyAddr": {
"City": "Mountain View",
"Country": "USA",
"CountrySubDviisionCode": "CA",
"Line1": "2500 Garcia Ave",
"PostalCode": "94043"
}
}
}

Get Customer By Display Name

Retrieve information about the Customer which matches the given Display Name. | key: getCustomerByDisplayName

InputNotesExample
Customer Display Name

The display name of the customer in QuickBooks.

Smith Rocket Company
Connection

The QuickBooks connection to use.

{
"data": {
"Id": "1",
"SyncToken": "0",
"MetaData": {},
"EmailMessagesPrefs": {},
"ProductAndServicesPrefs": {},
"ReportPrefs": {}
}
}

Get Customer By ID

Retrieve information about the Customer which matches the given ID. | key: getCustomerById

InputNotesExample
Customer ID

The id of the customer to get.

56
Connection

The QuickBooks connection to use.

{
"data": {
"Id": "1",
"SyncToken": "0",
"MetaData": {},
"EmailMessagesPrefs": {},
"ProductAndServicesPrefs": {},
"ReportPrefs": {}
}
}

Get Invoice By ID

Retrieve information about the Invoice which matches the given ID. | key: getInvoiceById

InputNotesExample
Invoice ID

The id of the invoice to get.

259
Connection

The QuickBooks connection to use.


Get Refund Receipt

Retrieve an existing Refund Receipt from QuickBooks. | key: getRefundReceipt

InputNotesExample
Connection

The QuickBooks connection to use.

Receipt ID

The unique identifier of the receipt.

101

Get Refund Receipt as PDF

Retrieve an existing Refund Receipt from QuickBooks as a PDF. | key: getRefundReceiptAsPDF

InputNotesExample
Connection

The QuickBooks connection to use.

Receipt ID

The unique identifier of the receipt.

101

Get Sales Receipt

Retrieve the information and metadata of a Sales Receipt by ID. | key: getReceipt

InputNotesExample
Connection

The QuickBooks connection to use.

Receipt ID

The unique identifier of the receipt.

101

Get Vendor Expenses

Retrieve information about vendor expenses. | key: queryVendorExpenses

InputNotesExample
Query Params

Query parameters to filter report results. Available parameters: customer, vendor, end_date, date_macro, class, sort_order, summarize_column_id, department, accounting_method, and start_date.

Connection

The QuickBooks connection to use.

This action wraps QuickBooks' Query a Report API endpoint. Query parameters can be added to filter results by customer, vendor, department, accounting_method, or class. Keys summarize_column_by and sort_order determine how the result should be structured. Specify a date_macro, or a combination of a start_date and end_date (both need to be specified) to get expenses from a particular date range.

Query vendor expenses action


List Accounts

Retrieve a list of all Accounts. | key: listAccounts

InputNotesExample
Fetch All

When true, automatically fetches all pages of results using pagination.

false
Max Results

The maximum number of results to return.

1000
Connection

The QuickBooks connection to use.

Start Position

The starting position to return results from.

1

{
"data": [
{
"Name": "Gas and Electric",
"SubAccount": true,
"ParentRef": {
"value": "24"
},
"FullyQualifiedName": "Utilities:Gas and Electric",
"Active": true,
"Classification": "Expense",
"AccountType": "Expense",
"AccountSubType": "Utilities",
"CurrentBalance": 0,
"CurrentBalanceWithSubAccounts": 0,
"CurrencyRef": {
"value": "USD",
"name": "United States Dollar"
},
"domain": "QBO",
"sparse": false,
"Id": "76",
"SyncToken": "0",
"MetaData": {
"CreateTime": "2022-04-24T10:30:29-07:00",
"LastUpdatedTime": "2022-04-24T10:30:29-07:00"
}
}
]
}

List Attachments

Retrieve a list of all Attachments linked to an entity. | key: listAttachments

InputNotesExample
Attachable Entity ID

The ID of the entity that the attachable is linked to.

611
Attachable Entity Type

The type of the entity that the attachable is linked to.

purchase
Connection

The QuickBooks connection to use.

{
"data": [
{
"Id": "100000000004062174",
"sparse": true
},
{
"Id": "100000000004158481",
"sparse": true
}
]
}

List Customers

Retrieve a list of all Customers. | key: listCustomers

InputNotesExample
Fetch All

When true, automatically fetches all pages of results using pagination.

false
Max Results

The maximum number of results to return.

1000
Connection

The QuickBooks connection to use.

Start Position

The starting position to return results from.

1

{
"data": [
{
"Taxable": false,
"BillAddr": {
"Id": "30",
"Line1": "45612 Main St.",
"City": "Bayshore",
"CountrySubDivisionCode": "CA",
"PostalCode": "94326",
"Lat": "45.256574",
"Long": "-66.0943698"
},
"ShipAddr": {
"Id": "30",
"Line1": "45612 Main St.",
"City": "Bayshore",
"CountrySubDivisionCode": "CA",
"PostalCode": "94326",
"Lat": "45.256574",
"Long": "-66.0943698"
},
"Job": false,
"BillWithParent": false,
"Balance": 375,
"BalanceWithJobs": 375,
"CurrencyRef": {
"value": "USD",
"name": "United States Dollar"
},
"PreferredDeliveryMethod": "Print",
"IsProject": false,
"ClientEntityId": "0",
"domain": "QBO",
"sparse": false,
"Id": "29",
"SyncToken": "0",
"MetaData": {
"CreateTime": "2022-04-19T17:29:04-07:00",
"LastUpdatedTime": "2022-04-25T11:09:08-07:00"
},
"GivenName": "John",
"FamilyName": "Doe",
"FullyQualifiedName": "Test Consulting",
"CompanyName": "Test Consulting",
"DisplayName": "Test Consulting",
"PrintOnCheckName": "Test Consulting",
"Active": true,
"V4IDPseudonym": "002098a6974364ee434c6fa12125da1d76756e",
"PrimaryPhone": {
"FreeFormNumber": "(650) 555-1423"
},
"PrimaryEmailAddr": {
"Address": "john.doe@example.com"
}
}
]
}

List Invoices

Retrieve a list of all Invoices. | key: listInvoices

InputNotesExample
Fetch All

When true, automatically fetches all pages of results using pagination.

false
Max Results

The maximum number of results to return.

1000
Connection

The QuickBooks connection to use.

Start Position

The starting position to return results from.

1

{
"data": [
{
"TxnDate": "2015-07-24",
"domain": "QBO",
"PrintStatus": "NeedToPrint",
"TotalAmt": 150,
"Line": [
{
"LineNum": 1,
"Amount": 150,
"SalesItemLineDetail": {
"TaxCodeRef": {
"value": "NON"
},
"ItemRef": {
"name": "Services",
"value": "1"
}
},
"Id": "1",
"DetailType": "SalesItemLineDetail"
},
{
"DetailType": "SubTotalLineDetail",
"Amount": 150,
"SubTotalLineDetail": {}
}
],
"DueDate": "2015-08-23",
"ApplyTaxAfterDiscount": false,
"DocNumber": "1070",
"sparse": false,
"ProjectRef": {
"value": "39298034"
},
"Deposit": 0,
"Balance": 150,
"CustomerRef": {
"name": "Amy's Bird Sanctuary",
"value": "1"
},
"TxnTaxDetail": {
"TotalTax": 0
},
"SyncToken": "0",
"LinkedTxn": [],
"ShipAddr": {
"City": "Bayshore",
"Line1": "4581 Finch St.",
"PostalCode": "94326",
"Lat": "INVALID",
"Long": "INVALID",
"CountrySubDivisionCode": "CA",
"Id": "109"
},
"EmailStatus": "NotSet",
"BillAddr": {
"City": "Bayshore",
"Line1": "4581 Finch St.",
"PostalCode": "94326",
"Lat": "INVALID",
"Long": "INVALID",
"CountrySubDivisionCode": "CA",
"Id": "2"
},
"MetaData": {
"CreateTime": "2015-07-24T10:35:08-07:00",
"LastUpdatedTime": "2015-07-24T10:35:08-07:00"
},
"CustomField": [
{
"DefinitionId": "1",
"Type": "StringType",
"Name": "Crew #"
}
],
"Id": "239"
}
]
}

List Purchase Orders

Retrieve a list of all Purchase Orders. | key: listPurchaseOrders

InputNotesExample
Fetch All

When true, automatically fetches all pages of results using pagination.

false
Max Results

The maximum number of results to return.

1000
Connection

The QuickBooks connection to use.

Start Position

The starting position to return results from.

1

{
"data": [
{
"DocNumber": "1007",
"SyncToken": "0",
"domain": "QBO",
"VendorRef": {
"name": "Hicks Hardware",
"value": "41"
},
"TxnDate": "2015-07-28",
"TotalAmt": 25,
"APAccountRef": {
"name": "Accounts Payable (A/P)",
"value": "33"
},
"sparse": false,
"Line": [
{
"DetailType": "ItemBasedExpenseLineDetail",
"Amount": 25,
"ProjectRef": {
"value": "39298034"
},
"Id": "1",
"ItemBasedExpenseLineDetail": {
"ItemRef": {
"name": "Garden Supplies",
"value": "38"
},
"CustomerRef": {
"name": "Cool Cars",
"value": "3"
},
"Qty": 1,
"TaxCodeRef": {
"value": "NON"
},
"BillableStatus": "NotBillable",
"UnitPrice": 25
}
}
],
"CustomField": [
{
"DefinitionId": "1",
"Type": "StringType",
"Name": "Crew #"
},
{
"DefinitionId": "2",
"Type": "StringType",
"Name": "Sales Rep"
}
],
"Id": "259",
"MetaData": {
"CreateTime": "2015-07-28T16:06:03-07:00",
"LastUpdatedTime": "2015-07-28T16:06:03-07:00"
}
}
]
}

List Refund Receipts

Retrieve a list of all Refund Receipts. | key: listRefundReceipts

InputNotesExample
Fetch All

When true, automatically fetches all pages of results using pagination.

false
Max Results

The maximum number of results to return.

1000
Connection

The QuickBooks connection to use.

Start Position

The starting position to return results from.

1

{
"data": [
{
"DocNumber": "1020",
"SyncToken": "0",
"domain": "QBO",
"Balance": 0,
"PaymentMethodRef": {
"name": "Check",
"value": "2"
},
"BillAddr": {
"Line4": "South Orange, NJ 07079",
"Line3": "350 Mountain View Dr.",
"Line2": "Pye's Cakes",
"Line1": "Karen Pye",
"Long": "-74.2609903",
"Lat": "40.7489277",
"Id": "73"
},
"DepositToAccountRef": {
"name": "Checking",
"value": "35"
},
"TxnDate": "2014-09-17",
"TotalAmt": 87.5,
"CustomerRef": {
"name": "Pye's Cakes",
"value": "15"
},
"CustomerMemo": {
"value": "Thank you for your business and have a great day!"
},
"PrintStatus": "NotSet",
"BillEmail": {
"Address": "pyescakes@intuit.com"
},
"sparse": false,
"Line": [
{
"Description": "Refund - Pest control was ineffective",
"DetailType": "SalesItemLineDetail",
"SalesItemLineDetail": {
"TaxCodeRef": {
"value": "NON"
},
"Qty": 2.5,
"UnitPrice": 35,
"ItemRef": {
"name": "Pest Control",
"value": "10"
}
},
"LineNum": 1,
"Amount": 87.5,
"Id": "1"
},
{
"DetailType": "SubTotalLineDetail",
"Amount": 87.5,
"SubTotalLineDetail": {}
}
],
"ApplyTaxAfterDiscount": false,
"CustomField": [
{
"DefinitionId": "1",
"Type": "StringType",
"Name": "Crew #"
}
],
"Id": "66",
"TxnTaxDetail": {
"TotalTax": 0
},
"MetaData": {
"CreateTime": "2014-09-17T15:35:07-07:00",
"LastUpdatedTime": "2014-09-17T15:35:07-07:00"
}
}
]
}

Query Resource

Query a QuickBooks resource using their SQL-like data query language. | key: queryResource

InputNotesExample
API Minor Version

The minor version of the QuickBooks API to use.

75
Query String

Must be a valid query string as defined by the QuickBooks API. Single quotes must be escaped with a backslash.

select * from department
Connection

The QuickBooks connection to use.

This action allows for sending queries to the Query endpoint. Please refer to QuickBooks' documentation for building custom queries.


Raw Request

Send raw HTTP request to QuickBooks. | key: rawRequest

InputNotesExample
Connection

The QuickBooks connection to use.

Data

The HTTP body payload to send to the URL.

{"exampleKey": "Example Data"}
File Data

File Data to be sent as a multipart form upload.

[{key: "example.txt", value: "My File Contents"}]
File Data File Names

File names to apply to the file data inputs. Keys must match the file data keys above.

Form Data

The Form Data to be sent as a multipart form upload.

[{"key": "Example Key", "value": new Buffer("Hello World")}]
Header

A list of headers to send with the request.

User-Agent: curl/7.64.1
Max Retry Count

The maximum number of retries to attempt. Specify 0 for no retries.

0
Method

The HTTP method to use.

Query Parameter

A list of query parameters to send with the request. This is the portion at the end of the URL similar to ?key1=value1&key2=value2.

Response Type

The type of data you expect in the response. You can request json, text, or binary data.

json
Retry On All Errors

If true, retries on all erroneous responses regardless of type. This is helpful when retrying after HTTP 429 or other 3xx or 4xx errors. Otherwise, only retries on HTTP 5xx and network errors.

false
Retry Delay (ms)

The delay in milliseconds between retries. This is used when 'Use Exponential Backoff' is disabled.

0
Timeout

The maximum time that a client will await a response to its request

2000
URL

Input the path only (/invoice), The base URL is already included (https://quickbooks.api.intuit.com/v3/company/1234567890 for production or https://sandbox-quickbooks.api.intuit.com/v3/company/1234567890 for sandbox). For example, to connect to https://quickbooks.api.intuit.com/v3/company/1234567890/invoice, only /invoice is entered in this field.

/invoice
Use Exponential Backoff

Specifies whether to use a pre-defined exponential backoff strategy for retries. When enabled, 'Retry Delay (ms)' is ignored.

false

Read Attachable

Read an attachable object. | key: readAnAttachable

InputNotesExample
Attachable ID

The unique identifier of the attachment.

5000000000001348400
Connection

The QuickBooks connection to use.

API Minor Version

The minor version of the QuickBooks API to use.

75

Send Refund Receipt

Send an existing Refund Receipt to the email saved in QuickBooks. | key: sendRefundReceipt

InputNotesExample
Connection

The QuickBooks connection to use.

Receipt ID

The unique identifier of the receipt.

101

Send Refund Receipt to Email

Send an existing Refund Receipt in QuickBooks to any email. | key: sendRefundReceiptToEmail

InputNotesExample
Email

A valid email address to send the receipt to.

someone@example.com
Connection

The QuickBooks connection to use.

Receipt ID

The unique identifier of the receipt.

101

Update Attachable

Update any of the writable fields of an existing attachable object. | key: updateAttachable

InputNotesExample
Connection

The QuickBooks connection to use.

API Minor Version

The minor version of the QuickBooks API to use.

75
Update Request Body

The request body must include all writable fields of the existing object as returned in a read response. Writable fields omitted from the request body are set to NULL. The ID of the object to update is specified in the request body.


Update Purchase Order

Update an existing Purchase Order. | key: updatePurchaseOrder

InputNotesExample
AP Account ID

The AP account to which the bill is credited.

Base Record

Reference the existing record (from 'Get Resource' or other action) or desired base record. QuickBooks only does full updates and treats unspecified keys as clearing out that field.

Connection

The QuickBooks connection to use.

Dynamic Fields

A field for dynamic inputs that can be configured at deploy time with the use of a key/value config variable.

Optional Values

The names of optional fields and their values to use when creating/updating a record. For example, if you have a custom configured field that is not represented as an input, here you are able to specify its key and assign it a value.

Purchase Order ID

The id of the purchase order to update.

259
Lines

Data representing line items of purchase orders. See 'Line' in QuickBooks' docs at https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/purchaseorder#create-a-purchase-order.

Sync Token

The sync token of the resource, used for optimistic locking to prevent concurrent update conflicts.

Vendor ID

The vendor referenced in this transaction.

{
"data": {
"PurchaseOrder": {
"DocNumber": "1005",
"SyncToken": "0",
"POEmail": {
"Address": "send_email@intuit.com"
},
"APAccountRef": {
"name": "Accounts Payable (A/P)",
"value": "33"
},
"CurrencyRef": {
"name": "United States Dollar",
"value": "USD"
},
"TxnDate": "2015-07-28",
"TotalAmt": 25,
"ShipAddr": {
"Line4": "Half Moon Bay, CA 94213",
"Line3": "65 Ocean Dr.",
"Id": "121",
"Line1": "Grace Pariente",
"Line2": "Cool Cars"
},
"domain": "QBO",
"Id": "257",
"POStatus": "Open",
"sparse": false,
"EmailStatus": "NotSet",
"VendorRef": {
"name": "Hicks Hardware",
"value": "41"
},
"Line": [
{
"DetailType": "ItemBasedExpenseLineDetail",
"Amount": 25,
"Id": "1",
"ItemBasedExpenseLineDetail": {
"ItemRef": {
"name": "Garden Supplies",
"value": "38"
},
"CustomerRef": {
"name": "Cool Cars",
"value": "3"
},
"Qty": 1,
"TaxCodeRef": {
"value": "NON"
},
"BillableStatus": "NotBillable",
"UnitPrice": 25
}
}
],
"CustomField": [
{
"DefinitionId": "1",
"Type": "StringType",
"Name": "Crew #"
},
{
"DefinitionId": "2",
"Type": "StringType",
"Name": "Sales Rep"
}
],
"VendorAddr": {
"Line4": "Middlefield, CA 94303",
"Line3": "42 Main St.",
"Id": "120",
"Line1": "Geoff Hicks",
"Line2": "Hicks Hardware"
},
"MetaData": {
"CreateTime": "2015-07-28T16:01:47-07:00",
"LastUpdatedTime": "2015-07-28T16:01:47-07:00"
}
},
"time": "2015-07-28T16:04:49.874-07:00"
}
}

Update Refund Receipt

Update the contents of an existing Refund Receipt in QuickBooks. | key: updateRefundReceipt

InputNotesExample
Billing Address ID

The unique identifier of the billing address.

78
Custom Fields

A JSON array of custom field objects. Each object requires DefinitionId (the custom field ID), Type (e.g., "StringType"), and Name (the field label). Leave empty if no custom fields are needed.

Optional Values

The names of optional fields and their values to use when creating/updating a record. For example, if you have a custom configured field that is not represented as an input, here you are able to specify its key and assign it a value.

Billing Latitude

The latitude of the billing address.

40.7489277
Billing Line 1

Line 1 of the billing address.

Karen Pye
Billing Line 2

Line 2 of the billing address.

Pye's Cakes
Billing Line 3

Line 3 of the billing address.

350 Mountain View Dr.
Billing Line 4

Line 4 of the billing address.

South Orange, NJ 07079
Line Items

A JSON array of line item objects. Each line item requires a DetailType, Amount, and a detail object matching the type. The most common type is "SalesItemLineDetail" with ItemRef (value is the item ID), Qty, and UnitPrice. Add multiple objects to the array for multiple line items. See QuickBooks documentation for all supported line types.

Billing Longitude

The longitude of the billing address.

-74.2609903
Connection

The QuickBooks connection to use.

Receipt ID

The unique identifier of the receipt.

101
Sync Token

The sync token of the resource, used for optimistic locking to prevent concurrent update conflicts.

Total Amount

The total amount on the receipt.

150

Update Resource

Update a resource in QuickBooks. | key: updateResource

InputNotesExample
Connection

The QuickBooks connection to use.

Resource Attributes

A list of attributes used to create a resource in QuickBooks. For more information refer to https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/customer.

Resource Data

A full map of the resource data to create or update.

Resource ID

The primary ID of a resource in QuickBooks.

Resource Type

The type of QuickBooks resource to operate on.

Sync Token

The sync token of the resource, used for optimistic locking to prevent concurrent update conflicts.


Upload Attachment

Upload an attachment to an object. | key: uploadAttachment

InputNotesExample
Connection

The QuickBooks connection to use.

Entity Reference Type

Object reference to which this attachment is linked. Set this value with the specific type of the target object.

Invoice
Entity Reference Value

Object reference to which this attachment is linked. Set this value with the ID of the target object as returned in its response body when queried.

95
File

File to attach. This should be a reference to a previous step.

File Name

The file name of the attachment.

receipt_nov15.jpg
File Type

The file type of the attachment.

Include on Send

Used when Entity Reference Type references a transaction object. This field indicates whether or not the attachment is sent with the transaction when Save and Send button is clicked in the QuickBooks UI or when the Send endpoint is invoked for the object.

false
API Minor Version

The minor version of the QuickBooks API to use.

75
Note

The note is either related to the attachment specified with the FileName attribute, or as a standalone note. Required for note attachments.


Void Invoice

Void an Invoice. | key: voidInvoice

InputNotesExample
Invoice ID

The id of the invoice to void.

259
Connection

The QuickBooks connection to use.

Sync Token

The sync token of the resource, used for optimistic locking to prevent concurrent update conflicts.


Changelog

2026-03-31

Added Create Invoice action with structured field inputs and Select Term data source. Renamed existing action to Create Invoice (JSON).

2026-02-27

Added inline data source for attachments to enable dynamic dropdown selection

2026-02-19

Added webhook trigger that automatically detects and normalizes both CloudEvents and legacy QuickBooks webhook formats. Supports Customer, Invoice, and all other QuickBooks entity changes

2026-01-07

Fixed iconURL for OAuth Connect buttons in Embedded Workflow Builder

2024-11-15

Added Non-Inventory Item action

2024-10-15

Improved error handling to include full error data

2024-09-17

Added JSON support in key-value pair values for Create Resource and Update Resource actions

2024-07-22

Fixed Raw Request URL and Realm ID handling

2024-05-31

Added Batch Request action for batch operations

2024-03-01

Enhanced Create Invoice action with additional fields