> ## Documentation Index
> Fetch the complete documentation index at: https://docs.riqra.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Cancelar pedidos

> Anular un pedido no despachado, con motivo, nota y control del stock.

`POST /orders/{id}/cancel` cancela un pedido que aún no fue despachado. Requiere el scope
`orders:write` y devuelve el pedido actualizado, con el mismo formato que `GET /orders/{id}`.

Sin cuerpo, la llamada toma todos los valores por defecto:

```bash theme={null}
curl -X POST "https://api-v2.riqra.com/public/v1/orders/0b2e9f5a-1c3d-4e6f-8a9b-0c1d2e3f4a5b/cancel" \
  -H "Authorization: Bearer rq_live_tu_api_key"
```

Todos los campos del cuerpo son opcionales — la referencia del endpoint documenta cada uno y su
valor por defecto:

```bash theme={null}
curl -X POST "https://api-v2.riqra.com/public/v1/orders/0b2e9f5a-1c3d-4e6f-8a9b-0c1d2e3f4a5b/cancel" \
  -H "Authorization: Bearer rq_live_tu_api_key" \
  -H "Content-Type: application/json" \
  -d '{ "reason": "INVENTORY", "note": "Sin stock en almacén", "notifyCustomer": true }'
```

## Cómo leer un pedido cancelado

El objeto `cancellation` es `null` mientras el pedido no esté cancelado. Cuando lo está, trae:

| Campo                                            | Contenido                                                                                                                                                                                            |
| ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `cancellation.reason`                            | El motivo elegido, o el código automático si lo canceló la plataforma. Trata cualquier valor desconocido como `OTHER`: los pedidos migrados conservan el motivo original de su plataforma de origen. |
| `cancellation.note`                              | La nota interna. Nunca se le muestra al comprador.                                                                                                                                                   |
| `cancellation.byMemberId`, `cancellation.byName` | El operador que canceló desde el panel. Ambos son `null` cuando canceló la plataforma o una integración: una API key identifica a la organización, no a una persona.                                 |

La fecha de cancelación sigue en la raíz del pedido, junto al resto de fechas del ciclo de vida:
`cancelledAt`.
