> ## Documentation Index
> Fetch the complete documentation index at: https://docs.launchmystore.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Returns Desk

> Self-serve returns & exchanges portal with an RMA workflow, refunds, store credit and exchanges

# Returns Desk

A returns portal on your storefront and the workflow behind it. Comparable to
Loop Returns.

## For merchants

* **Portal** at `/apps/returns-desk/portal` on your storefront: signed-in
  shoppers see their orders; guests look up an order by number + email. They
  pick items and a reason, then choose a **refund**, **store credit** (with an
  optional bonus %) or an **exchange** for another variant of the same product.
* **Policy** (Settings → Shipping → Returns policy): return window, reasons,
  reasons that always need review, final-sale tags / SKUs, restocking fee,
  when original shipping is refunded, auto-approval limits, a customer
  blocklist, return address or label mode, notification addresses.
* **RMA workflow**: requested → approved → in transit → received → resolved,
  with deny and cancel. Accept or reject items at receiving; the money follows
  what was accepted.
* **Resolving**: refunds run through the platform's refund engine (to the
  original payment, or recorded as a manual refund for offline orders); store
  credit is issued as a gift card; an exchange creates the replacement order
  and credits any price difference.
* **Admin**: a returns panel on every order, "Start a return" for a shopper on
  the phone, and a returns queue with return rate, top reasons and most
  returned products. Shoppers are emailed at every step.

## For developers

| Contract | Used for |
| - | - |
| [App Proxy](https://docs.launchmystore.io/extensions/app-proxy.md) | The portal page and its calls; `logged_in_customer_id` binds a signed-in shopper to their own orders |
| [Customer-account blocks](https://docs.launchmystore.io/extensions/customer-account.md) | "Start a return" / return status on the order page and order list |
| [Admin blocks](https://docs.launchmystore.io/extensions/admin-blocks.md) + [admin action](https://docs.launchmystore.io/extensions/admin-actions.md) | RMA panel, queue, start-a-return modal |
| [Orders API](https://docs.launchmystore.io/api-reference/orders/list.md) filters `customer_id`, `email`, `name` | "Your orders" and guest lookup |
| [Refund API](https://docs.launchmystore.io/api-reference/orders/refund.md) | Refund to original / manual, or the store-credit ledger entry |
| [Gift Cards API](https://docs.launchmystore.io/api-reference/gift-cards/create.md) | Store credit (and the exchange difference) |
| [Create Order](https://docs.launchmystore.io/api-reference/orders/create.md) | The exchange order, linked to the customer |
| [Products API](https://docs.launchmystore.io/api-reference/products/get.md) | Variants offered for exchange; tags for final-sale rules |
| [Metafields](https://docs.launchmystore.io/api-reference/metafields/list.md) (`shop`, `order`) + app data | Policy; per-order RMA state; RMA-number index |
| [Transactional email](https://docs.launchmystore.io/api-reference/email-templates/send.md) | Requested / approved / denied / received / resolved emails, merchant alerts |

Line prices on the order are already in the order's currency; order-level
discounts are not on the lines, so the app allocates them across the items it
refunds and caps every refund at the order's refundable balance.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.