Sales & AR
Tool types for the accounts-receivable side of QuickBooks: creating and managing customers, invoices, accounting-side payment records, and estimates.
Every type on this page requires a QuickBooks connector; connectorId is the ID of that connector. Note that QUICKBOOKS_CREATE_PAYMENT records money movement in the ledger without processing anything — to actually charge a card or bank account, see the Payments family. See the QuickBooks overview for connector setup and sandbox behavior.
Create customer TOOLQUICKBOOKS_CREATE_CUSTOMER
Creates a customer record. Only displayName is required — it must be unique across customers, vendors, and employees in the QuickBooks company, so creation fails on a duplicate name. If the customer may already exist, prefer QUICKBOOKS_GET_OR_CREATE_CUSTOMER on the Workflows page.
Example
{
"toolType": "QUICKBOOKS_CREATE_CUSTOMER",
"connectorId": "V1StGXR8Z5",
"displayName": "@@{customerName}",
"email": "@@{customerEmail}",
"phone": "@@{customerPhone}",
"companyName": "@@{companyName}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
displayName- Type
- string
- Description
- Required - Display name
- Name
givenName- Type
- string
- Description
- First name
- Name
familyName- Type
- string
- Description
- Last name
- Name
companyName- Type
- string
- Description
- Company name
- Name
email- Type
- string
- Description
- Primary email
- Name
phone- Type
- string
- Description
- Primary phone
- Name
mobile- Type
- string
- Description
- Mobile phone
- Name
billingAddress- Type
- object
- Description
- Billing address
- Name
shippingAddress- Type
- object
- Description
- Shipping address
- Name
notes- Type
- string
- Description
- Customer notes
- Name
taxable- Type
- boolean
- Description
- Is customer taxable
- Name
balance- Type
- number
- Description
- Opening balance
Update customer TOOLQUICKBOOKS_UPDATE_CUSTOMER
Updates an existing customer identified by customerId. Set sparseUpdate to true so only the fields you supply change — without it, QuickBooks treats the update as a full replacement and clears omitted fields. Setting active to false soft-deletes the customer.
Example
{
"toolType": "QUICKBOOKS_UPDATE_CUSTOMER",
"connectorId": "V1StGXR8Z5",
"customerId": "@@{customerId}",
"email": "@@{newEmail}",
"sparseUpdate": true
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
customerId- Type
- string
- Description
- Required - QuickBooks customer ID
- Name
displayName- Type
- string
- Description
- Required string value.
- Name
givenName- Type
- string
- Description
- Required string value.
- Name
familyName- Type
- string
- Description
- Required string value.
- Name
companyName- Type
- string
- Description
- Required string value.
- Name
email- Type
- string
- Description
- Required string value.
- Name
phone- Type
- string
- Description
- Required string value.
- Name
mobile- Type
- string
- Description
- Required string value.
- Name
billingAddress- Type
- object
- Description
- Billing address
- Name
shippingAddress- Type
- object
- Description
- Shipping address
- Name
notes- Type
- string
- Description
- Required string value.
- Name
active- Type
- boolean
- Description
- Required boolean value.
- Name
sparseUpdate- Type
- boolean
- Description
- If true, only update provided fields
Get customers TOOLQUICKBOOKS_GET_CUSTOMERS
Lists customers with pagination (maxResults, startPosition) and an optional SQL-like whereClause filter such as Balance > '0'. This is how an agent discovers the customerId the other Sales & AR tools need; for targeted lookups, the name and email search composites on the Workflows page are simpler.
Example
{
"toolType": "QUICKBOOKS_GET_CUSTOMERS",
"connectorId": "V1StGXR8Z5",
"maxResults": 50,
"startPosition": 1,
"activeOnly": true
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
maxResults- Type
- integer
- Description
- Required integer value.
- Name
startPosition- Type
- integer
- Description
- Required integer value.
- Name
whereClause- Type
- string · optional
- Description
- Optional SQL-like where clause
- Name
orderBy- Type
- string · optional
- Description
- Optional order by clause
- Name
activeOnly- Type
- boolean
- Description
- Filter to only active customers
Get customer by ID TOOLQUICKBOOKS_GET_CUSTOMER_BY_ID
Fetches a single customer's full record — contact details, addresses, balance, and the SyncToken that update and delete operations require. Use it to confirm details before writing invoices against the customer.
Example
{
"toolType": "QUICKBOOKS_GET_CUSTOMER_BY_ID",
"connectorId": "V1StGXR8Z5",
"customerId": "@@{customerId}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
customerId- Type
- string
- Description
- QuickBooks customer ID
Create invoice TOOLQUICKBOOKS_CREATE_INVOICE
Creates an invoice for a customer. lines is an array of QuickBooks sales lines — each needs a DetailType of SalesItemLineDetail, an Amount, and a SalesItemLineDetail object referencing an item by ID. Creating an invoice does not email it; pair with QUICKBOOKS_SEND_INVOICE, or use QUICKBOOKS_CREATE_AND_SEND_INVOICE to do both in one call.
Example
{
"toolType": "QUICKBOOKS_CREATE_INVOICE",
"connectorId": "V1StGXR8Z5",
"customerId": "@@{customerId}",
"lines": [
{
"DetailType": "SalesItemLineDetail",
"Amount": 450.00,
"Description": "Consulting services",
"SalesItemLineDetail": {
"ItemRef": { "value": "12" },
"Qty": 3,
"UnitPrice": 150.00
}
}
],
"dueDate": "@@{dueDate}",
"customerMemo": "Thank you for your business."
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
customerId- Type
- string
- Description
- Required - Customer reference
- Name
lines- Type
- array<object>
- Description
- Required - Line items array
- Name
txnDate- Type
- string
- Description
- Transaction date (YYYY-MM-DD)
- Name
dueDate- Type
- string
- Description
- Due date (YYYY-MM-DD)
- Name
docNumber- Type
- string
- Description
- Invoice number
- Name
customerMemo- Type
- string
- Description
- Memo visible to customer
- Name
privateNote- Type
- string
- Description
- Internal note
- Name
billingEmail- Type
- string
- Description
- Email for billing
- Name
billingAddress- Type
- object
- Description
- Required object value.
- Name
shippingAddress- Type
- object
- Description
- Required object value.
- Name
applyTaxAfterDiscount- Type
- boolean
- Description
- Required boolean value.
- Name
salesTermId- Type
- string
- Description
- Payment terms reference
Update invoice TOOLQUICKBOOKS_UPDATE_INVOICE
Updates an existing invoice — due date, memo, line items, or customer reference. As with customers, pass sparseUpdate: true to change only the supplied fields; supplying lines replaces the entire line array, not individual lines.
Example
{
"toolType": "QUICKBOOKS_UPDATE_INVOICE",
"connectorId": "V1StGXR8Z5",
"invoiceId": "@@{invoiceId}",
"dueDate": "@@{newDueDate}",
"sparseUpdate": true
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
invoiceId- Type
- string
- Description
- Required
- Name
customerId- Type
- string
- Description
- Required string value.
- Name
lines- Type
- array<object>
- Description
- Required array<object> value.
- Name
txnDate- Type
- string
- Description
- Required string value.
- Name
dueDate- Type
- string
- Description
- Required string value.
- Name
docNumber- Type
- string
- Description
- Required string value.
- Name
customerMemo- Type
- string
- Description
- Required string value.
- Name
privateNote- Type
- string
- Description
- Required string value.
- Name
billingEmail- Type
- string
- Description
- Required string value.
- Name
sparseUpdate- Type
- boolean
- Description
- Required boolean value.
Send invoice TOOLQUICKBOOKS_SEND_INVOICE
Emails an existing invoice through QuickBooks' own delivery system, using the QuickBooks company's branding and payment links. emailTo overrides the recipient; when omitted, the invoice goes to the customer's billing email on file.
Example
{
"toolType": "QUICKBOOKS_SEND_INVOICE",
"connectorId": "V1StGXR8Z5",
"invoiceId": "@@{invoiceId}",
"emailTo": "@@{recipientEmail}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
invoiceId- Type
- string
- Description
- Required
- Name
emailTo- Type
- string · optional
- Description
- Email address to send to (optional, uses customer email if not provided)
Get invoices TOOLQUICKBOOKS_GET_INVOICES
Lists invoices with pagination and filters by customer, transaction-date range, or a raw whereClause (e.g. Balance > '0' for open invoices). Combine with an orderBy such as TxnDate DESC to surface the most recent activity first.
Example
{
"toolType": "QUICKBOOKS_GET_INVOICES",
"connectorId": "V1StGXR8Z5",
"maxResults": 50,
"startPosition": 1,
"customerId": "@@{customerId}",
"whereClause": "Balance > '0'"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
maxResults- Type
- integer
- Description
- Required integer value.
- Name
startPosition- Type
- integer
- Description
- Required integer value.
- Name
whereClause- Type
- string
- Description
- Required string value.
- Name
orderBy- Type
- string
- Description
- Required string value.
- Name
customerId- Type
- string
- Description
- Filter by customer ID
- Name
startDate- Type
- string
- Description
- Filter by transaction date (YYYY-MM-DD)
- Name
endDate- Type
- string
- Description
- Filter by transaction date (YYYY-MM-DD)
Get invoice by ID TOOLQUICKBOOKS_GET_INVOICE_BY_ID
Fetches one invoice in full: line items, balance, linked payments, and the SyncToken needed for void and delete. For the invoice plus its customer's contact details in one call, use QUICKBOOKS_GET_INVOICE_WITH_CUSTOMER on the Workflows page.
Example
{
"toolType": "QUICKBOOKS_GET_INVOICE_BY_ID",
"connectorId": "V1StGXR8Z5",
"invoiceId": "@@{invoiceId}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
invoiceId- Type
- string
- Description
- Required string value.
Void invoice TOOLQUICKBOOKS_VOID_INVOICE
Voids an invoice — it stays visible in QuickBooks with a zeroed amount and a Voided status, preserving the audit trail. Requires the invoice's current syncToken (fetch it with a get-by-ID call first); a stale token is rejected by QuickBooks' optimistic locking.
Example
{
"toolType": "QUICKBOOKS_VOID_INVOICE",
"connectorId": "V1StGXR8Z5",
"invoiceId": "@@{invoiceId}",
"syncToken": "@@{syncToken}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
invoiceId- Type
- string
- Description
- Required
- Name
syncToken- Type
- string
- Description
- Required for optimistic locking
Delete invoice TOOLQUICKBOOKS_DELETE_INVOICE
Permanently deletes an invoice from the QuickBooks company. Like void, it requires the current syncToken, but unlike void the record is removed entirely — prefer voiding when the paper trail matters.
Example
{
"toolType": "QUICKBOOKS_DELETE_INVOICE",
"connectorId": "V1StGXR8Z5",
"invoiceId": "@@{invoiceId}",
"syncToken": "@@{syncToken}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
invoiceId- Type
- string
- Description
- Required
- Name
syncToken- Type
- string
- Description
- Required for optimistic locking
Create payment TOOLQUICKBOOKS_CREATE_PAYMENT
Records a customer payment in the ledger — it reduces invoice balances and books the deposit but moves no money. invoiceLines links the payment to specific invoices via LinkedTxn entries. To actually charge a card and record the payment together, use QUICKBOOKS_CHARGE_AND_RECORD_PAYMENT on the Workflows page.
Example
{
"toolType": "QUICKBOOKS_CREATE_PAYMENT",
"connectorId": "V1StGXR8Z5",
"customerId": "@@{customerId}",
"totalAmount": 450.00,
"depositToAccountId": "35",
"invoiceLines": [
{
"Amount": 450.00,
"LinkedTxn": [{ "TxnId": "@@{invoiceId}", "TxnType": "Invoice" }]
}
],
"paymentRefNum": "@@{referenceNumber}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
customerId- Type
- string
- Description
- Required - Customer reference
- Name
totalAmount- Type
- number
- Description
- Required - Total payment amount
- Name
txnDate- Type
- string
- Description
- Transaction date (YYYY-MM-DD)
- Name
paymentMethodId- Type
- string
- Description
- Payment method reference
- Name
depositToAccountId- Type
- string
- Description
- Deposit to account reference
- Name
invoiceLines- Type
- array<object>
- Description
- Invoice references to apply payment
- Name
paymentRefNum- Type
- string
- Description
- Payment reference number (check number, etc.)
- Name
privateNote- Type
- string
- Description
- Required string value.
Get payments TOOLQUICKBOOKS_GET_PAYMENTS
Lists received-payment records with pagination, filtered by customer, date range, or a raw whereClause. These are the accounting-side records — Payments API charges only appear here if something recorded them (for example the *_AND_RECORD_PAYMENT composites).
Example
{
"toolType": "QUICKBOOKS_GET_PAYMENTS",
"connectorId": "V1StGXR8Z5",
"maxResults": 50,
"startPosition": 1,
"customerId": "@@{customerId}",
"startDate": "@@{startDate}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
maxResults- Type
- integer
- Description
- Required integer value.
- Name
startPosition- Type
- integer
- Description
- Required integer value.
- Name
whereClause- Type
- string
- Description
- Required string value.
- Name
customerId- Type
- string
- Description
- Required string value.
- Name
startDate- Type
- string
- Description
- Required string value.
- Name
endDate- Type
- string
- Description
- Required string value.
Get payment by ID TOOLQUICKBOOKS_GET_PAYMENT_BY_ID
Fetches a single payment record, including the invoices it was applied to and the SyncToken a void requires. Useful when reconciling which invoices a specific payment covered.
Example
{
"toolType": "QUICKBOOKS_GET_PAYMENT_BY_ID",
"connectorId": "V1StGXR8Z5",
"paymentId": "@@{paymentId}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
paymentId- Type
- string
- Description
- Required string value.
Void payment TOOLQUICKBOOKS_VOID_PAYMENT
Voids a payment record, restoring the balances of any invoices it was applied to. Requires the payment's current syncToken. This only reverses the ledger entry — refunding money actually charged through the Payments API is QUICKBOOKS_REFUND_CHARGE on the Payments page.
Example
{
"toolType": "QUICKBOOKS_VOID_PAYMENT",
"connectorId": "V1StGXR8Z5",
"paymentId": "@@{paymentId}",
"syncToken": "@@{syncToken}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
paymentId- Type
- string
- Description
- Required string value.
- Name
syncToken- Type
- string
- Description
- Required string value.
Create estimate TOOLQUICKBOOKS_CREATE_ESTIMATE
Creates an estimate (quote) for a customer using the same sales-line shape as invoices. Estimates don't post to the ledger; when the customer accepts, QUICKBOOKS_CONVERT_ESTIMATE_TO_INVOICE on the Workflows page turns it into a billable invoice.
Example
{
"toolType": "QUICKBOOKS_CREATE_ESTIMATE",
"connectorId": "V1StGXR8Z5",
"customerId": "@@{customerId}",
"lines": [
{
"DetailType": "SalesItemLineDetail",
"Amount": 1200.00,
"Description": "@@{lineDescription}",
"SalesItemLineDetail": {
"ItemRef": { "value": "12" },
"Qty": 8,
"UnitPrice": 150.00
}
}
],
"expirationDate": "@@{expirationDate}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
customerId- Type
- string
- Description
- Required
- Name
lines- Type
- array<object>
- Description
- Required - Line items
- Name
txnDate- Type
- string
- Description
- Transaction date
- Name
expirationDate- Type
- string
- Description
- Expiration date
- Name
docNumber- Type
- string
- Description
- Estimate number
- Name
customerMemo- Type
- string
- Description
- Required string value.
- Name
privateNote- Type
- string
- Description
- Required string value.
- Name
billingEmail- Type
- string
- Description
- Required string value.
- Name
billingAddress- Type
- object
- Description
- Required object value.
- Name
shippingAddress- Type
- object
- Description
- Required object value.
Send estimate TOOLQUICKBOOKS_SEND_ESTIMATE
Emails an estimate through QuickBooks' delivery system. emailTo overrides the recipient; when omitted, the estimate goes to the customer's email on file.
Example
{
"toolType": "QUICKBOOKS_SEND_ESTIMATE",
"connectorId": "V1StGXR8Z5",
"estimateId": "@@{estimateId}",
"emailTo": "@@{recipientEmail}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
estimateId- Type
- string
- Description
- Required
- Name
emailTo- Type
- string · optional
- Description
- Optional - uses customer email if not provided
Get estimates TOOLQUICKBOOKS_GET_ESTIMATES
Lists estimates with pagination, filtered by customer, transaction-date range, or a raw whereClause. Handy for finding outstanding quotes that haven't converted to invoices yet.
Example
{
"toolType": "QUICKBOOKS_GET_ESTIMATES",
"connectorId": "V1StGXR8Z5",
"maxResults": 50,
"startPosition": 1,
"customerId": "@@{customerId}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
maxResults- Type
- integer
- Description
- Required integer value.
- Name
startPosition- Type
- integer
- Description
- Required integer value.
- Name
whereClause- Type
- string
- Description
- Required string value.
- Name
customerId- Type
- string
- Description
- Required string value.
- Name
startDate- Type
- string
- Description
- Required string value.
- Name
endDate- Type
- string
- Description
- Required string value.
Get estimate by ID TOOLQUICKBOOKS_GET_ESTIMATE_BY_ID
Fetches a single estimate in full — line items, status, expiration, and linked transactions. Use it to review a quote's contents before converting or re-sending it.
Example
{
"toolType": "QUICKBOOKS_GET_ESTIMATE_BY_ID",
"connectorId": "V1StGXR8Z5",
"estimateId": "@@{estimateId}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
estimateId- Type
- string
- Description
- Required string value.