Purchasing & AP
Tool types for the accounts-payable side of QuickBooks: vendors, bills, bill payments, and purchase orders.
Every type on this page requires a QuickBooks connector; connectorId is the ID of that connector. Bill payments here are accounting records (check or credit-card entries in the ledger) — QuickBooks' Payments API on the Payments page is receivables-only and plays no role in paying vendors. See the QuickBooks overview for connector setup and sandbox behavior.
Create vendor TOOLQUICKBOOKS_CREATE_VENDOR
Creates a vendor (supplier) record. Only displayName is required and it must be unique across customers, vendors, and employees. Set vendor1099 and taxIdentifier for contractors that need 1099 reporting; if the vendor may already exist, prefer QUICKBOOKS_GET_OR_CREATE_VENDOR on the Workflows page.
Example
{
"toolType": "QUICKBOOKS_CREATE_VENDOR",
"connectorId": "V1StGXR8Z5",
"displayName": "@@{vendorName}",
"companyName": "@@{vendorCompany}",
"primaryEmailAddr": "@@{vendorEmail}",
"vendor1099": false
}
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
- 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
primaryEmailAddr- Type
- string
- Description
- Required string value.
- Name
primaryPhone- Type
- string
- Description
- Required string value.
- Name
mobile- Type
- string
- Description
- Required string value.
- Name
billAddr- Type
- object
- Description
- Billing address
- Name
webAddr- Type
- string
- Description
- Required string value.
- Name
taxIdentifier- Type
- string
- Description
- Tax ID for 1099 reporting
- Name
acctNum- Type
- string
- Description
- Account number
- Name
vendor1099- Type
- boolean
- Description
- Is 1099 vendor
Update vendor TOOLQUICKBOOKS_UPDATE_VENDOR
Updates an existing vendor identified by vendorId — contact details, addresses, 1099 status, or account number. Setting active to false soft-deletes the vendor while preserving its transaction history.
Example
{
"toolType": "QUICKBOOKS_UPDATE_VENDOR",
"connectorId": "V1StGXR8Z5",
"vendorId": "@@{vendorId}",
"primaryEmailAddr": "@@{newEmail}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
vendorId- Type
- string
- Description
- Required
- 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
primaryEmailAddr- Type
- string
- Description
- Required string value.
- Name
primaryPhone- Type
- string
- Description
- Required string value.
- Name
mobile- Type
- string
- Description
- Required string value.
- Name
billAddr- Type
- object
- Description
- Billing address
- Name
webAddr- Type
- string
- Description
- Required string value.
- Name
taxIdentifier- Type
- string
- Description
- Required string value.
- Name
acctNum- Type
- string
- Description
- Required string value.
- Name
vendor1099- Type
- boolean
- Description
- Required boolean value.
- Name
active- Type
- boolean
- Description
- Required boolean value.
Get vendors TOOLQUICKBOOKS_GET_VENDORS
Lists vendors with pagination, an optional SQL-like whereClause, and an orderBy. This is how an agent discovers the vendorId the bill and purchase-order tools need; QUICKBOOKS_SEARCH_VENDOR_BY_NAME on the Workflows page handles fuzzy name lookups.
Example
{
"toolType": "QUICKBOOKS_GET_VENDORS",
"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
- Description
- Required string value.
- Name
orderBy- Type
- string
- Description
- Required string value.
- Name
activeOnly- Type
- boolean
- Description
- Required boolean value.
Get vendor by ID TOOLQUICKBOOKS_GET_VENDOR_BY_ID
Fetches a single vendor's full record — contact details, balance owed, 1099 status, and the SyncToken updates require. Use it to confirm details before entering bills against the vendor.
Example
{
"toolType": "QUICKBOOKS_GET_VENDOR_BY_ID",
"connectorId": "V1StGXR8Z5",
"vendorId": "@@{vendorId}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
vendorId- Type
- string
- Description
- Required string value.
Create bill TOOLQUICKBOOKS_CREATE_BILL
Enters a bill (a vendor invoice you owe) into accounts payable. lines is an array of expense lines — use DetailType of AccountBasedExpenseLineDetail with an AccountRef to book against an expense account, or ItemBasedExpenseLineDetail for item purchases. Creating a bill doesn't pay it; that's QUICKBOOKS_CREATE_BILL_PAYMENT.
Example
{
"toolType": "QUICKBOOKS_CREATE_BILL",
"connectorId": "V1StGXR8Z5",
"vendorId": "@@{vendorId}",
"lines": [
{
"DetailType": "AccountBasedExpenseLineDetail",
"Amount": 1200.00,
"Description": "@@{expenseDescription}",
"AccountBasedExpenseLineDetail": {
"AccountRef": { "value": "7" }
}
}
],
"dueDate": "@@{dueDate}",
"docNumber": "@@{billNumber}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
vendorId- Type
- string
- Description
- Required - VendorRef
- Name
lines- Type
- array<object>
- Description
- Required - Line items
- Name
txnDate- Type
- string
- Description
- Transaction date
- Name
dueDate- Type
- string
- Description
- Due date
- Name
docNumber- Type
- string
- Description
- Bill number/reference
- Name
privateNote- Type
- string
- Description
- Internal memo
- Name
apAccountId- Type
- string
- Description
- Accounts Payable account
Update bill TOOLQUICKBOOKS_UPDATE_BILL
Updates an existing bill identified by billId — due date, line items, memo, or vendor reference. Supplying lines replaces the whole line array, so include every line the bill should end up with.
Example
{
"toolType": "QUICKBOOKS_UPDATE_BILL",
"connectorId": "V1StGXR8Z5",
"billId": "@@{billId}",
"dueDate": "@@{newDueDate}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
billId- Type
- string
- Description
- Required
- Name
vendorId- Type
- string
- Description
- Required string value.
- Name
lines- Type
- array<object>
- Description
- Bill line items
- 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
privateNote- Type
- string
- Description
- Required string value.
Delete bill TOOLQUICKBOOKS_DELETE_BILL
Permanently deletes a bill. Requires the bill's current syncToken (fetch it with QUICKBOOKS_GET_BILL_BY_ID first) for QuickBooks' optimistic locking, and fails if bill payments are already linked to the bill.
Example
{
"toolType": "QUICKBOOKS_DELETE_BILL",
"connectorId": "V1StGXR8Z5",
"billId": "@@{billId}",
"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
billId- Type
- string
- Description
- Required
- Name
syncToken- Type
- string
- Description
- Required for delete
Get bills TOOLQUICKBOOKS_GET_BILLS
Lists bills with pagination, filtered by vendor, transaction-date range, or a raw whereClause (e.g. Balance > '0' for unpaid bills). Use it to find what's outstanding before scheduling payments.
Example
{
"toolType": "QUICKBOOKS_GET_BILLS",
"connectorId": "V1StGXR8Z5",
"maxResults": 50,
"startPosition": 1,
"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
vendorId- Type
- string
- Description
- Required string value.
- Name
startDate- Type
- string
- Description
- Required string value.
- Name
endDate- Type
- string
- Description
- Required string value.
Get bill by ID TOOLQUICKBOOKS_GET_BILL_BY_ID
Fetches one bill in full: line items, balance, linked payments, and the SyncToken a delete requires. For the bill plus its vendor's contact details in one call, use QUICKBOOKS_GET_BILL_WITH_VENDOR on the Workflows page.
Example
{
"toolType": "QUICKBOOKS_GET_BILL_BY_ID",
"connectorId": "V1StGXR8Z5",
"billId": "@@{billId}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
billId- Type
- string
- Description
- Required string value.
Create bill payment TOOLQUICKBOOKS_CREATE_BILL_PAYMENT
Records a payment against one or more bills. payType is Check (requires bankAccountId) or CreditCard (requires creditCardAccountId), and linkedBills allocates the total across specific bills by TxnId. This books the ledger entry only — it doesn't print checks or move funds.
Example
{
"toolType": "QUICKBOOKS_CREATE_BILL_PAYMENT",
"connectorId": "V1StGXR8Z5",
"vendorId": "@@{vendorId}",
"totalAmt": 1200.00,
"payType": "Check",
"bankAccountId": "35",
"linkedBills": [
{ "TxnId": "@@{billId}", "Amount": 1200.00 }
]
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
vendorId- Type
- string
- Description
- Required - VendorRef
- Name
totalAmt- Type
- number
- Description
- Required - Total amount
- Name
payType- Type
- string
- Description
- Required - "Check" or "CreditCard"
- Name
bankAccountId- Type
- string
- Description
- Required for Check payments
- Name
checkNum- Type
- string · optional
- Description
- Check number (optional)
- Name
creditCardAccountId- Type
- string
- Description
- Required for CreditCard payments
- Name
txnDate- Type
- string
- Description
- Transaction date
- Name
privateNote- Type
- string
- Description
- Internal memo
- Name
linkedBills- Type
- array<object>
- Description
- Bills to pay with amounts
Get bill payments TOOLQUICKBOOKS_GET_BILL_PAYMENTS
Lists bill-payment records with pagination, filtered by vendor, date range, or a raw whereClause. Useful for reconciling what has already been paid to a vendor over a period.
Example
{
"toolType": "QUICKBOOKS_GET_BILL_PAYMENTS",
"connectorId": "V1StGXR8Z5",
"maxResults": 50,
"startPosition": 1,
"vendorId": "@@{vendorId}"
}
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
vendorId- Type
- string
- Description
- Required string value.
- Name
startDate- Type
- string
- Description
- Required string value.
- Name
endDate- Type
- string
- Description
- Required string value.
Get bill payment by ID TOOLQUICKBOOKS_GET_BILL_PAYMENT_BY_ID
Fetches a single bill payment, including the bills it was applied to, the payment type, and the account it was drawn from. Use it to answer "how and when was this bill paid?"
Example
{
"toolType": "QUICKBOOKS_GET_BILL_PAYMENT_BY_ID",
"connectorId": "V1StGXR8Z5",
"billPaymentId": "@@{billPaymentId}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
billPaymentId- Type
- string
- Description
- Required string value.
Create purchase order TOOLQUICKBOOKS_CREATE_PURCHASE_ORDER
Creates a purchase order to send to a vendor. Line items use the same expense-line shapes as bills (ItemBasedExpenseLineDetail for goods, AccountBasedExpenseLineDetail for services); vendorMemo appears on the PO the vendor sees. POs are non-posting — they don't hit the ledger until converted to a bill.
Example
{
"toolType": "QUICKBOOKS_CREATE_PURCHASE_ORDER",
"connectorId": "V1StGXR8Z5",
"vendorId": "@@{vendorId}",
"lines": [
{
"DetailType": "ItemBasedExpenseLineDetail",
"Amount": 500.00,
"Description": "@@{itemDescription}",
"ItemBasedExpenseLineDetail": {
"ItemRef": { "value": "19" },
"Qty": 10,
"UnitPrice": 50.00
}
}
],
"expectedDate": "@@{expectedDate}",
"vendorMemo": "@@{vendorMemo}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
vendorId- Type
- string
- Description
- Required - VendorRef
- Name
lines- Type
- array<object>
- Description
- Required - Line items
- Name
txnDate- Type
- string
- Description
- Transaction date
- Name
expectedDate- Type
- string
- Description
- Expected delivery date
- Name
docNumber- Type
- string
- Description
- PO number
- Name
vendorMemo- Type
- string
- Description
- Memo for vendor
- Name
privateNote- Type
- string
- Description
- Internal memo
- Name
shipAddr- Type
- object
- Description
- Ship to address
- Name
apAccountId- Type
- string
- Description
- Accounts Payable account
Update purchase order TOOLQUICKBOOKS_UPDATE_PURCHASE_ORDER
Updates an existing purchase order — line items, expected date, memos, or ship-to address. Set poStatus to Closed once the order is fulfilled so it stops counting as open.
Example
{
"toolType": "QUICKBOOKS_UPDATE_PURCHASE_ORDER",
"connectorId": "V1StGXR8Z5",
"purchaseOrderId": "@@{purchaseOrderId}",
"poStatus": "Closed"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
purchaseOrderId- Type
- string
- Description
- Required
- Name
vendorId- Type
- string
- Description
- Required string value.
- Name
lines- Type
- array<object>
- Description
- PO line items
- Name
txnDate- Type
- string
- Description
- Required string value.
- Name
expectedDate- Type
- string
- Description
- Required string value.
- Name
docNumber- Type
- string
- Description
- Required string value.
- Name
vendorMemo- Type
- string
- Description
- Required string value.
- Name
privateNote- Type
- string
- Description
- Required string value.
- Name
shipAddr- Type
- object
- Description
- Ship to address
- Name
poStatus- Type
- string
- Description
- Open, Closed
Get purchase orders TOOLQUICKBOOKS_GET_PURCHASE_ORDERS
Lists purchase orders with pagination, filtered by vendor, date range, poStatus (Open or Closed), or a raw whereClause. Use it to review outstanding orders before receiving goods or entering the matching bill.
Example
{
"toolType": "QUICKBOOKS_GET_PURCHASE_ORDERS",
"connectorId": "V1StGXR8Z5",
"maxResults": 50,
"startPosition": 1,
"poStatus": "Open"
}
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
vendorId- Type
- string
- Description
- Required string value.
- Name
startDate- Type
- string
- Description
- Required string value.
- Name
endDate- Type
- string
- Description
- Required string value.
- Name
poStatus- Type
- string
- Description
- Open, Closed