# `order.return.receive` Record the returned goods arriving — per-line condition; saleable lines restock (ledgered). - **scope**: `orders:write` - **storefront-visible** (bumps the catalog generation): no - **destructive**: no ## Payload | field | type | required | notes | |---|---|---|---| | `returnId` | string (/^ret_[a-zA-Z0-9]{1,32}$/) | yes | | | `lines` | array (≤50) | yes | | ### JSON Schema ```json { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "returnId": { "type": "string", "pattern": "^ret_[a-zA-Z0-9]{1,32}$" }, "lines": { "minItems": 1, "maxItems": 50, "type": "array", "items": { "type": "object", "properties": { "returnLineId": { "type": "string", "pattern": "^rtl_[a-zA-Z0-9]{1,32}$" }, "qtyReceived": { "type": "integer", "minimum": 0, "maximum": 99 }, "condition": { "type": "string", "enum": [ "saleable", "damaged", "missing" ] }, "restock": { "type": "boolean" } }, "required": [ "returnLineId", "qtyReceived", "condition", "restock" ], "additionalProperties": false } } }, "required": [ "returnId", "lines" ], "additionalProperties": false } ```