Skip to main content
The MCP server has 10 tools for drafting invoices, managing line items, sending invoices, recording manual payments, and voiding invoices.
sendInvoice, markInvoicePaid, and voidInvoice default to Ask. In agent chat, you approve each call. The MCP server has no approval flow, so these tools are not exposed to MCP clients until you explicitly set their individual permissions to Allow. Allowing invoices:write does not enable them.
All other invoice tools default to Allow. Returned invoices omit publicToken, stripeInvoiceId, lastSyncedAt, and syncSource. Returned manual payments also omit customerTransactionId, stripePaymentIntentId, and idempotencyKey.

Invoices

createInvoice

Create a draft invoice header for a business and customer. Permission: invoices:write Parameters: Returns: The invoice with line items.

getInvoice

Get an invoice with its line items by ID. Permission: invoices:read Parameters: Returns: The invoice with line items, or null if it is not found.

listInvoices

List invoices with pagination and optional filters. Permission: invoices:read Parameters: Returns: A paginated list of invoices with line items. When overdueOnly is true, omit status or set it to open.

updateInvoice

Update public fields on a draft invoice. Issued invoices cannot be edited with this tool. Permission: invoices:write Parameters: Returns: The updated invoice with line items.

sendInvoice

Email an invoice to its customer from the business’s sending address. A draft is issued first, which freezes its bill-to details and moves it to open; an open invoice is sent again. The email goes to the invoice’s bill-to address, falling back to the customer’s. The wording comes from the organization’s Invoice email template, which is created on the first send. Permission: invoices.send:write (default level Ask — approval-gated in agent chat; over MCP, callable only at Allow) Parameters: Returns: The sent invoice with line items. A new key sends the invoice again — except after a send that failed, which a new key retries rather than delivering a second copy. Fails when the invoice has no email address to send to, or when no sending address is set up for invoices.

markInvoicePaid

Record an explicit manual payment against an invoice. Issue a draft before recording payment. Partial payments leave an open invoice open; cumulative payments move it to paid once they cover the invoice total. Permission: invoices.payments:write (default level Ask — approval-gated in agent chat; over MCP, callable only at Allow) Parameters: Returns: The payment and refreshed invoice. The key is scoped to your organization and shared with the REST invoice-payment endpoint, chat, and automations. Retrying with the same key and the same details returns the original payment. Reusing that key for a different invoice, amount, time, or note fails instead, so record each new payment with a new key.

voidInvoice

Void an open invoice so it can no longer be collected or paid. Permission: invoices.void:write (default level Ask — approval-gated in agent chat; over MCP, callable only at Allow) Parameters: Returns: The voided invoice with line items.

Invoice line items

createInvoiceLineItem

Add a line item to a draft invoice. Permission: invoices:write Parameters: Returns: The refreshed invoice with line items.

updateInvoiceLineItem

Update a draft invoice line item. Permission: invoices:write Parameters: Returns: The refreshed invoice with line items.

deleteInvoiceLineItem

Delete a draft invoice line item. Permission: invoices:write Parameters: Returns: The refreshed invoice with line items.
Last modified on September 5, 2026