---
key: process-a-return-or-exchange
title: Process a return or exchange
audience: staff
section: sales-billing/pos
routes: ["/pos/returns"]
permissions: ["pos.returns.read"]
features: ["pos.returns"]
since: 0.0.1
updated: 0.0.1
status: published
summary: Take items back from a counter sale, choose whether they go back to stock, and refund the customer to their original payment, store credit or a replacement sale.
keywords: [refund, return, exchange, restock, store credit, no receipt, bring back, swap]
related: [ring-up-a-sale, reprint-or-resend-a-receipt, refund-a-payment]
---

In the sidebar, open **Sales & Billing**, then **Counter Sales (POS)**, then **Returns**. The page address is `/pos/returns`. The page heading reads **Returns and exchanges**.

## Before you start

- Creating a return and completing an exchange are separate permissions. Ask your admin if **Complete return** stays greyed out.
- For an exchange, ring up the replacement sale first on the lane (see [[ring-up-a-sale]]) so you can link it.

## Steps

1. Type into **Search receipt number, sale number, or customer** and press the original sale. A panel opens with the **Source sale**, the customer and the **Original total**.
2. For each item coming back, set the **Quantity**, pick the **Restock outcome** (**Restock**, **Discard**, **Quarantine**, **Return to vendor** or **Customer kept**) and, if it differs from the overall reason, a **Line reason**.
3. Under **Policy and refund rules**, pick a **Workflow reason**. Tick **Treat this as a no-receipt return** if the customer has no receipt.
4. Choose how the money goes back:
   - **Refund back to the original tender** returns it the way they paid.
   - **Issue store credit** and a **Store credit amount** keeps it on their account.
   - Otherwise pick a **Manual refund tender** (**Cash**, **Card record** or **Manual**) and type the **Manual refund amount**.
5. For an exchange, search under **Optional exchange link** for the replacement sale and pick it. **Clear replacement sale** removes it.
6. Press **Preview**. Nova shows the **Return total**, **Refund plan**, **Store credit**, **Outstanding** amount, any **Exchange delta** and the **Approval checks**.
7. Press **Complete return**, or **Complete exchange** when a replacement sale is linked. Stock and the refund are written only now.

> **Note:** Amounts on this page are typed in cents, so $25.00 is 2500.

## What you see

- The list shows past sales with their receipt, customer, **Status**, total, **Completed** date and **Payment**. Each row's menu offers **Open workflow** and **Open receipt history**.
- Filter by **Status**: **Completed** or **Voided**.
- The counts above the list show **Matches**, **Page total** and the **Reason codes** available to you.

## If something looks different

- An item does not appear in the panel: every unit of it was already returned.
- **Preview** says the return needs manager approval: a manager approves it under **Manager approvals** on the lane, then you press **Complete return** again.
- **Complete return** is greyed out: your role cannot create returns or complete exchanges.
- The original payment was taken as an invoice payment rather than at the counter: see [[refund-a-payment]] instead.

[[route:/pos/returns|Open POS Returns]]
