API Reference
Credit Memos
Credit memos reduce what a customer owes. They are invoice records with invoiceType memo and use the same /partners/invoices routes as invoices and estimates. Apply approved memos to open invoices with the credit-application endpoints.
Last updated 2026-10-03
Overview
Credit memos are customer credits issued against prior billing. In COUNT they are stored as invoice-shaped records with `invoiceType: "memo"`. There is no separate `/partners/credit-memos` base path — every memo operation uses the Invoices API routes documented here with memo-specific examples.
Partner responses expose each memo UUID as `id`. Create memos with `invoiceType: "memo"` and optionally link them to an open invoice at create time via `appliedToInvoiceUuid`. Credit memos cannot be recurring; use Recurring Invoice Templates for scheduled invoices only.
Key concepts
Shared routes with invoices
List, retrieve, create, update, approve, delete, and apply credit using `/partners/invoices` paths. Filter lists with `invoiceType=memo`.
Create with appliedToInvoiceUuid
POST /partners/invoices with `invoiceType: "memo"` and optional `appliedToInvoiceUuid` links the memo to an open invoice when created.
Approve before applying
A memo must be approved before its balance can be applied to invoices. PATCH /{uuid}/approve accepts the same body as invoice approve (optional skipJesOnboarding).
Applying credit
Apply one memo to many invoices with apply-credit-to-multiple-invoices (path is the memo UUID). Apply many memos to one invoice with apply-multiple-credit-to-invoice (path is the target invoice UUID).
Refunding a memo
Record a refund paid out to the customer with PATCH /partners/invoices/{memoUuid}/add-transactions and Expense transactions. It is the only refund route: assign-to-bills-invoices rejects credit memos. MCP equivalent: COUNT_record_credit_memo_refund.
Cannot recur
Credit memos cannot be recurring templates. Attempting invoiceType memo on recurring template create returns 400.
The credit memo object
Same core shape as an invoice object, with invoiceType memo and optional appliedToInvoiceUuid linking to the credited invoice.
Attributes
iduuidCredit memo identifier (UUID). Use in path parameters.
invoiceNumberstringHuman-readable memo number (for example CM-0042).
invoiceTypeenumAlways memo for credit memos.
One of: memo
customerUuiduuidUUID of the customer receiving the credit.
appliedToInvoiceUuiduuidOptional UUID of the invoice this memo credits at create time.
datedateMemo date (ISO).
currencystringISO 4217 currency code.
statusstringDerived lifecycle status (draft, approved, sent, unpaid, partial, paid, void, etc.).
isDraftbooleanWhether the memo is still a draft.
approvedbooleanWhether the memo has been approved.
paymentStatusstringRaw payment/application status.
subtotalnumberSubtotal before tax.
taxTotalnumberTotal tax amount.
totalnumberTotal credit amount.
amountDuenumberRemaining credit balance available to apply.
productsarrayProducts or services on the memo.
createdAtdatetimeISO 8601 creation timestamp.
updatedAtdatetimeISO 8601 last update timestamp.
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"invoiceNumber": "CM-0042",
"invoiceType": "memo",
"customerUuid": "dfa3219e-6af8-4c53-997a-037534f63a35",
"appliedToInvoiceUuid": "f6a7b8c9-d0e1-2345-fabc-456789012345",
"date": "2026-03-01",
"dueDate": null,
"currency": "USD",
"status": "approved",
"isDraft": false,
"approved": true,
"isSent": false,
"paymentStatus": "unpaid",
"subtotal": 500,
"taxTotal": 0,
"total": 500,
"amountDue": 500,
"products": [
{
"productUuid": "aa11bb22-cc33-dd44-ee55-ff6677889900",
"description": "Credit for overbilling on prior invoice",
"quantity": 1,
"unitPrice": 500,
"nonTaxable": true
}
],
"createdAt": "2026-03-01T09:00:00.000Z",
"updatedAt": "2026-03-02T11:15:00.000Z"
}Same handlers as invoices
Memo retrieve, update, approve, and delete use the same backend handlers as invoices. Response envelopes and derived status rules match the Invoices API.All IDs in apply bodies are UUIDs
In credit-application requests, every id and memoId is the partner UUID from the id field on invoice or memo objects — not internal numeric ids.Related
Recent changes
Bill submit and refunds, reconciliation drafts, report filters, 30 MCP tools, and the Claude plugin
Documented the five partner routes the reference was missing: POST /partners/bills/{uuid}/submit, POST /partners/bills/{uuid}/assign-transaction (pay a bill, or refund a vendor memo with an income transaction), PATCH /partners/invoices/{uuid}/add-transactions (including credit memo refunds), and PATCH and DELETE /partners/reconciliations/{uuid} for correcting or discarding a draft. The account transactions report gains a reference-number range (checkNumberFrom/checkNumberTo) and the unknown-counterparty drill-down (unknownCustomerAr/unknownVendorAp), both accrual-only. Invoice and credit memo lines accept free-text Custom lines with categoryAccountUuid and name. Corrected the reference where it disagreed with the backend: dueDate is required on invoices and estimates, bills move through submitted and rejected as well as draft and approved, and a bill does have its own assign-transaction route. npm run check:parity now reports 178 documented routes against 178 backend routes. The MCP catalog adds 30 tools — customer contacts, addresses, notes, merge and revenue overview, GST settings, bill submit and memo refunds, reconciliation draft update/delete, COUNT_find_tool, COUNT_report_problem, and saved AI skills — moving the advertised count from 180 to 210. New pages cover the COUNT Claude plugin (/tools/claude-plugin) and the MCP brain, workspace memory and problem reports (/guides/mcp-brain-and-memory), and the FAQ gains the connector and API topics COUNT_knowledge serves to agents.
Accounting Playbooks and Ledger Semantics published as documentation
The workflows and behaviour rules the MCP server serves to agents through COUNT_playbooks and COUNT_knowledge are now readable documentation. Accounting Playbooks (/guides/playbooks) covers nine ordered workflows across 54 steps — invoicing, credit memos, recurring templates, vendor bill payment, chart-of-accounts setup, migration imports, budget planning and round-trip, and month-end review — each naming the exact tool per step. Ledger Semantics & Lifecycles (/guides/ledger-semantics) documents 33 confirmed behaviours across twelve resources: the state each operation is valid in, the fields accepted and then ignored, and the calls that cannot be undone, with every irreversible behaviour collected in one table at the top of the page. Both pages carry the COUNT_playbooks and COUNT_knowledge ids they were ported from so the agent-facing and human-facing copies stay in step. Playbooks, lifecycle sections, and individual behaviour rules are indexed into site search.
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 credit memos in the workspace.
/partners/invoices/{uuid}Retrieves a single credit memo by its UUID.
/partners/invoicesCreates a credit memo for a customer.
/partners/invoices/{uuid}Updates a credit memo. Edits to non-draft memos are field-specific and may be rejected.
/partners/invoices/{uuid}/approveApproves a draft credit memo so its balance can be applied to invoices.
/partners/invoices/{uuid}Deletes a credit memo.
/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.
