Reference · Tools

QuickBooks Online

Manage financial data in QuickBooks Online including bills, customers, employees, estimates, invoices, items, payments, purchases, transactions, and vendors. Supports PDF download for invoices, estimates, and payments.

Action (binary) Finance v1 Binary data

The QuickBooks Online node manages financial records — bills, customers, employees, estimates, invoices, items, payments, purchases, transactions and vendors — and can download invoices, estimates and payments as PDFs. A typical build is raising an invoice when work is marked complete and emailing the PDF to the client.

Node type
Action (binary)
Parameters
81
Outputs
Output, Error
Credentials
QuickBooks OAuth2

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.

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires QuickBooks OAuth2 credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Billbill
Customercustomer
Employeeemployee
Estimateestimate
Invoiceinvoice
Itemitem
Paymentpayment
Purchasepurchase
Transactiontransaction
Vendorvendor

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.

ResourceOperationValueDescription
BillCreatecreateCreate a bill
BillDeletedeleteDelete a bill
BillGetgetGet a bill
BillGet ManygetAllGet many bills
BillUpdateupdateUpdate a bill
CustomerCreatecreateCreate a customer
CustomerGetgetGet a customer
CustomerGet ManygetAllGet many customers
CustomerUpdateupdateUpdate a customer
EmployeeCreatecreateCreate an employee
EmployeeGetgetGet an employee
EmployeeGet ManygetAllGet many employees
EmployeeUpdateupdateUpdate an employee
EstimateCreatecreateCreate an estimate
EstimateDeletedeleteDelete an estimate
EstimateGetgetGet an estimate
EstimateGet ManygetAllGet many estimates
EstimateSendsendSend an estimate
EstimateUpdateupdateUpdate an estimate
InvoiceCreatecreateCreate an invoice
InvoiceDeletedeleteDelete an invoice
InvoiceGetgetGet an invoice
InvoiceGet ManygetAllGet many invoices
InvoiceSendsendSend an invoice
InvoiceUpdateupdateUpdate an invoice
InvoiceVoidvoidVoid an invoice
ItemGetgetGet an item
ItemGet ManygetAllGet many items
PaymentCreatecreateCreate a payment
PaymentDeletedeleteDelete a payment
PaymentGetgetGet a payment
PaymentGet ManygetAllGet many payments
PaymentSendsendSend a payment
PaymentUpdateupdateUpdate a payment
PaymentVoidvoidVoid a payment
PurchaseGetgetGet a purchase
PurchaseGet ManygetAllGet many purchases
TransactionGet ReportgetReportGet a transaction report
VendorCreatecreateCreate a vendor
VendorGetgetGet a vendor
VendorGet ManygetAllGet many vendors
VendorUpdateupdateUpdate 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

ParameterTypeRequiredDefaultDescription
Vendor ID (VendorRef)stringYesThe ID of the vendor who the bill is for. Obtain from vendor:getAll.
Line Items (Line)jsonNo[]JSON array of line items. Each line: { “DetailType”: “AccountBasedExpenseLineDetail”|“ItemBasedExpenseLineDetail”, “Amount”: 100, “Description”: “desc”, “accountId”: “1” (for account) or “itemId”: “1” (for item) }.
Additional FieldscollectionNo{}Optional bill properties.
— AP Account Ref (ID)stringNoID of the accounts payable account.
— Department Ref (ID)stringNoID of the department.
— Due DatestringNoDue date (YYYY-MM-DD).
— Sales Term Ref (ID)stringNoID of the sales term.
— Global Tax CalculationoptionsNoTaxExcludedHow tax is applied to the bill total.
Options: TaxExcluded, TaxInclusive, NotApplicable

Bill: Get

ParameterTypeRequiredDefaultDescription
Bill IDstringYesThe ID of the bill to retrieve.

Bill: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)
FilterscollectionNo{}Narrow the result set.
— QuerystringNoAdditional WHERE clause for the query. See QuickBooks data queries documentation.

Bill: Update

ParameterTypeRequiredDefaultDescription
Bill IDstringYesThe ID of the bill to update.
Update FieldscollectionYes{}Bill properties to change. Add at least one.
— AP Account Ref (ID)stringNoID of the accounts payable account.
— Department Ref (ID)stringNoID of the department.
— Due DatestringNoDue date (YYYY-MM-DD).
— Sales Term Ref (ID)stringNoID of the sales term.

Bill: Delete

ParameterTypeRequiredDefaultDescription
Bill IDstringYesThe ID of the bill to delete.

Customer: Create

ParameterTypeRequiredDefaultDescription
Display Name (displayName)stringYesThe display name of the customer.
Additional FieldscollectionNo{}Optional customer properties.
— Company NamestringNoThe customer’s company name.
— Family NamestringNoThe customer’s family name.
— Given NamestringNoThe customer’s given name.
— Middle NamestringNoThe customer’s middle name.
— Primary EmailstringNoEmail address.
— Primary PhonestringNoPhone number.
— Billing Address (JSON)jsonNo{}JSON object: { “Line1”: ”…”, “City”: ”…”, “CountrySubDivisionCode”: ”…”, “PostalCode”: ”…” }.

Customer: Get

ParameterTypeRequiredDefaultDescription
Customer ID (customerId)stringYesThe ID of the customer to retrieve.

Customer: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)
FilterscollectionNo{}Narrow the result set.
— QuerystringNoAdditional WHERE clause for the query. See QuickBooks data queries documentation.

Customer: Update

ParameterTypeRequiredDefaultDescription
Customer ID (customerId)stringYesThe ID of the customer to update.
Update FieldscollectionYes{}Customer properties to change. Add at least one.
— Company NamestringNoThe customer’s company name.
— Display Name (DisplayName)stringNoThe display name of the customer.
— Family NamestringNoThe customer’s family name.
— Given NamestringNoThe customer’s given name.
— Middle NamestringNoThe customer’s middle name.
— Primary EmailstringNoEmail address.
— Primary PhonestringNoPhone number.
— Billing Address (JSON)jsonNo{}Billing address as a JSON object.

Employee: Create

ParameterTypeRequiredDefaultDescription
Family NamestringYesThe employee’s family name.
Given NamestringYesThe employee’s given name.
Additional FieldscollectionNo{}Optional employee properties.
— Primary EmailstringNoEmail address.
— Primary PhonestringNoPhone number.
— SSNstringNoThe employee’s social security number.
— Birth DatestringNoYYYY-MM-DD
— Billing Address (JSON)jsonNo{}Address as a JSON object.

Employee: Get

ParameterTypeRequiredDefaultDescription
Employee IDstringYesThe ID of the employee to retrieve.

Employee: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)
FilterscollectionNo{}Narrow the result set.
— QuerystringNoAdditional WHERE clause for the query. See QuickBooks data queries documentation.

Employee: Update

ParameterTypeRequiredDefaultDescription
Employee IDstringYesThe ID of the employee to update.
Update FieldscollectionYes{}Employee properties to change. Add at least one.
— Family NamestringNoThe employee’s family name.
— Given NamestringNoThe employee’s given name.
— Primary EmailstringNoEmail address.
— Primary PhonestringNoPhone number.
— Billing Address (JSON)jsonNo{}Address as a JSON object.

Estimate: Create

ParameterTypeRequiredDefaultDescription
Customer ID (CustomerRef)stringYesThe ID of the customer the estimate is for.
Line Items (Line)jsonNo[]JSON array of line items. Each line: { “DetailType”: “SalesItemLineDetail”, “Amount”: 100, “Description”: “desc”, “itemId”: “1”, “TaxCodeRef”: “TAX” }.
Additional FieldscollectionNo{}Optional estimate properties.
— Bill EmailstringNoEmail address the estimate is billed to.
— Customer MemostringNoMemo shown to the customer.
— Expiration DatestringNoYYYY-MM-DD
— Total TaxnumberNo0Total tax on the estimate.
— Billing Address (JSON)jsonNo{}Billing address as a JSON object.
— Shipping Address (JSON)jsonNo{}Shipping address as a JSON object.

Estimate: Get

ParameterTypeRequiredDefaultDescription
Estimate IDstringYesThe ID of the estimate to retrieve.
DownloadbooleanYesfalseWhether to download the estimate as a PDF file.
Binary PropertystringYesdataName 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 NamestringYesName of the downloaded PDF file. (shown when Download is true)

Estimate: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)
FilterscollectionNo{}Narrow the result set.
— QuerystringNoAdditional WHERE clause for the query. See QuickBooks data queries documentation.

Estimate: Send

ParameterTypeRequiredDefaultDescription
Estimate IDstringYesThe ID of the estimate to send.
EmailstringYesEmail address of the recipient.

Estimate: Update

ParameterTypeRequiredDefaultDescription
Estimate IDstringYesThe ID of the estimate to update.
Update FieldscollectionYes{}Estimate properties to change. Add at least one.
— Bill EmailstringNoEmail address the estimate is billed to.
— Customer MemostringNoMemo shown to the customer.
— Expiration DatestringNoYYYY-MM-DD
— Billing Address (JSON)jsonNo{}Billing address as a JSON object.
— Shipping Address (JSON)jsonNo{}Shipping address as a JSON object.

Estimate: Delete

ParameterTypeRequiredDefaultDescription
Estimate IDstringYesThe ID of the estimate to delete.

Invoice: Create

ParameterTypeRequiredDefaultDescription
Customer ID (CustomerRef)stringYesThe ID of the customer the invoice is for.
Line Items (Line)jsonNo[]JSON array of line items. Each line: { “DetailType”: “SalesItemLineDetail”, “Amount”: 100, “Description”: “desc”, “itemId”: “1”, “TaxCodeRef”: “TAX”, “Qty”: 2 }.
Additional FieldscollectionNo{}Optional invoice properties.
— Bill EmailstringNoEmail address the invoice is billed to.
— Customer MemostringNoMemo shown to the customer.
— Due DatestringNoYYYY-MM-DD
— Total TaxnumberNo0Total tax on the invoice.
— Billing Address (JSON)jsonNo{}Billing address as a JSON object.
— Shipping Address (JSON)jsonNo{}Shipping address as a JSON object.

Invoice: Get

ParameterTypeRequiredDefaultDescription
Invoice IDstringYesThe ID of the invoice to retrieve.
DownloadbooleanYesfalseWhether to download the invoice as a PDF file.
Binary PropertystringYesdataName 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 NamestringYesName of the downloaded PDF file. (shown when Download is true)

Invoice: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)
FilterscollectionNo{}Narrow the result set.
— QuerystringNoAdditional WHERE clause for the query. See QuickBooks data queries documentation.

Invoice: Send

ParameterTypeRequiredDefaultDescription
Invoice IDstringYesThe ID of the invoice to send.
EmailstringYesEmail address of the recipient.

Invoice: Update

ParameterTypeRequiredDefaultDescription
Invoice IDstringYesThe ID of the invoice to update.
Update FieldscollectionYes{}Invoice properties to change. Add at least one.
— Bill EmailstringNoEmail address the invoice is billed to.
— Customer MemostringNoMemo shown to the customer.
— Due DatestringNoYYYY-MM-DD
— Billing Address (JSON)jsonNo{}Billing address as a JSON object.
— Shipping Address (JSON)jsonNo{}Shipping address as a JSON object.

Invoice: Void

ParameterTypeRequiredDefaultDescription
Invoice IDstringYesThe ID of the invoice to void.

Invoice: Delete

ParameterTypeRequiredDefaultDescription
Invoice IDstringYesThe ID of the invoice to delete.

Item: Get

ParameterTypeRequiredDefaultDescription
Item IDstringYesThe ID of the item to retrieve.

Item: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)
FilterscollectionNo{}Narrow the result set.
— QuerystringNoAdditional WHERE clause for the query. See QuickBooks data queries documentation.

Payment: Create

ParameterTypeRequiredDefaultDescription
Customer ID (CustomerRef)stringYesThe ID of the customer the payment is from.
Total AmountnumberNo0Total amount of the payment.
Additional FieldscollectionNo{}Optional payment properties.
— Payment Method Ref (ID)stringNoID of the payment method.
— Deposit To Account Ref (ID)stringNoID of the account the payment is deposited to.

Payment: Get

ParameterTypeRequiredDefaultDescription
Payment IDstringYesThe ID of the payment to retrieve.
DownloadbooleanYesfalseWhether to download the payment receipt as a PDF file.
Binary PropertystringYesdataName 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 NamestringYesName of the downloaded PDF file. (shown when Download is true)

Payment: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)
FilterscollectionNo{}Narrow the result set.
— QuerystringNoAdditional WHERE clause for the query. See QuickBooks data queries documentation.

Payment: Send

ParameterTypeRequiredDefaultDescription
Payment IDstringYesThe ID of the payment to send.
EmailstringYesEmail address of the recipient.

Payment: Update

ParameterTypeRequiredDefaultDescription
Payment IDstringYesThe ID of the payment to update.
Update FieldscollectionYes{}Payment properties to change. Add at least one.
— Payment Method Ref (ID)stringNoID of the payment method.
— Deposit To Account Ref (ID)stringNoID of the account the payment is deposited to.

Payment: Void

ParameterTypeRequiredDefaultDescription
Payment IDstringYesThe ID of the payment to void.

Payment: Delete

ParameterTypeRequiredDefaultDescription
Payment IDstringYesThe ID of the payment to delete.

Purchase: Get

ParameterTypeRequiredDefaultDescription
Purchase IDstringYesThe ID of the purchase to retrieve.

Purchase: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)
FilterscollectionNo{}Narrow the result set.
— QuerystringNoAdditional WHERE clause for the query. See QuickBooks data queries documentation.

Transaction: Get Report

ParameterTypeRequiredDefaultDescription
Simplify (simple)booleanNotrueWhether to return a simplified version of the report (flat objects) instead of the raw response.
FilterscollectionNo{}Report scope, grouping and sorting.
— Accounts Payable Paid (appaid)optionsNoAllRestrict to paid or unpaid accounts payable.
Options: All, Paid, Unpaid
— Accounts Receivable Paid (arpaid)optionsNoAllRestrict to paid or unpaid accounts receivable.
Options: All, Paid, Unpaid
— Cleared Status (cleared)optionsNoReconciledRestrict to transactions in this cleared state.
Options: Cleared, Uncleared, Reconciled, Deposited
— ColumnsstringNoComma-separated list of columns to return.
— Customer IDs (customer)stringNoComma-separated customer IDs to filter by.
— Date Range (Predefined) (date_macro)optionsNoThis MonthA 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)stringNoStart date for custom range (YYYY-MM-DD).
— End Date (end_date)stringNoEnd date for custom range (YYYY-MM-DD).
— Document Number (docnum)stringNoRestrict to one document number.
— Group By (group_by)optionsNoAccountHow 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)stringNoComma-separated memo IDs.
— Payment Method (payment_Method)stringNoRestrict to one payment method.
— Printed Status (printed)optionsNoPrintedRestrict to printed or to-be-printed transactions.
Options: Printed, To_be_printed
— Sort By (sort_by)stringNoColumn to sort results by.
— Sort Order (sort_order)optionsNoAscendSort direction.
Options: Ascend, Descend
— Transaction Amount (bothamount)numberNo0Restrict to transactions of this amount.
— Transaction Type (transaction_type)stringNoTransaction type filter (e.g. CreditCardCharge, Invoice, Bill).
— Vendor IDs (vendor)stringNoComma-separated vendor IDs.

Vendor: Create

ParameterTypeRequiredDefaultDescription
Display Name (displayName)stringYesThe display name of the vendor.
Additional FieldscollectionNo{}Optional vendor properties.
— Company NamestringNoThe vendor’s company name.
— Family NamestringNoThe vendor’s family name.
— Given NamestringNoThe vendor’s given name.
— Primary EmailstringNoEmail address.
— Primary PhonestringNoPhone number.
— Billing Address (JSON)jsonNo{}Address as a JSON object.

Vendor: Get

ParameterTypeRequiredDefaultDescription
Vendor ID (vendorId)stringYesThe ID of the vendor to retrieve.

Vendor: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)
FilterscollectionNo{}Narrow the result set.
— QuerystringNoAdditional WHERE clause for the query. See QuickBooks data queries documentation.

Vendor: Update

ParameterTypeRequiredDefaultDescription
Vendor ID (vendorId)stringYesThe ID of the vendor to update.
Update FieldscollectionYes{}Vendor properties to change. Add at least one.
— Company NamestringNoThe vendor’s company name.
— Display Name (DisplayName)stringNoThe display name of the vendor.
— Family NamestringNoThe vendor’s family name.
— Given NamestringNoThe vendor’s given name.
— Primary EmailstringNoEmail address.
— Primary PhonestringNoPhone number.
— Billing Address (JSON)jsonNo{}Address as a JSON object.

All Operations

ParameterTypeRequiredDefaultDescription
QuickBooks AccountcredentialNoConnect your QuickBooks account via OAuth2.
Max ConcurrencynumberNo10Maximum 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.

OperationsOutput
Every Get Many, and Transaction Get ReportOne 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 resourceOne 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 onOne 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

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

Manage QuickBooks Online financial data — CRUD for bills, customers, invoices, estimates, payments, vendors, with PDF download support.

Frequently asked questions

Can it produce a PDF of an invoice?

Yes — PDF download is supported for invoices, estimates and payments, arriving as binary data ready to attach to an email or file away.

What financial records can it manage?

Bills, customers, employees, estimates, invoices, items, payments, purchases, transactions and vendors — the core objects of the ledger rather than a narrow slice.

Is it suitable for a billing pipeline?

Yes: create the customer if needed, raise the invoice, download the PDF and record the payment when it settles, all in one workflow.

Which credential does it need?

A QuickBooks OAuth2 credential for the company file you are managing.

Build with the QuickBooks Online node

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need QuickBooks OAuth2 credentials first.

Open BusyBot

Last updated . Spotted something wrong? Tell us.