COUNTCOUNT
Sign Up

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

iduuid

Credit memo identifier (UUID). Use in path parameters.

invoiceNumberstring

Human-readable memo number (for example CM-0042).

invoiceTypeenum

Always memo for credit memos.

One of: memo

customerUuiduuid

UUID of the customer receiving the credit.

appliedToInvoiceUuiduuid

Optional UUID of the invoice this memo credits at create time.

datedate

Memo date (ISO).

currencystring

ISO 4217 currency code.

statusstring

Derived lifecycle status (draft, approved, sent, unpaid, partial, paid, void, etc.).

isDraftboolean

Whether the memo is still a draft.

approvedboolean

Whether the memo has been approved.

paymentStatusstring

Raw payment/application status.

subtotalnumber

Subtotal before tax.

taxTotalnumber

Total tax amount.

totalnumber

Total credit amount.

amountDuenumber

Remaining credit balance available to apply.

productsarray

Products or services on the memo.

createdAtdatetime

ISO 8601 creation timestamp.

updatedAtdatetime

ISO 8601 last update timestamp.

Example
{
  "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.

Recent changes

2026-10-03

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.

2026-09-07

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.

2026-06-21

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