Returns & RMAs
List RMAs
List all RMAs with pagination, filtering, and sorting via Spatie QueryBuilder.
Create RMA
Create a new RMA for a fulfilled sales order.
Get RMA
Get a single RMA with full detail including lines, return receipts, sales credits, and approved-by user.
Update RMA
Update an RMA's warehouse and/or notes.
Delete RMA
Delete an RMA. Only draft RMAs can typically be deleted. Returns 422 if the RMA cannot be deleted.
Approve RMA
Approve a draft RMA. Records the approving user and approval timestamp.
Cancel RMA
Cancel an RMA. Only RMAs in non-terminal statuses can be canceled.
Close RMA
Close an approved or received RMA.
Reopen RMA
Reopen a closed RMA.
Uncancel RMA
Restore a canceled RMA back to draft status.
Revert to Draft
Revert an open stock take back to draft status.
Mark as Shipped
Mark an RMA as shipped by the customer.
Update Shipping Details
Update shipping details for an RMA. Automatically transitions status based on whether shipping info is added or removed:
Clear Shipping Details
Clear all shipping information from an RMA. If no receipts exist and the RMA is in IN_TRANSIT, it transitions back to APPROVED.
Add Line to RMA
Add a new line to an existing RMA. Cannot add lines to terminal (closed/canceled) RMAs.
Update RMA Line
Update an RMA line. Cannot update lines on closed or canceled RMAs.
Remove Line from RMA
Remove a line from an RMA. Returns 422 if the RMA is in a terminal state or if the line doesn't belong to the RMA.
Create Return Receipt from RMA
Record a return receipt against an RMA (items physically received at the warehouse).
Bulk Approve
Bulk approve multiple RMAs. Returns success and failed counts.
Bulk Cancel
Bulk cancel multiple RMAs.
Bulk Close
Bulk close multiple RMAs.
Bulk Delete
Delete multiple Shopify products from the local database (does not delete in Shopify).
Bulk Revert to Draft
Bulk revert approved RMAs back to draft status.
List Return Receipts
List all return receipts with pagination. Supports filtering by RMA, warehouse, blind receipts (no RMA), and search by ID or RMA number.
Create Return Receipt
Create a new return receipt (blind or RMA-linked). Adjusts inventory based on each line's action.
Get Return Receipt
Get a single return receipt with full detail, including RMA and sales order, warehouse, received-by user, and all receipt lines with products, original products, RMA lines, and return reasons.
Delete Return Receipt
Delete a return receipt and all its lines. Reverses inventory adjustments.
Add Line to Return Receipt
Add a new line to an existing return receipt. Creates an inventory movement for the specified action.
Update Return Receipt Line
Update non-inventory-impacting fields on a return receipt line. Only notes and return_reason_id can be changed after creation. Fields that affect inventory (quantity, action, product_id) cannot be updated — delete and recreate the line to correct those.
Remove Line from Return Receipt
Remove a specific line from a return receipt. Reverses the inventory adjustment for that line. The line must belong to the specified return receipt.
Delete Return Receipt Line (standalone)
Delete a return receipt line directly by its ID (without specifying the parent receipt). If this is the last line on the return receipt, the entire return receipt is deleted automatically.
List Return Reasons
Returns all return reasons.
Create Return Reason
Create a new return reason.
Bulk Delete Return Reasons
Bulk delete multiple return reasons by ID.
Get Return Reason
Retrieve a single return reason by ID.
Update Return Reason
Update an existing return reason.
Delete Return Reason
Delete a return reason. Will fail if reason is linked to existing return receipt lines.
Check Deletable
Check which nominal codes can be deleted. A code cannot be deleted if it is linked to sales order lines or used in nominal code mapping settings.
Archive Return Reason
Archive a single return reason.
Unarchive Return Reason
Unarchive a single return reason.
Bulk Archive Return Reasons
Bulk archive multiple return reasons.
Bulk Unarchive Return Reasons
Bulk unarchive multiple return reasons.