API Reference
Invoices
Invoices, estimates, and credit memos share the same routes, distinguished by invoiceType. Every invoice object includes a derived status field (draft, approved, sent, unpaid, partial, paid, overdue, void) alongside the raw isDraft / approved / isSent / paymentStatus flags. All references use UUIDs.
Last updated 2026-07-07
Overview
The Invoices API lets your integration create, list, update, approve, send, and delete invoices, estimates, and credit memos in a workspace. All document types share the same `/partners/invoices` routes and are distinguished by `invoiceType` (`invoice`, `estimate`, or `memo`).
Every invoice-shaped object includes a derived `status` field (for example draft, approved, sent, unpaid, partial, paid, overdue, void) computed from `isDraft`, `approved`, `isSent`, and `paymentStatus`. Partner responses expose UUIDs as `id` and strip internal numeric foreign keys. For migrations you may pass inline `customer` or per-line `product` objects instead of UUIDs, or set `isDraft: false` to post revenue journals in one step.
Key concepts
Document types
Set `invoiceType` to `invoice` (default), `estimate`, or `memo` (credit memo). Credit memos cannot be recurring — use Recurring Invoice Templates for scheduled invoices only.
Derived status
Partner responses include a computed `status` alongside raw flags. After send, an open unpaid invoice may surface as `sent` rather than `unpaid`. See the backend `computePartnerInvoiceStatus` helper for the full mapping.
Line item taxes
On create, `unitPrice` is copied to `price` when omitted. Taxes are backfilled from the product when the line is taxable. Set `nonTaxable: true` to clear taxes on a line.
Lifecycle and allowed operations
Typical flow: create (draft) → approve → send → pay via assign-to-bills-invoices. update/delete work on drafts only; send requires approval; there is no revert-to-draft API — use credit memos to correct approved invoices.
Credit application
Apply credit memos to invoices with the apply-multiple-credit and apply-credit-to-multiple-invoices routes. All IDs in those bodies are partner invoice UUIDs (the `id` field on invoice/memo objects).
The invoice object
Core fields returned on invoice, estimate, and credit memo records.
Attributes
iduuidDocument identifier (UUID). Use in path parameters.
invoiceNumberstringHuman-readable document number.
invoiceTypeenumDocument type.
One of: invoice, estimate, memo
customerUuiduuidUUID of the customer this document belongs to.
datedateDocument date (ISO).
dueDatedateDue date (ISO), when applicable.
currencystringISO 4217 currency code.
statusstringDerived lifecycle status (draft, approved, sent, unpaid, partial, paid, overdue, void, etc.).
isDraftbooleanWhether the document is still a draft.
approvedbooleanWhether the document has been approved.
isSentbooleanWhether the document has been emailed to the customer.
paymentStatusstringRaw payment status (unpaid, partial, paid, etc.).
subtotalnumberSubtotal before tax.
taxTotalnumberTotal tax amount.
totalnumberGrand total including tax.
amountDuenumberOutstanding balance.
productsarrayProducts or services billed on this document.
createdAtdatetimeISO 8601 creation timestamp.
updatedAtdatetimeISO 8601 last update timestamp.
{
"id": "f6a7b8c9-d0e1-2345-fabc-456789012345",
"invoiceNumber": "INV-1042",
"invoiceType": "invoice",
"customerUuid": "dfa3219e-6af8-4c53-997a-037534f63a35",
"date": "2026-03-01",
"dueDate": "2026-03-31",
"currency": "USD",
"status": "sent",
"isDraft": false,
"approved": true,
"isSent": true,
"paymentStatus": "unpaid",
"subtotal": 1000,
"taxTotal": 85,
"total": 1085,
"amountDue": 1085,
"products": [
{
"productUuid": "aa11bb22-cc33-dd44-ee55-ff6677889900",
"description": "Consulting services",
"quantity": 10,
"unitPrice": 100,
"nonTaxable": false
}
],
"createdAt": "2026-03-01T09:00:00.000Z",
"updatedAt": "2026-03-02T11:15:00.000Z"
}Credit memos share these routes
Credit memos use the same endpoints with `invoiceType: "memo"`. See the Credit Memos API reference for memo-focused examples.Non-draft edits are restricted
Updates to approved or sent invoices are field-specific. Many invalid changes return 400. Concurrent updates may fail with a lock error.Related
Recent changes
Connections, reconciliations, opening balance, workspace cutover, and transaction bulk ops
Documented Partner API groups for bank Connections (including Plaid Hosted Link connect/complete/reconnect), Reconciliations (create draft + complete), Opening Balance (get/set conversion balance), and Workspace (PATCH cutoverDate). Added PATCH /partners/transactions/change-category-bulk and exclude-bulk. Removed non-existent POST /partners/bills/bulk and /partners/invoices/bulk from the reference. Extended the MCP tool catalog with the matching COUNT_* tools plus remote-only COUNT_get_bulk_task_status and COUNT_remember/recall/forget.
Budgets API and documentation parity
Added the Budgets API reference (14 endpoints), invoice send-history, and account sub-types list. Introduced an automated parity check (`npm run check:parity`) that compares documented routes against count-dev. Normalized customer path parameters to `{uuid}` and fixed the documents chunk-upload progress path.
Complete Partner API reference
Documented all remaining API reference groups: Chart of Accounts, Vendors, Products & Services, Recurring Invoice Templates, Credit Memos, Bills, Journal Entries, Tags, People, Projects, Tasks, Time Entries, Expense Receipts, Reports, and Workspace Stats. Added missing invoice endpoints (audit log, attachments, credit application, remove transaction) and group overviews for Invoices and Transactions.
Endpoints
/partners/invoicesReturns a paginated list of invoices, estimates, or credit memos.
/partners/invoices/{uuid}Retrieves a single invoice, estimate, or credit memo by its UUID.
/partners/invoicesCreates an invoice, estimate, or credit memo (invoiceType: "memo").
/partners/invoices/{uuid}Updates an invoice. Edits to non-draft invoices are field-specific and may be rejected.
/partners/invoices/{uuid}/approveApproves a draft invoice or credit memo.
/partners/invoices/{uuid}/sendEmails the invoice to the customer. Requires a non-draft invoice with a customer and products.
/partners/invoices/{uuid}/public-linkReturns a shareable public link for the invoice, creating the public token if needed.
/partners/invoices/{uuid}/audit-logReturns the audit history for an invoice, estimate, or credit memo.
/partners/invoices/{uuid}/send-historyReturns email send history and public-view analytics for an invoice, estimate, or credit memo.
/partners/invoices/{uuid}/attachmentsAttaches files to an invoice by URL.
/partners/invoices/{uuid}/attachments/uploadUploads a file attachment via multipart form data.
/partners/invoices/{uuid}/apply-multiple-credit-to-invoiceApplies one or more credit memos to the target invoice.
/partners/invoices/{uuid}/apply-credit-to-multiple-invoicesApplies a credit memo to one or more target invoices.
/partners/invoices/{uuid}/remove-creditUnapplies a credit memo from an invoice.
/partners/invoices/{uuid}/remove-transactionUnassigns a payment transaction from an invoice.
/partners/invoices/{uuid}Deletes an invoice, estimate, or credit memo.
