QuickBooks Online
Manage QuickBooks Online financial data with PDF download support
Overview
The QuickBooks Online tool provides CRUD operations against the QuickBooks Online Accounting API v3. Supports 10 resources: (1) Bill — create, delete, get, getAll, update. (2) Customer — create, get, getAll, update. (3) Employee — create, get, getAll, update. (4) Estimate — create, delete, get (with optional PDF download), getAll, send, update. (5) Invoice — create, delete, get (with optional PDF download), getAll, send, update, void. (6) Item — get, getAll (read-only). (7) Payment — create, delete, get (with optional PDF download), getAll, send, update, void. (8) Purchase — get, getAll (read-only). (9) Transaction — getReport (with filters and simplification). (10) Vendor — create, get, getAll, update. Binary operations: Invoice, Estimate, and Payment support PDF download via the /pdf endpoint, storing the PDF in the binary store. Uses OAuth2 Bearer token authentication with automatic token refresh.
Category: Finance
Tool Name: quickbooks
Version: 1
Appearance: Icon: lucide-Receipt | Color: #2CA01C
Node Type
Action (Binary) — handles file/binary data operations
This node is not listed in the node panel — a workflow that already contains it still runs.
| Direction | Port(s) |
|---|
| Input | Input |
| Output | Output, Error |
Credentials
This tool requires QuickBooks OAuth2 credentials.
See the Credentials Guide for setup instructions.
Resources
| Resource | Value |
|---|
| Bill | bill |
| Customer | customer |
| Employee | employee |
| Estimate | estimate |
| Invoice | invoice |
| Item | item |
| Payment | payment |
| Purchase | purchase |
| Transaction | transaction |
| Vendor | vendor |
Operations
Each resource has its own Operation list, and most resources reuse the same operation values (create, get, getAll, update). Pick the resource first, then the operation.
| Resource | Operation | Value | Description |
|---|
| Bill | Create | create | Create a bill |
| Bill | Delete | delete | Delete a bill |
| Bill | Get | get | Get a bill |
| Bill | Get Many | getAll | Get many bills |
| Bill | Update | update | Update a bill |
| Customer | Create | create | Create a customer |
| Customer | Get | get | Get a customer |
| Customer | Get Many | getAll | Get many customers |
| Customer | Update | update | Update a customer |
| Employee | Create | create | Create an employee |
| Employee | Get | get | Get an employee |
| Employee | Get Many | getAll | Get many employees |
| Employee | Update | update | Update an employee |
| Estimate | Create | create | Create an estimate |
| Estimate | Delete | delete | Delete an estimate |
| Estimate | Get | get | Get an estimate |
| Estimate | Get Many | getAll | Get many estimates |
| Estimate | Send | send | Send an estimate |
| Estimate | Update | update | Update an estimate |
| Invoice | Create | create | Create an invoice |
| Invoice | Delete | delete | Delete an invoice |
| Invoice | Get | get | Get an invoice |
| Invoice | Get Many | getAll | Get many invoices |
| Invoice | Send | send | Send an invoice |
| Invoice | Update | update | Update an invoice |
| Invoice | Void | void | Void an invoice |
| Item | Get | get | Get an item |
| Item | Get Many | getAll | Get many items |
| Payment | Create | create | Create a payment |
| Payment | Delete | delete | Delete a payment |
| Payment | Get | get | Get a payment |
| Payment | Get Many | getAll | Get many payments |
| Payment | Send | send | Send a payment |
| Payment | Update | update | Update a payment |
| Payment | Void | void | Void a payment |
| Purchase | Get | get | Get a purchase |
| Purchase | Get Many | getAll | Get many purchases |
| Transaction | Get Report | getReport | Get a transaction report |
| Vendor | Create | create | Create a vendor |
| Vendor | Get | get | Get a vendor |
| Vendor | Get Many | getAll | Get many vendors |
| Vendor | Update | update | Update a vendor |
Parameters
All fields accept expressions, so IDs and amounts can come from the incoming item ({{ $json.invoiceId }}).
Watch the two “Customer ID” and two “Vendor ID” fields: on a create they name the entity being referenced (CustomerRef, VendorRef), while on a get or update they name the entity being addressed (customerId, vendorId). Both pairs are shown with their internal names below because a JSON configuration must use the right one.
Every update operation requires at least one field inside Update Fields; an empty collection fails the item with a message rather than sending an empty request.
Bill: Create
| Parameter | Type | Required | Default | Description |
|---|
Vendor ID (VendorRef) | string | Yes | — | The ID of the vendor who the bill is for. Obtain from vendor:getAll. |
Line Items (Line) | json | No | [] | JSON array of line items. Each line: { “DetailType”: “AccountBasedExpenseLineDetail”|“ItemBasedExpenseLineDetail”, “Amount”: 100, “Description”: “desc”, “accountId”: “1” (for account) or “itemId”: “1” (for item) }. |
| Additional Fields | collection | No | {} | Optional bill properties. |
| — AP Account Ref (ID) | string | No | — | ID of the accounts payable account. |
| — Department Ref (ID) | string | No | — | ID of the department. |
| — Due Date | string | No | — | Due date (YYYY-MM-DD). |
| — Sales Term Ref (ID) | string | No | — | ID of the sales term. |
| — Global Tax Calculation | options | No | TaxExcluded | How tax is applied to the bill total. |
| | | | Options: TaxExcluded, TaxInclusive, NotApplicable |
Bill: Get
| Parameter | Type | Required | Default | Description |
|---|
| Bill ID | string | Yes | — | The ID of the bill to retrieve. |
Bill: Get Many
| Parameter | Type | Required | Default | Description |
|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 50 | Max number of results to return. (shown when Return All is false) |
| Filters | collection | No | {} | Narrow the result set. |
| — Query | string | No | — | Additional WHERE clause for the query. See QuickBooks data queries documentation. |
Bill: Update
| Parameter | Type | Required | Default | Description |
|---|
| Bill ID | string | Yes | — | The ID of the bill to update. |
| Update Fields | collection | Yes | {} | Bill properties to change. Add at least one. |
| — AP Account Ref (ID) | string | No | — | ID of the accounts payable account. |
| — Department Ref (ID) | string | No | — | ID of the department. |
| — Due Date | string | No | — | Due date (YYYY-MM-DD). |
| — Sales Term Ref (ID) | string | No | — | ID of the sales term. |
Bill: Delete
| Parameter | Type | Required | Default | Description |
|---|
| Bill ID | string | Yes | — | The ID of the bill to delete. |
Customer: Create
| Parameter | Type | Required | Default | Description |
|---|
Display Name (displayName) | string | Yes | — | The display name of the customer. |
| Additional Fields | collection | No | {} | Optional customer properties. |
| — Company Name | string | No | — | The customer’s company name. |
| — Family Name | string | No | — | The customer’s family name. |
| — Given Name | string | No | — | The customer’s given name. |
| — Middle Name | string | No | — | The customer’s middle name. |
| — Primary Email | string | No | — | Email address. |
| — Primary Phone | string | No | — | Phone number. |
| — Billing Address (JSON) | json | No | {} | JSON object: { “Line1”: ”…”, “City”: ”…”, “CountrySubDivisionCode”: ”…”, “PostalCode”: ”…” }. |
Customer: Get
| Parameter | Type | Required | Default | Description |
|---|
Customer ID (customerId) | string | Yes | — | The ID of the customer to retrieve. |
Customer: Get Many
| Parameter | Type | Required | Default | Description |
|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 50 | Max number of results to return. (shown when Return All is false) |
| Filters | collection | No | {} | Narrow the result set. |
| — Query | string | No | — | Additional WHERE clause for the query. See QuickBooks data queries documentation. |
Customer: Update
| Parameter | Type | Required | Default | Description |
|---|
Customer ID (customerId) | string | Yes | — | The ID of the customer to update. |
| Update Fields | collection | Yes | {} | Customer properties to change. Add at least one. |
| — Company Name | string | No | — | The customer’s company name. |
— Display Name (DisplayName) | string | No | — | The display name of the customer. |
| — Family Name | string | No | — | The customer’s family name. |
| — Given Name | string | No | — | The customer’s given name. |
| — Middle Name | string | No | — | The customer’s middle name. |
| — Primary Email | string | No | — | Email address. |
| — Primary Phone | string | No | — | Phone number. |
| — Billing Address (JSON) | json | No | {} | Billing address as a JSON object. |
Employee: Create
| Parameter | Type | Required | Default | Description |
|---|
| Family Name | string | Yes | — | The employee’s family name. |
| Given Name | string | Yes | — | The employee’s given name. |
| Additional Fields | collection | No | {} | Optional employee properties. |
| — Primary Email | string | No | — | Email address. |
| — Primary Phone | string | No | — | Phone number. |
| — SSN | string | No | — | The employee’s social security number. |
| — Birth Date | string | No | — | YYYY-MM-DD |
| — Billing Address (JSON) | json | No | {} | Address as a JSON object. |
Employee: Get
| Parameter | Type | Required | Default | Description |
|---|
| Employee ID | string | Yes | — | The ID of the employee to retrieve. |
Employee: Get Many
| Parameter | Type | Required | Default | Description |
|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 50 | Max number of results to return. (shown when Return All is false) |
| Filters | collection | No | {} | Narrow the result set. |
| — Query | string | No | — | Additional WHERE clause for the query. See QuickBooks data queries documentation. |
Employee: Update
| Parameter | Type | Required | Default | Description |
|---|
| Employee ID | string | Yes | — | The ID of the employee to update. |
| Update Fields | collection | Yes | {} | Employee properties to change. Add at least one. |
| — Family Name | string | No | — | The employee’s family name. |
| — Given Name | string | No | — | The employee’s given name. |
| — Primary Email | string | No | — | Email address. |
| — Primary Phone | string | No | — | Phone number. |
| — Billing Address (JSON) | json | No | {} | Address as a JSON object. |
Estimate: Create
| Parameter | Type | Required | Default | Description |
|---|
Customer ID (CustomerRef) | string | Yes | — | The ID of the customer the estimate is for. |
Line Items (Line) | json | No | [] | JSON array of line items. Each line: { “DetailType”: “SalesItemLineDetail”, “Amount”: 100, “Description”: “desc”, “itemId”: “1”, “TaxCodeRef”: “TAX” }. |
| Additional Fields | collection | No | {} | Optional estimate properties. |
| — Bill Email | string | No | — | Email address the estimate is billed to. |
| — Customer Memo | string | No | — | Memo shown to the customer. |
| — Expiration Date | string | No | — | YYYY-MM-DD |
| — Total Tax | number | No | 0 | Total tax on the estimate. |
| — Billing Address (JSON) | json | No | {} | Billing address as a JSON object. |
| — Shipping Address (JSON) | json | No | {} | Shipping address as a JSON object. |
Estimate: Get
| Parameter | Type | Required | Default | Description |
|---|
| Estimate ID | string | Yes | — | The ID of the estimate to retrieve. |
| Download | boolean | Yes | false | Whether to download the estimate as a PDF file. |
| Binary Property | string | Yes | data | Name of the output binary property to put the PDF file in. Names are case-sensitive — see the upstream node’s Binary Data panel for the exact names to use. (shown when Download is true) |
| File Name | string | Yes | — | Name of the downloaded PDF file. (shown when Download is true) |
Estimate: Get Many
| Parameter | Type | Required | Default | Description |
|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 50 | Max number of results to return. (shown when Return All is false) |
| Filters | collection | No | {} | Narrow the result set. |
| — Query | string | No | — | Additional WHERE clause for the query. See QuickBooks data queries documentation. |
Estimate: Send
| Parameter | Type | Required | Default | Description |
|---|
| Estimate ID | string | Yes | — | The ID of the estimate to send. |
| Email | string | Yes | — | Email address of the recipient. |
Estimate: Update
| Parameter | Type | Required | Default | Description |
|---|
| Estimate ID | string | Yes | — | The ID of the estimate to update. |
| Update Fields | collection | Yes | {} | Estimate properties to change. Add at least one. |
| — Bill Email | string | No | — | Email address the estimate is billed to. |
| — Customer Memo | string | No | — | Memo shown to the customer. |
| — Expiration Date | string | No | — | YYYY-MM-DD |
| — Billing Address (JSON) | json | No | {} | Billing address as a JSON object. |
| — Shipping Address (JSON) | json | No | {} | Shipping address as a JSON object. |
Estimate: Delete
| Parameter | Type | Required | Default | Description |
|---|
| Estimate ID | string | Yes | — | The ID of the estimate to delete. |
Invoice: Create
| Parameter | Type | Required | Default | Description |
|---|
Customer ID (CustomerRef) | string | Yes | — | The ID of the customer the invoice is for. |
Line Items (Line) | json | No | [] | JSON array of line items. Each line: { “DetailType”: “SalesItemLineDetail”, “Amount”: 100, “Description”: “desc”, “itemId”: “1”, “TaxCodeRef”: “TAX”, “Qty”: 2 }. |
| Additional Fields | collection | No | {} | Optional invoice properties. |
| — Bill Email | string | No | — | Email address the invoice is billed to. |
| — Customer Memo | string | No | — | Memo shown to the customer. |
| — Due Date | string | No | — | YYYY-MM-DD |
| — Total Tax | number | No | 0 | Total tax on the invoice. |
| — Billing Address (JSON) | json | No | {} | Billing address as a JSON object. |
| — Shipping Address (JSON) | json | No | {} | Shipping address as a JSON object. |
Invoice: Get
| Parameter | Type | Required | Default | Description |
|---|
| Invoice ID | string | Yes | — | The ID of the invoice to retrieve. |
| Download | boolean | Yes | false | Whether to download the invoice as a PDF file. |
| Binary Property | string | Yes | data | Name of the output binary property to put the PDF file in. Names are case-sensitive — see the upstream node’s Binary Data panel for the exact names to use. (shown when Download is true) |
| File Name | string | Yes | — | Name of the downloaded PDF file. (shown when Download is true) |
Invoice: Get Many
| Parameter | Type | Required | Default | Description |
|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 50 | Max number of results to return. (shown when Return All is false) |
| Filters | collection | No | {} | Narrow the result set. |
| — Query | string | No | — | Additional WHERE clause for the query. See QuickBooks data queries documentation. |
Invoice: Send
| Parameter | Type | Required | Default | Description |
|---|
| Invoice ID | string | Yes | — | The ID of the invoice to send. |
| Email | string | Yes | — | Email address of the recipient. |
Invoice: Update
| Parameter | Type | Required | Default | Description |
|---|
| Invoice ID | string | Yes | — | The ID of the invoice to update. |
| Update Fields | collection | Yes | {} | Invoice properties to change. Add at least one. |
| — Bill Email | string | No | — | Email address the invoice is billed to. |
| — Customer Memo | string | No | — | Memo shown to the customer. |
| — Due Date | string | No | — | YYYY-MM-DD |
| — Billing Address (JSON) | json | No | {} | Billing address as a JSON object. |
| — Shipping Address (JSON) | json | No | {} | Shipping address as a JSON object. |
Invoice: Void
| Parameter | Type | Required | Default | Description |
|---|
| Invoice ID | string | Yes | — | The ID of the invoice to void. |
Invoice: Delete
| Parameter | Type | Required | Default | Description |
|---|
| Invoice ID | string | Yes | — | The ID of the invoice to delete. |
Item: Get
| Parameter | Type | Required | Default | Description |
|---|
| Item ID | string | Yes | — | The ID of the item to retrieve. |
Item: Get Many
| Parameter | Type | Required | Default | Description |
|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 50 | Max number of results to return. (shown when Return All is false) |
| Filters | collection | No | {} | Narrow the result set. |
| — Query | string | No | — | Additional WHERE clause for the query. See QuickBooks data queries documentation. |
Payment: Create
| Parameter | Type | Required | Default | Description |
|---|
Customer ID (CustomerRef) | string | Yes | — | The ID of the customer the payment is from. |
| Total Amount | number | No | 0 | Total amount of the payment. |
| Additional Fields | collection | No | {} | Optional payment properties. |
| — Payment Method Ref (ID) | string | No | — | ID of the payment method. |
| — Deposit To Account Ref (ID) | string | No | — | ID of the account the payment is deposited to. |
Payment: Get
| Parameter | Type | Required | Default | Description |
|---|
| Payment ID | string | Yes | — | The ID of the payment to retrieve. |
| Download | boolean | Yes | false | Whether to download the payment receipt as a PDF file. |
| Binary Property | string | Yes | data | Name of the output binary property to put the PDF file in. Names are case-sensitive — see the upstream node’s Binary Data panel for the exact names to use. (shown when Download is true) |
| File Name | string | Yes | — | Name of the downloaded PDF file. (shown when Download is true) |
Payment: Get Many
| Parameter | Type | Required | Default | Description |
|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 50 | Max number of results to return. (shown when Return All is false) |
| Filters | collection | No | {} | Narrow the result set. |
| — Query | string | No | — | Additional WHERE clause for the query. See QuickBooks data queries documentation. |
Payment: Send
| Parameter | Type | Required | Default | Description |
|---|
| Payment ID | string | Yes | — | The ID of the payment to send. |
| Email | string | Yes | — | Email address of the recipient. |
Payment: Update
| Parameter | Type | Required | Default | Description |
|---|
| Payment ID | string | Yes | — | The ID of the payment to update. |
| Update Fields | collection | Yes | {} | Payment properties to change. Add at least one. |
| — Payment Method Ref (ID) | string | No | — | ID of the payment method. |
| — Deposit To Account Ref (ID) | string | No | — | ID of the account the payment is deposited to. |
Payment: Void
| Parameter | Type | Required | Default | Description |
|---|
| Payment ID | string | Yes | — | The ID of the payment to void. |
Payment: Delete
| Parameter | Type | Required | Default | Description |
|---|
| Payment ID | string | Yes | — | The ID of the payment to delete. |
Purchase: Get
| Parameter | Type | Required | Default | Description |
|---|
| Purchase ID | string | Yes | — | The ID of the purchase to retrieve. |
Purchase: Get Many
| Parameter | Type | Required | Default | Description |
|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 50 | Max number of results to return. (shown when Return All is false) |
| Filters | collection | No | {} | Narrow the result set. |
| — Query | string | No | — | Additional WHERE clause for the query. See QuickBooks data queries documentation. |
Transaction: Get Report
| Parameter | Type | Required | Default | Description |
|---|
Simplify (simple) | boolean | No | true | Whether to return a simplified version of the report (flat objects) instead of the raw response. |
| Filters | collection | No | {} | Report scope, grouping and sorting. |
— Accounts Payable Paid (appaid) | options | No | All | Restrict to paid or unpaid accounts payable. |
| | | | Options: All, Paid, Unpaid |
— Accounts Receivable Paid (arpaid) | options | No | All | Restrict to paid or unpaid accounts receivable. |
| | | | Options: All, Paid, Unpaid |
— Cleared Status (cleared) | options | No | Reconciled | Restrict to transactions in this cleared state. |
| | | | Options: Cleared, Uncleared, Reconciled, Deposited |
| — Columns | string | No | — | Comma-separated list of columns to return. |
— Customer IDs (customer) | string | No | — | Comma-separated customer IDs to filter by. |
— Date Range (Predefined) (date_macro) | options | No | This Month | A named date range, used instead of Start Date and End Date. |
| | | | Options: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date |
— Start Date (start_date) | string | No | — | Start date for custom range (YYYY-MM-DD). |
— End Date (end_date) | string | No | — | End date for custom range (YYYY-MM-DD). |
— Document Number (docnum) | string | No | — | Restrict to one document number. |
— Group By (group_by) | options | No | Account | How report rows are grouped. |
| | | | Options: Account, Customer, Day, Department, Employee, Location, Month, Name, None, Payment Method, Product/Service, Quarter, Transaction Type, Vendor, Week, Year |
— Memo IDs (memo) | string | No | — | Comma-separated memo IDs. |
— Payment Method (payment_Method) | string | No | — | Restrict to one payment method. |
— Printed Status (printed) | options | No | Printed | Restrict to printed or to-be-printed transactions. |
| | | | Options: Printed, To_be_printed |
— Sort By (sort_by) | string | No | — | Column to sort results by. |
— Sort Order (sort_order) | options | No | Ascend | Sort direction. |
| | | | Options: Ascend, Descend |
— Transaction Amount (bothamount) | number | No | 0 | Restrict to transactions of this amount. |
— Transaction Type (transaction_type) | string | No | — | Transaction type filter (e.g. CreditCardCharge, Invoice, Bill). |
— Vendor IDs (vendor) | string | No | — | Comma-separated vendor IDs. |
Vendor: Create
| Parameter | Type | Required | Default | Description |
|---|
Display Name (displayName) | string | Yes | — | The display name of the vendor. |
| Additional Fields | collection | No | {} | Optional vendor properties. |
| — Company Name | string | No | — | The vendor’s company name. |
| — Family Name | string | No | — | The vendor’s family name. |
| — Given Name | string | No | — | The vendor’s given name. |
| — Primary Email | string | No | — | Email address. |
| — Primary Phone | string | No | — | Phone number. |
| — Billing Address (JSON) | json | No | {} | Address as a JSON object. |
Vendor: Get
| Parameter | Type | Required | Default | Description |
|---|
Vendor ID (vendorId) | string | Yes | — | The ID of the vendor to retrieve. |
Vendor: Get Many
| Parameter | Type | Required | Default | Description |
|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 50 | Max number of results to return. (shown when Return All is false) |
| Filters | collection | No | {} | Narrow the result set. |
| — Query | string | No | — | Additional WHERE clause for the query. See QuickBooks data queries documentation. |
Vendor: Update
| Parameter | Type | Required | Default | Description |
|---|
Vendor ID (vendorId) | string | Yes | — | The ID of the vendor to update. |
| Update Fields | collection | Yes | {} | Vendor properties to change. Add at least one. |
| — Company Name | string | No | — | The vendor’s company name. |
— Display Name (DisplayName) | string | No | — | The display name of the vendor. |
| — Family Name | string | No | — | The vendor’s family name. |
| — Given Name | string | No | — | The vendor’s given name. |
| — Primary Email | string | No | — | Email address. |
| — Primary Phone | string | No | — | Phone number. |
| — Billing Address (JSON) | json | No | {} | Address as a JSON object. |
All Operations
| Parameter | Type | Required | Default | Description |
|---|
| QuickBooks Account | credential | No | — | Connect your QuickBooks account via OAuth2. |
| Max Concurrency | number | No | 10 | Maximum number of items to process concurrently. |
Output Data
Unlike most connectors, this node replaces the output item’s JSON with the QuickBooks record — fields from the input item are not carried through. Read the input’s own values upstream, or re-attach them with a Merge or Edit Fields node afterwards. Binary data on the input item is forwarded.
| Operations | Output |
|---|
| Every Get Many, and Transaction Get Report | One output item per record, each item’s JSON replaced by that record. A result with no records produces a single item carrying the input JSON plus an empty results array. |
| Create, Get, Update, Send, Void and Delete on every resource | One output item carrying the QuickBooks entity, already unwrapped from its API envelope so its fields sit at the top level rather than under Invoice or Customer. |
| Invoice / Estimate / Payment Get with Download on | One output item carrying the download summary below, with the PDF attached as binary under the Binary Property name. Any binary already on the input item is kept alongside it. |
An invoice arrives like this:
{
"Id": "130",
"SyncToken": "0",
"DocNumber": "1070",
"TxnDate": "2026-01-15",
"CustomerRef": { "value": "24", "name": "Acme Corp" },
"Line": [
{
"Id": "1",
"LineNum": 1,
"Amount": 150.00,
"DetailType": "SalesItemLineDetail",
"SalesItemLineDetail": { "ItemRef": { "value": "1", "name": "Services" } }
}
],
"TotalAmt": 150.00,
"Balance": 150.00,
"DueDate": "2026-02-14",
"MetaData": { "CreateTime": "2026-01-15T09:12:04-08:00" }
}
A PDF download produces this JSON instead of the entity:
{
"invoiceId": "130",
"downloaded": true,
"fileSize": 43219,
"fileName": "invoice.pdf"
}
The key is named after the resource — invoiceId, estimateId or paymentId. The attached file carries the application/pdf MIME type, so a downstream email or upload node can send it as-is. Leave File Name blank and the node names the file after the record, for example invoice_130.pdf.
Delete and Void return the updated entity, not a bare confirmation. Both come back as the record in its final state, so check the entity’s own fields rather than looking for a success flag.
Transaction: Get Report with Simplify on returns one flat object per report row, keyed by the report’s own column types. Turn Simplify off to get the raw report — a single item holding Columns and the nested Rows structure — when you need subtotals or group headers.
Usage Examples
- Create a new invoice in QuickBooks
- Download an invoice as PDF
- Get all customers from QuickBooks
- Update a vendor record
- Void a payment
- Send an estimate to a customer by email
- Get a transaction report for this month
Example Configuration
Create an invoice with a single service line:
{
"type": "quickbooks",
"parameters": {
"resource": "invoice",
"operation": "create",
"CustomerRef": "{{ $json.customerId }}",
"Line": "[{\"DetailType\":\"SalesItemLineDetail\",\"Amount\":150,\"Description\":\"Consulting\",\"itemId\":\"1\",\"TaxCodeRef\":\"TAX\",\"Qty\":2}]",
"additionalFields": {
"BillEmail": "{{ $json.email }}",
"CustomerMemo": "Thank you for your business",
"DueDate": "2026-02-14"
}
}
}
Download that invoice as a PDF for a downstream email node:
{
"type": "quickbooks",
"parameters": {
"resource": "invoice",
"operation": "get",
"invoiceId": "{{ $json.Id }}",
"download": true,
"binaryPropertyName": "invoicePdf",
"fileName": "invoice-{{ $json.DocNumber }}.pdf"
}
}
Email the invoice from QuickBooks itself instead:
{
"type": "quickbooks",
"parameters": {
"resource": "invoice",
"operation": "send",
"invoiceId": "130",
"email": "billing@example.com"
}
}
Void an invoice without deleting it:
{
"type": "quickbooks",
"parameters": {
"resource": "invoice",
"operation": "void",
"invoiceId": "130"
}
}
List customers changed since a date, one item each:
{
"type": "quickbooks",
"parameters": {
"resource": "customer",
"operation": "getAll",
"returnAll": false,
"limit": 100,
"filters": {
"query": "WHERE Metadata.LastUpdatedTime > '2026-01-01'"
}
}
}
Create a customer:
{
"type": "quickbooks",
"parameters": {
"resource": "customer",
"operation": "create",
"displayName": "Acme Corp",
"additionalFields": {
"CompanyName": "Acme Corporation",
"PrimaryEmailAddr": "ap@acme.example",
"PrimaryPhone": "+14155551234",
"BillAddr": "{\"Line1\":\"123 Main St\",\"City\":\"San Francisco\",\"CountrySubDivisionCode\":\"CA\",\"PostalCode\":\"94105\"}"
}
}
}
Update a vendor’s contact details:
{
"type": "quickbooks",
"parameters": {
"resource": "vendor",
"operation": "update",
"vendorId": "56",
"updateFields": {
"PrimaryEmailAddr": "accounts@supplier.example",
"PrimaryPhone": "+14155559876"
}
}
}
Record a bill against a vendor:
{
"type": "quickbooks",
"parameters": {
"resource": "bill",
"operation": "create",
"VendorRef": "56",
"Line": "[{\"DetailType\":\"AccountBasedExpenseLineDetail\",\"Amount\":420,\"Description\":\"Office supplies\",\"accountId\":\"7\"}]",
"additionalFields": {
"DueDate": "2026-02-28",
"GlobalTaxCalculation": "TaxExcluded"
}
}
}
Record a customer payment:
{
"type": "quickbooks",
"parameters": {
"resource": "payment",
"operation": "create",
"CustomerRef": "24",
"TotalAmt": 150,
"additionalFields": {
"PaymentMethodRef": "3",
"DepositToAccountRef": "35"
}
}
}
Send an estimate for approval:
{
"type": "quickbooks",
"parameters": {
"resource": "estimate",
"operation": "send",
"estimateId": "97",
"email": "buyer@example.com"
}
}
Pull a grouped transaction report for the month, one item per row:
{
"type": "quickbooks",
"parameters": {
"resource": "transaction",
"operation": "getReport",
"simple": true,
"filters": {
"date_macro": "This Month",
"group_by": "Customer",
"sort_order": "Descend",
"arpaid": "Unpaid"
}
}
}
Report on a custom date range instead:
{
"type": "quickbooks",
"parameters": {
"resource": "transaction",
"operation": "getReport",
"simple": true,
"filters": {
"start_date": "2026-01-01",
"end_date": "2026-03-31",
"group_by": "Month",
"columns": "tx_date,txn_type,name,subt_nat_amount"
}
}
}
Error Handling
| Mode | Behavior |
|---|
| stop | Halts workflow on first error |
| continue | Skips failed items, passes successful ones through |
| errorPort | Routes failed items to Error output port |
Tips
Manage QuickBooks Online financial data — CRUD for bills, customers, invoices, estimates, payments, vendors, with PDF download support.