---
id: SCR-COM-ORD-005
title: Void order
route: '/console/{tenantId}/orders/{orderId} (Void Order dialog)'
surface: console
product_area: commerce
module: orders
revision: 1
status: draft
design_intent: proposed
implementation_evidence: observed
inference: []
source_sha:
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
purpose: End an eligible unaccepted sale with a recorded explanation and release its resources.
supports:
  - JNY-COM-ORD-004
  - CAP-COM-ORD-008
permission: commerce.orders.void
entry_from:
  - Order 360 header (Void Order)
exits_to:
  - 'Order 360 (refreshed, voided)'
displays:
  - field: The order's display number
    source: Order 360
  - field: 'What a void does (holds released, provisional invoice deleted, promotion uses given back)'
    source: dialog text
actions:
  - label: Void the sale with a required explanation
    operation_id: voidOrder
    permission: commerce.orders.void
    confirm: true
states:
  - error
  - inactive
validation:
  - BR-CAP-COM-ORD-008-01
  - BR-CAP-COM-ORD-008-02
  - BR-CAP-COM-ORD-008-10
patterns:
  - design-system Dialog with a tinted header and Textarea
  - refusal alert that marks a stale order and refreshes it
component: components/commerce/order-flows/void-order-dialog.tsx
evidence:
  - >-
    react-console at baf6dae3: components/commerce/order-flows/void-order-dialog.tsx;
    lib/commerce/order-flows/live.ts.
controls: [TC-IAM-001, TC-IAM-002, TC-IAM-004, TC-IAM-005, TC-AZ-001, TC-AZ-002, TC-AZ-003, TC-AZ-004, TC-AZ-005, TC-AZ-006, TC-TEN-001, TC-TEN-002, TC-TEN-003, TC-TEN-004, TC-CRY-001, TC-DAT-001, TC-DAT-002, TC-DAT-003, TC-DAT-004, TC-LOG-001, TC-LOG-002, TC-LOG-003, TC-LOG-004, TC-LOG-005, TC-PI-001, TC-PI-003, TC-PI-005, TC-PRV-001, TC-PRV-002]
---

# Void order

## What the Screen Is For

Staff end a placed sale and preserve why they intervened.

## What It Shows and Lets People Do

The dialog identifies the purchase, explains resource release and requires a reason before confirmation. A successful void refreshes the record's status.

## States and Errors

Missing explanation disables confirmation. Acceptance, uncertainty or prior void produces refusal and refreshed facts. An elapsed window does not itself hide the staff action while status remains placed.

## Patterns It Must Respect

The typed explanation becomes the intervention reason. Shared dialog, textarea and stale-refusal components provide the interaction.
