Cierre de caja
POST
Listar órdenes canceladas del turno
POST /api/cash-closures/list-cancelled-orders
Descripción
Devuelve el listado paginado de las órdenes canceladas en el horario del turno, en cualquier caja.
Detalles
Toma el horario del turno, desde la apertura hasta el cierre (o hasta ahora si sigue abierto), y retorna las órdenes canceladas completas en ese rango. Con la opción de cobradas trae solo las órdenes anuladas después de cobrarse; sin ella, las canceladas antes de cobrar. Cada orden trae motivo, quién la canceló y monto.
Permisos requeridos
cash.closing.totals.view
Request
| Nombre | Tipo | Requerido | Reglas |
|---|---|---|---|
| cashRegisterSessionId | int | Sí |
min_value:1
|
| wasPaid | bool | Sí | — |
| search | string | No |
max:100
|
Paginación
| defaultLimit | 25 |
| maxLimit | 100 |
| allowedSorts | cancelledAt, totalCents, orderCode |
| defaultSort | cancelledAt |
| defaultDir | desc |
Ejemplo de request
curl -X POST https://restofy.pro/api/cash-closures/list-cancelled-orders \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <accessToken>" \
-d '{
"cashRegisterSessionId": 1,
"wasPaid": true
}'
Los valores son demo: reemplázalos por datos reales del negocio.
Ejemplo de respuesta
Actualizado: 2026-11-02T19:00:57Z
HTTP 200
Request
{
"cashRegisterSessionId": 2,
"wasPaid": false,
"search": "mesa se fue 2f21bb"
}
Response
{
"success": true,
"message": "Operación realizada correctamente",
"data": {
"orders": [
{
"orderUuid": "cf30a550-9732-4ea3-b06a-fb82cac604bf",
"orderCode": "39A-M32",
"totalCents": 0,
"channel": "channel.staff.pos",
"channelLabel": "Punto de venta",
"tableLabel": "Mesa 01",
"reason": "Cliente cambio de opinion",
"cancelledByName": "App Testing",
"cancelledAt": "2026-11-02T18:29:10.000Z"
}
],
"pagination": {
"page": 1,
"limit": 25,
"total": 1,
"totalPages": 1,
"hasNext": false,
"hasPrev": false
}
}
}