order.cancel_request.approve
Grant a shopper’s cancellation request, with a mandatory reason: records that it was approved and clears the request. It does NOT move money and does NOT cancel the order — return the money FIRST with order.refund, and be aware that in v1 a PAID order cannot be cancelled at all (order.cancel accepts only an order that has not been paid), so an approved request leaves the order open with its money refunded. Idempotent by state; approving what was not requested is a conflict.
- Scope:
order.write - System: no
- Reachable from:
POST /v1/commands/order.cancel_request.approve(tenant credential) · MCP toolorder.cancel_request.approve· SDKclient.call('order.cancel_request.approve', …) - Events:
order.cancellation_approved
Input (JSON Schema)
Section titled “Input (JSON Schema)”{ "properties": { "order_id": { "minLength": 1, "type": "string" }, "reason": { "maxLength": 1000, "minLength": 1, "type": "string" } }, "required": [ "order_id", "reason" ], "type": "object"}Result (200)
Section titled “Result (200)”{ "additionalProperties": false, "properties": { "cancellation_requested": { "type": "boolean" }, "order_id": { "type": "string" }, "outcome": { "enum": [ "approved", "declined" ], "type": "string" } }, "required": [ "order_id", "cancellation_requested", "outcome" ], "type": "object"}Errors
Section titled “Errors”validation_failed (400) · unauthorized (401) · forbidden (403) · conflict (409) · internal (500)