Skip to content
Knowledge ERP Docs
API Reference ↗
Sales

Credit Memos

A credit memo is a balance on account — issued to a customer after a return or manual adjustment — that can be applied against open invoices to reduce what they owe.

A credit memo is a formal record of a credit you owe a customer. It holds a total credit amount, tracks how much of that credit has already been applied to invoices, and exposes the remaining balance at a glance. Credit memos are auto-numbered on creation (CM-0001, CM-0002, …) and linked to the customer they belong to. They are most often generated automatically when you process a customer return (RMA), but you can also create them manually for price adjustments, goodwill credits, or billing corrections.

Credit memos do not reduce a customer's account balance on their own — they become money only when applied to an open invoice. An unapplied memo just sits as Issued until you use it.

Creating a credit memo #

Go to Sales → Credit Memos → New Credit Memo to open the creation form:

  • Customer — required; which customer the credit belongs to. Selecting a customer enables the return selector.
  • Customer Return — optionally link this memo to the specific RMA that triggered it. When a return's Generate Credit Memo action is used, this link is set automatically.
  • Status — starts as Draft; advance to Issued when the credit is ready to be applied (see statuses below).
  • Issued Date — the date the credit takes effect; optional, defaults to blank until you set it.
  • Credit Amount — the dollar value of the credit. Entered in dollars in the UI; stored in cents in the database and API (5000 = $50.00).
  • Notes — free-text remarks, visible on the memo's detail page.

Once saved the memo gets a memo number (CM-XXXX) that never changes and appears in all tables and exports.

Memo statuses #

A memo moves through four statuses over its life:

  • Draft (draft) — created but not yet ready to apply; useful when the return is still being processed.
  • Issued (issued) — the credit is confirmed and can be applied to an invoice. Returns that use Generate Credit Memo land here directly.
  • Applied (applied) — the full credit amount has been applied to one or more invoices; nothing remains. Knowledge ERP sets this automatically when amount_applied reaches amount.
  • Voided (voided) — the memo has been cancelled and can no longer be applied.

Status transitions are manual except the issued → applied promotion, which happens automatically when the last cent is consumed.

Applying a credit memo to an invoice #

Open the credit memo's detail page and use the Apply to Invoice action. A form lets you choose an open invoice for that customer and enter the dollar amount to apply. The system applies up to the smaller of the remaining memo balance and the remaining invoice balance — it will never over-apply. After application:

  • The invoice's amount paid increases.
  • The memo's amount_applied increases by the same amount.
  • If the memo is now fully consumed, its status flips to Applied automatically.

You can apply one memo to multiple invoices in sequence (partial application is fine) until the balance reaches zero.

The credit memo list #

The list at Sales → Credit Memos shows every memo with its Memo #, Customer, linked Return #, Status badge, Issued date, Amount, and Applied amount. Sort by any column, filter by trashed records, or search by memo number or customer name. Click any row to open the detail view, which also shows the Change History tab for a full audit trail of edits.

Relationship to returns and invoices #

The typical flow is:

  1. A customer return (RMA) is approved and the Generate Credit Memo action is triggered — Knowledge ERP creates an Issued memo for the return's total, linked to the same customer and return.
  2. The customer's next invoice comes in; staff apply the memo to reduce what is owed.
  3. Once fully applied, the memo closes as Applied and the return shows no outstanding credit.

You can also create a credit memo that is not linked to a return — for example, a one-off pricing adjustment or a customer service courtesy credit.

Doing it from the API #

# List credit memos for a specific customer
curl "https://your-domain.com/api/v1/customer-credit-memos?customer_id=CUSTOMER_ID&status=issued" \
  -H "Authorization: Bearer $TOKEN"

# Create a manual credit memo
curl -X POST "https://your-domain.com/api/v1/customer-credit-memos" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "customer_id": "CUSTOMER_ID",
    "amount": 5000,
    "status": "issued",
    "issued_at": "2026-06-02",
    "notes": "Price adjustment for order #ORD-0042"
  }'

# Mark a memo as voided
curl -X PATCH "https://your-domain.com/api/v1/customer-credit-memos/{id}" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"status": "voided"}'

Money fieldsamount, amount_applied, and amount_remaining are integers in cents over the API (5000 = $50.00). The UI shows dollars; the API speaks cents.