Skip to main content

Credit Notes

What it is

Every credit note raised against an invoice, in one list, with the total credit issued for whatever you have filtered to. This is the screen the old SOA-side credit-note hub was folded into on 2026-06-18 — /soa/credit-notes now just redirects here.

Who can open it

Needs the finance.invoices feature grant while FEATURE_GRANULAR_RBAC is on; the owner bypasses it. With the flag off, any signed-in account can reach it by URL.

Before you start

There are two different ways to unwind a credit note, and they are not the same thing.

  • Cancel, on the credit note's own screen, is the reversal. It marks the note cancelled and the receivable comes back on the invoice — the record of what happened stays.
  • Delete Selected, on this list, removes the rows outright. The receivable also comes back, but there is no longer any trace that a credit was ever issued.

Use Cancel unless you are cleaning up something that should never have existed. The delete prompt says as much: "Permanently delete N credit note(s)? This restores the receivable on any linked invoice and cannot be undone."

"Issued Credit (Filtered)" adds currencies together and labels the total USD

The headline card sums the filtered credit notes as plain numbers and formats the result as US Dollars. With INR and USD credit notes in the same filter, that figure is not money in any currency. The per-row Amount column is correct — each row is formatted in its own currency.

The list follows the entity switcher, and it is paged. The counts and totals describe the current filter, not the whole database.

Every control on the page

Header:

ControlWhat it does
Tally XMLDownloads Tally_CreditNotes_<date>.xml for every credit note matching the current filter, not just the page you can see, and not just the ones you ticked
+ New Credit NoteGoes to New Credit Note

Cards and filters:

ControlWhat it does
SearchCN #, client, or invoice…. Filters on the server, so it searches every page
Status buttonsAll, draft, issued, cancelled
Delete SelectedAppears once rows are ticked. Deletes the ticked rows on this page

The table — tick box, Client / Entity, CN #, Invoice Ref, Date, Amount, Status, and Open. Paging is ‹ Prev / Next › at the foot. An out-of-range ?page= renders the last real page rather than erroring.

⚠️ Delete Selected only ever acts on the rows selected on the current page, even though the header tick box and the Tally export both operate on the whole filtered set. Read the number in the prompt.

What it writes

The list writes nothing by itself.

  • Delete Selected posts to /api/credit-notes/bulk-delete. The rows go, and the receivable returns to any linked invoice.
  • Tally XML posts the matching ids to /api/credit-notes/export/tally and downloads the file. It is a read.
  • Open goes to the credit note, where Issue and Cancel live. Cancel is the reversal that keeps the record.

When it goes wrong

"No credit notes to export". The current filter matches nothing, so there is nothing to put in the file. Widen the status filter or clear the search.

"Export failed: …" The server's own message. The commonest cause is a filter matching more rows than the export can build in one go.

"Delete failed: …" Nothing was deleted; the message is the API's.

A credit you expected is missing. Check the entity switcher, then the status filter — it does not open on All, so a draft or cancelled note can be hidden by whichever status you last chose.

The total looks wrong. See the warning above — the headline sums across currencies.