Skip to main content

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​

Tool config
{
"toolType": "QUICKBOOKS_CREATE_CUSTOMER",
"connectorId": "V1StGXR8Z5",
"displayName": "@@{customerName}",
"email": "@@{customerEmail}",
"phone": "@@{customerPhone}",
"companyName": "@@{companyName}"
}
This tool type requires a connected external account. Pass the connector's ID as 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​

Tool config
{
"toolType": "QUICKBOOKS_UPDATE_CUSTOMER",
"connectorId": "V1StGXR8Z5",
"customerId": "@@{customerId}",
"email": "@@{newEmail}",
"sparseUpdate": true
}
This tool type requires a connected external account. Pass the connector's ID as 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​

Tool config
{
"toolType": "QUICKBOOKS_GET_CUSTOMERS",
"connectorId": "V1StGXR8Z5",
"maxResults": 50,
"startPosition": 1,
"activeOnly": true
}
This tool type requires a connected external account. Pass the connector's ID as 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​

Tool config
{
"toolType": "QUICKBOOKS_GET_CUSTOMER_BY_ID",
"connectorId": "V1StGXR8Z5",
"customerId": "@@{customerId}"
}
This tool type requires a connected external account. Pass the connector's ID as 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​

Tool config
{
"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."
}
This tool type requires a connected external account. Pass the connector's ID as 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​

Tool config
{
"toolType": "QUICKBOOKS_UPDATE_INVOICE",
"connectorId": "V1StGXR8Z5",
"invoiceId": "@@{invoiceId}",
"dueDate": "@@{newDueDate}",
"sparseUpdate": true
}
This tool type requires a connected external account. Pass the connector's ID as 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​

Tool config
{
"toolType": "QUICKBOOKS_SEND_INVOICE",
"connectorId": "V1StGXR8Z5",
"invoiceId": "@@{invoiceId}",
"emailTo": "@@{recipientEmail}"
}
This tool type requires a connected external account. Pass the connector's ID as 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​

Tool config
{
"toolType": "QUICKBOOKS_GET_INVOICES",
"connectorId": "V1StGXR8Z5",
"maxResults": 50,
"startPosition": 1,
"customerId": "@@{customerId}",
"whereClause": "Balance > '0'"
}
This tool type requires a connected external account. Pass the connector's ID as 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​

Tool config
{
"toolType": "QUICKBOOKS_GET_INVOICE_BY_ID",
"connectorId": "V1StGXR8Z5",
"invoiceId": "@@{invoiceId}"
}
This tool type requires a connected external account. Pass the connector's ID as 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​

Tool config
{
"toolType": "QUICKBOOKS_VOID_INVOICE",
"connectorId": "V1StGXR8Z5",
"invoiceId": "@@{invoiceId}",
"syncToken": "@@{syncToken}"
}
This tool type requires a connected external account. Pass the connector's ID as 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​

Tool config
{
"toolType": "QUICKBOOKS_DELETE_INVOICE",
"connectorId": "V1StGXR8Z5",
"invoiceId": "@@{invoiceId}",
"syncToken": "@@{syncToken}"
}
This tool type requires a connected external account. Pass the connector's ID as 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​

Tool config
{
"toolType": "QUICKBOOKS_CREATE_PAYMENT",
"connectorId": "V1StGXR8Z5",
"customerId": "@@{customerId}",
"totalAmount": 450.00,
"depositToAccountId": "35",
"invoiceLines": [
{
"Amount": 450.00,
"LinkedTxn": [{ "TxnId": "@@{invoiceId}", "TxnType": "Invoice" }]
}
],
"paymentRefNum": "@@{referenceNumber}"
}
This tool type requires a connected external account. Pass the connector's ID as 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​

Tool config
{
"toolType": "QUICKBOOKS_GET_PAYMENTS",
"connectorId": "V1StGXR8Z5",
"maxResults": 50,
"startPosition": 1,
"customerId": "@@{customerId}",
"startDate": "@@{startDate}"
}
This tool type requires a connected external account. Pass the connector's ID as 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​

Tool config
{
"toolType": "QUICKBOOKS_GET_PAYMENT_BY_ID",
"connectorId": "V1StGXR8Z5",
"paymentId": "@@{paymentId}"
}
This tool type requires a connected external account. Pass the connector's ID as 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​

Tool config
{
"toolType": "QUICKBOOKS_VOID_PAYMENT",
"connectorId": "V1StGXR8Z5",
"paymentId": "@@{paymentId}",
"syncToken": "@@{syncToken}"
}
This tool type requires a connected external account. Pass the connector's ID as 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​

Tool config
{
"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}"
}
This tool type requires a connected external account. Pass the connector's ID as 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​

Tool config
{
"toolType": "QUICKBOOKS_SEND_ESTIMATE",
"connectorId": "V1StGXR8Z5",
"estimateId": "@@{estimateId}",
"emailTo": "@@{recipientEmail}"
}
This tool type requires a connected external account. Pass the connector's ID as 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​

Tool config
{
"toolType": "QUICKBOOKS_GET_ESTIMATES",
"connectorId": "V1StGXR8Z5",
"maxResults": 50,
"startPosition": 1,
"customerId": "@@{customerId}"
}
This tool type requires a connected external account. Pass the connector's ID as 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​

Tool config
{
"toolType": "QUICKBOOKS_GET_ESTIMATE_BY_ID",
"connectorId": "V1StGXR8Z5",
"estimateId": "@@{estimateId}"
}
This tool type requires a connected external account. Pass the connector's ID as 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.