Home / Help Center / pos-app-wholesale / wholesale / Debit Notes
🧾 wholesale

Debit Notes

Debit Notes are raised against suppliers — not customers — to formally claim back money for price differences, short supply, quality issues, returns to a supplier or other reasons. Each debit note moves through a fixed forward-only status pipeline (Draft → Sent → Acknowledged → Settled) and can be printed as a document to send to the supplier.

📍 Menu path: Wholesale → Debit Notes
👤 Who uses it: All roles with the Billing feature enabled

Overview

A debit note is created with a supplier name, an optional PO reference (free text, not linked to an actual purchase order record), a reason, and one or more manually entered line items (product/description, quantity, unit price); the total is computed automatically as items are added.

The status pipeline is strictly forward-only and single-path: DRAFT → SENT → ACKNOWLEDGED → SETTLED, driven by one "→ next status" button per row — there is no reject/cancel state and no way to move backward.

The Delete button is only shown in the UI for DRAFT debit notes, but the underlying deleteDebitNote function has no server-side status check — it will delete a debit note in any status if called directly via the API, unlike RMA deletion which is enforced on the backend.

Editing an existing debit note's supplier, items or notes has no dedicated UI — the only update action exposed on this page is the forward status-advance button (PUT with just { status }), even though the backend's update function accepts supplierName, reason, items, totalAmount and notes as well.

Before You Start

Step-by-Step Guide

1 Raise a new debit note

  1. Open Wholesale → Debit Notes and click "+ New Debit Note".
  2. Enter Supplier Name (required) and, if relevant, a PO Reference.
  3. Choose a Reason: Price Difference, Short Supply, Quality Issue, Return, or Other.
  4. Add one or more Line Items using the product/description, qty and unit price fields, clicking "+" after each — the running Total updates automatically.
  5. Add optional Notes, then click "Create" — the note is saved in DRAFT status with an auto-generated debit note number.

2 Send and track a debit note

  1. On a DRAFT note, click the "→ SENT" button once you have sent it to the supplier.
  2. Click "→ ACKNOWLEDGED" once the supplier confirms receipt/agreement.
  3. Click "→ SETTLED" once the supplier has settled the claim (refund, credit, adjustment, etc.).

3 Print a debit note for the supplier

  1. Click the print icon on any row — this works regardless of status.
  2. A printable document opens showing supplier, date, reason, PO reference (if set), line items and total debit amount, ready to send or file.

4 Filter and delete

  1. Use the status dropdown to narrow the list to one pipeline stage.
  2. Delete is only available (as a button) on DRAFT notes — click the trash icon and confirm to permanently remove it.

Every Field & Button, Explained

Field / ButtonWhat it does
DN NumberAuto-generated debit note number assigned at creation (via buildDebitNoteNumber, based on the existing count of debit notes for the tenant).
Supplier Name *Required free-text supplier name; not linked to a formal supplier/vendor record by this form.
PO ReferenceOptional free-text purchase order reference for your own records — not validated against or linked to an actual purchase order.
ReasonOne of Price Difference, Short Supply, Quality Issue, Return, Other — displayed with underscores replaced by spaces.
Line ItemsEach line captures a product/description, quantity and unit price; Amount is computed as qty × unit price the moment you click "+" and is not editable afterward except by removing and re-adding the line.
TotalSum of all line item amounts, recalculated automatically whenever a line is added or removed; sent to the server as totalAmount.
NotesOptional free-text notes, included on the printed document.
StatusDRAFT → SENT → ACKNOWLEDGED → SETTLED. Each row shows exactly one "→ next status" button reflecting the only allowed next step; there is no way to go back or skip a stage from this UI.
Print iconOpens a printable debit note document (supplier, date, reason, PO ref, line items, total) in a new window — available at any status.
Delete (trash icon)Only rendered for DRAFT notes in the UI. Permanently deletes the note; there is no confirmation beyond the browser confirm() dialog, and no undo.

Tips & Best Practices

Troubleshooting & FAQ

I need to fix a typo in the supplier name or an item after creating the note.
There is no edit UI for these fields on this page — the only update action available is the forward status button. The backend's updateDebitNote function does technically accept supplierName/items/notes changes, but nothing in this screen calls it that way.
The delete button disappeared after I advanced the status.
Expected — the trash icon is only rendered for DRAFT notes in the UI. Note that this is a front-end-only restriction: the deleteDebitNote function itself has no status guard, so a SENT/ACKNOWLEDGED/SETTLED note could still be deleted via a direct API call even though this screen will not let you do it.
Can I reject or cancel a debit note the supplier disputes?
Not from this page — the only status transitions available are the fixed forward sequence DRAFT → SENT → ACKNOWLEDGED → SETTLED. There is no REJECTED/CANCELLED status for debit notes (unlike RMAs, which do have a REJECTED status).
Is a debit note linked to my Wholesale Orders or RMAs?
No — debit notes are a separate, supplier-facing record. They are not connected to Wholesale Orders, and unlike credit notes (which are always created from an RMA), a debit note has no required link back to an RMA or order; the Order ID/RMA concepts used on the Returns page do not apply here.
The total on the printed document does not match what I expected.
Total is computed client-side as the sum of line item amounts at the moment each line is added (qty × unit price at that time); if you removed and re-added lines with different values, only the current set of lines in the form counts toward the total that gets saved.