Credit Notes
Issue, track, and apply credit notes against invoices — full lifecycle with partial application support.
Credit notes document refunds, returns, and billing adjustments. Issue one to reduce what a customer owes or to log a refund you've already processed.
What a credit note does
- Reduces the balance on a linked invoice (via apply-to-invoice)
- Documents a refund you've already processed outside Workestra
- Records an adjustment for wrong amounts or returned goods
- Keeps the audit trail — voiding a credit note preserves history
The credit note lifecycle
create issue apply all
──────► draft ───► issued ──────────► applied
│ │
│ ├─ apply part ─► partially_applied
│ │ │
│ │ └─ apply rest ─► applied
│ │
│ └─ void ──────────────────────────────► voided
│
└─ void (before issuing) ─────────────────────────► voided| Status | Meaning |
|---|---|
| Draft | Editable, deletable, not yet valid |
| Issued | Locked — ready to apply to invoices |
| Partially applied | Some amount used; remainder still available |
| Applied | Fully used; no remaining credit |
| Voided | Cancelled. Already-applied portions stay on their target invoices |
Creating a credit note
From an invoice
- Open the original invoice
- Click Create Credit Note
- Fill in the credit details (pre-populated with the invoice's customer + number)
- Save as draft or Issue immediately
Standalone
- Go to Finance → Credit Notes
- Click New Credit Note
- Pick the customer, optional linked invoice, amount, reason
- Save
Credit note fields
| Field | Required | Description |
|---|---|---|
| Customer | Yes | Who receives the credit |
| Linked invoice | No | Original invoice (auto-link when apply-to-invoice runs) |
| Credit number | Auto | Sequential CN-0001, allocated by the same atomic counter used for invoices and quotations |
| Line items | Optional | Description / qty / unit price / tax — auto-computes subtotal + tax + total |
| Amount | Yes | Total credit — auto-computed from line items if provided |
| Currency | Yes | Defaults to workspace currency |
| Reason | Yes | Why the credit is being issued |
| Notes | No | Internal notes (not shown to the customer) |
The credit notes list
Finance → Credit Notes shows:
- Four stats cards across the top — Total, Issued, Applied, Outstanding credit (available to apply)
- Status tabs — All, Draft, Issued, Applied, Partially applied, Voided
- Search — by credit number, reason, or customer name
- Per-row actions — Apply (on issued / partially-applied notes), Delete (drafts only)
- Row click — opens the detail page
The detail page
Each credit note has its own page at /finance/credit-notes/[id] with:
- Summary cards — Amount, Applied, Remaining, Issued date
- Linked invoice panel — jumps to the target invoice with its outstanding balance
- Line items table — subtotal + tax + total breakdown
- Reason + internal notes
- Action bar — Mark as issued / Apply to invoice / Void / Delete (draft only)
Applying a credit note
Click Apply to invoice from the list or detail page.
- The dialog lists every invoice in the workspace with an outstanding balance (paid, cancelled, and written-off invoices are excluded)
- Pick a target invoice
- The amount defaults to the minimum of credit remaining and invoice outstanding — you can't over-apply by mistake
- Click Apply credit
In one round-trip:
- Invoice —
paid_amountincrements; status flips to Paid (if fully covered) or Partial - Credit note —
applied_amountincrements; status flips to Applied (exhausted) or Partially applied - Both sides refresh automatically in the UI — no reload needed
Partial application across multiple invoices
| Step | Invoice | Outstanding | Credit applied | Credit remaining |
|---|---|---|---|---|
| 1 | INV-001 | €500 | €500 | €500 (was €1000) |
| 2 | INV-002 | €700 | €500 | €0 (note now Applied) |
Each apply writes a record — there's always an audit trail of which invoice got which slice of the credit.
Refund without an invoice
For refunds where there's nothing to apply against:
- Create a credit note
- Issue it
- Process the refund in your payment provider or bank
- The credit note stays in Issued state as documentation
Voiding a credit note
When a credit note was created in error or is no longer needed:
- Open the credit note (or click Void from the list)
- Confirm
Voiding keeps the record for audit but prevents further application. Any amount already applied to an invoice stays on that invoice — it represented a real refund to the customer and can't be unwound automatically. To reverse a partial application, issue a new credit note in the opposite direction or adjust the invoice manually.
Voided credit notes cannot be unvoided. If the void was a mistake, create a new credit note.
Sequential numbering
Credit notes use the same atomic numbering RPC as invoices and quotations. Numbers are guaranteed unique and sequential even under concurrent creates — no risk of duplicate CN-0001 from two users clicking Save at the same moment.
What's not in the UI yet
- Template-rendered credit-note PDFs — the
template_idandcolor_variantfields are ready; the template renderer for credit-note data ships in a follow-up release. - Send-by-email — credit notes don't currently have a send flow of their own. Download the credit note from the detail page and email manually, or wait for the React Email template to land.
- PEPPOL CreditNote documents — the UBL builder is invoice-only today. Credit-note UBL (document type
381) lands once the template pipeline is complete.
Next steps
- Invoicing — Original invoices
- Payments — Online payment capture
- Finance Settings — Configure module defaults