Returns
Returns of paid orders, and the quote that prices a return first. Creating a return needs the acting user to have an open shift at the outlet.
📄️ List returns
The returns recorded at the outlet in `X-Outlet-ID`, newest first, with their lines and refund tenders. Filter by `order_id` to list the returns of one order. An `order_id` that is not a UUID answers `400 VALIDATION_FAILED`. Pages are keyset-based. Needs a plan with the refund order list, otherwise `403 PLAN_FEATURE_REQUIRED`.
📄️ Create a return
Takes some or all lines of a paid order back. The server prices the refund from the original order; you send the lines, not the amounts. A new return answers `201`; a retry with the same `Idempotency-Key` answers `201` with the same record.
📄️ Get a return
One return by its `id`, with its lines and refund tenders. An unknown id, a non-UUID id and a return of another outlet answer `404 NOT_FOUND`. List the returns of an order with `GET /returns?order_id=`.
📄️ Quote a return
Prices a proposed return of lines of a paid order at the outlet in `X-Outlet-ID`, and shows which tenders can be refunded. Nothing is recorded and the answer is not binding.