Returns (RMA)
Returns (RMA) tracks customer-initiated return requests through a Requested → Approved → Received → Completed pipeline (with Rejected as an alternate outcome). Once an RMA reaches Approved, Received or Completed, you can issue a credit note directly from its detail panel, which creates a linked WholesaleCreditNote record and opens a printable credit note.
Overview
Every RMA gets an auto-generated number (RMA-YYYYMMDD-#### with a random 4-digit suffix) and starts in REQUESTED status; only REQUESTED or REJECTED RMAs can be deleted, enforced by the backend as well as hidden/shown by the UI.
The New RMA form captures customer, an optional free-text Order ID, reason, condition on receipt and a total refund amount — it does not include any way to add return line items, so RMAs created through this page always have an empty items list.
Customer selection is a dropdown of Wholesale Customers (GET /wholesale/customers), but only the businessName text is stored on the RMA as customerName — no customer ID link is saved, even though the schema has a wholesaleCustomerId column.
Status buttons only ever allow moving forward one step at a time (REQUESTED→APPROVED/REJECTED, APPROVED→RECEIVED/REJECTED, RECEIVED→COMPLETED); there is no way to move an RMA backward from this screen.
"Issue Credit Note" calls POST /wholesale/rma/:id/credit-note, which the backend only allows once per RMA and only when the RMA is APPROVED, RECEIVED or COMPLETED — the resulting credit note copies the RMA's items and totalRefund exactly as-is (as totalAmount) and cannot be edited from this flow.
Before You Start
- You must have the Billing feature enabled on your plan.
- Issuing a credit note requires the RMA to already be APPROVED, RECEIVED or COMPLETED.
Step-by-Step Guide
1 Log a new return request
- Open Wholesale → Returns (RMA) and click "+ New RMA".
- Select the Customer from the dropdown (required).
- Optionally enter the original Order ID, pick a Reason and Condition on Receipt, and enter a Total Refund Amount.
- Add any Notes, then click "Create RMA" — it is created in REQUESTED status with an auto-generated RMA number.
2 Approve or reject a return
- Open a REQUESTED RMA from the table (click the row) or use the inline action buttons.
- Click APPROVED to accept the return, or REJECTED to decline it.
3 Receive goods and complete the return
- Once an RMA is APPROVED, click RECEIVED after the returned goods physically arrive.
- Click COMPLETED once the return has been fully processed on your side.
4 Issue a credit note for a return
- Open the RMA's detail panel (click its row) once it is APPROVED, RECEIVED or COMPLETED.
- Click "Issue Credit Note" — a WholesaleCreditNote record is created for the RMA's customer and refund amount, and a printable credit note opens automatically in a new window.
- Use "Print [Credit Note Number]" in the detail panel afterward to reprint it during the same visit to the page.
5 Delete a mistaken RMA
- Only RMAs still in REQUESTED or REJECTED status show a delete button.
- Click the trash icon and confirm — the RMA is permanently removed.
Every Field & Button, Explained
| Field / Button | What it does |
|---|---|
RMA Number | Auto-generated as RMA-YYYYMMDD-#### (date of creation plus a random 4-digit suffix, not a sequential counter). |
Customer Name * | Required. Chosen from a dropdown of Wholesale Customers; only the business name text is saved on the RMA, not a customer ID link. |
Order ID (optional) | Free-text/numeric field for the original wholesale order this return relates to. Not validated against real orders — any number is accepted. |
Reason | One of: Defective / Damaged, Wrong Item Delivered, Excess Quantity, Quality Issue, Customer Cancelled, Other. |
Condition on Receipt | One of: Resaleable, Damaged, Quarantine / Hold. Set at creation, and can also be updated when advancing status (the backend accepts it on the status-update call, though the UI does not currently expose an input for changing it during status updates). |
Total Refund Amount (₹) | Manually entered refund amount; this is the amount that gets copied to totalAmount on the credit note if one is issued. |
Notes | Free-text notes shown in the table row detail and detail panel. |
Status | REQUESTED → APPROVED/REJECTED → RECEIVED → COMPLETED. Forward-only from this screen; REJECTED and COMPLETED have no further action buttons. |
Return Items (detail panel) | Would list productName/quantity/unit for each returned line item — always empty for RMAs created via this page's New RMA form, since it has no line-item entry UI. |
Issue Credit Note | Visible only when status is APPROVED, RECEIVED or COMPLETED and no credit note has been issued yet in the current page session. Creates a WholesaleCreditNote copying the RMA's customer, items and refund total. |
Tips & Best Practices
- If you need the credit note to reflect specific returned items, expect the items list to be empty unless it was populated through the API directly — this page's New RMA form does not let you add line items.
- Use the Order ID field as a reference note for your own records; it is not linked to or validated against the actual Wholesale Order.
- Delete mistaken RMAs quickly, while they are still REQUESTED — once approved (or rejected), the only way to remove a REJECTED one is still possible, but an APPROVED/RECEIVED/COMPLETED RMA can never be deleted from this page.