# Open dispute for order Allowed only for completed order states (success or failed). Behavior: - On create, order is moved to disputed. - If an open dispute already exists for the order (submitted / in_review), API returns that dispute. - Dispute is also sent to wallet-backend for synchronized processing. Endpoint: POST /orders/{id}/disputes Version: 1.0.0 Security: apiKeyAuth ## Path parameters: - `id` (string, required) Order ID ## Request fields (application/json): - `reason` (string, required) ## Response 201 fields (application/json): - `id` (string, required) - `orderId` (string, required) - `status` (string, required) Enum: "submitted", "in_review", "resolved", "rejected" - `resolution` (any) Set when dispute is resolved. - `reason` (string, required) - `adminComment` (string,null) - `resolvedBy` (string,null) - `refundAmount` (number,null) Filled for partial_refund; null for confirm and full refund. - `resolvedAt` (string,null) Resolution timestamp (admin or wallet callback sync). - `createdAt` (string, required) - `updatedAt` (string, required) ## Response 400 fields (application/json): - `statusCode` (integer) Example: 400 - `message` (any) - `error` (string) Example: "Bad Request" ## Response 401 fields (application/json): - `statusCode` (integer) Example: 400 - `message` (any) - `error` (string) Example: "Bad Request" ## Response 404 fields (application/json): - `statusCode` (integer) Example: 400 - `message` (any) - `error` (string) Example: "Bad Request"