Motivos de anulación
POST
Listar motivos de anulación
POST /api/cancellation-reasons/list-cancellation-reasons
Descripción
Lista paginada de motivos por los que anulas una orden o ítem.
Detalles
Devuelve el catálogo de motivos con su nombre y la parte responsable asociada. Soporta búsqueda por nombre y filtro por responsable. Incluye motivos pausados para permitir su reactivación.
Permisos requeridos
admin.module
Request
| Nombre | Tipo | Requerido | Reglas |
|---|---|---|---|
| search | string | No |
max:100
|
| responsibleParty | string | No |
enum:personal_kitchen,personal_service,customer,system,external,other
|
Paginación
| defaultLimit | 50 |
| maxLimit | 100 |
| allowedSorts | name, responsibleParty |
| defaultSort | name |
| defaultDir | asc |
| withTotal | true |
Ejemplo de request
curl -X POST https://restofy.pro/api/cancellation-reasons/list-cancellation-reasons \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <accessToken>" \
-H "X-Tenant-Key: <tenantKey>"
Los valores son demo: reemplázalos por datos reales del negocio.
Ejemplo de respuesta
Actualizado: 2026-09-08T16:35:34Z
HTTP 200
Request
[]
Response
{
"success": true,
"message": "Operación realizada correctamente",
"data": {
"cancellationReasons": [
{
"cancellationReasonId": 12,
"name": "Caida de red",
"responsibleParty": "system",
"description": "Perdida de conexion",
"isActive": 1,
"isAvailable": 1
},
{
"cancellationReasonId": 9,
"name": "Cliente cambio de opinion",
"responsibleParty": "customer",
"description": "Cliente decidio no consumir",
"isActive": 1,
"isAvailable": 1
},
{
"cancellationReasonId": 10,
"name": "Cliente se retiro",
"responsibleParty": "customer",
"description": "Cliente se fue antes del servicio",
"isActive": 1,
"isAvailable": 1
},
{
"cancellationReasonId": 15,
"name": "Cliente solicito cancelar",
"responsibleParty": "customer",
"description": "Cliente pidio anular el pedido",
"isActive": 1,
"isAvailable": 1
},
{
"cancellationReasonId": 13,
"name": "Corte de luz",
"responsibleParty": "external",
"description": "Corte electrico en la zona",
"isActive": 1,
"isAvailable": 1
},
{
"cancellationReasonId": 8,
"name": "Devolucion por demora del servicio",
"responsibleParty": "personal_service",
"description": "Demora atribuible al servicio",
"isActive": 1,
"isAvailable": 1
},
{
"cancellationReasonId": 11,
"name": "Falla impresora",
"responsibleParty": "system",
"description": "No imprimio comanda",
"isActive": 1,
"isAvailable": 1
},
{
"cancellationReasonId": 16,
"name": "Item duplicado por error",
"responsibleParty": "personal_service",
"description": "Mesero registro el mismo item dos veces",
"isActive": 1,
"isAvailable": 1
},
{
"cancellationReasonId": 6,
"name": "Item mal digitado",
"responsibleParty": "personal_service",
"description": "Mesero registro item incorrecto",
"isActive": 1,
"isAvailable": 1
},
{
"cancellationReasonId": 3,
"name": "Mal cocinado",
"responsibleParty": "personal_kitchen",
"description": "Punto de coccion incorrecto",
"isActive": 1,
"isAvailable": 1
},
{
"cancellationReasonId": 7,
"name": "Mesa equivocada",
"responsibleParty": "personal_service",
"description": "Entregado en mesa incorrecta",
"isActive": 1,
"isAvailable": 1
},
{
"cancellationReasonId": 14,
"name": "Otro motivo",
"responsibleParty": "other",
"description": "No tipificado",
"isActive": 1,
"isAvailable": 1
},
{
"cancellationReasonId": 5,
"name": "Plato caido o regado",
"responsibleParty": "personal_service",
"description": "Se cayo o regado al servir",
"isActive": 1,
"isAvailable": 1
},
{
"cancellationReasonId": 4,
"name": "Plato equivocado",
"responsibleParty": "personal_kitchen",
"description": "Cocina preparo otro plato",
"isActive": 1,
"isAvailable": 1
},
{
"cancellationReasonId": 1,
"name": "Plato frio",
"responsibleParty": "personal_kitchen",
"description": "Servido bajo temperatura",
"isActive": 1,
"isAvailable": 1
},
{
"cancellationReasonId": 2,
"name": "Plato quemado",
"responsibleParty": "personal_kitchen",
"description": "Salio quemado de cocina",
"isActive": 1,
"isAvailable": 1
},
{
"cancellationReasonId": 17,
"name": "Problema de calidad",
"responsibleParty": "personal_kitchen",
"description": "Plato no cumple estandares de calidad",
"isActive": 1,
"isAvailable": 1
},
{
"cancellationReasonId": 18,
"name": "Sabor incorrecto",
"responsibleParty": "personal_kitchen",
"description": "Cliente reporto sabor no esperado",
"isActive": 1,
"isAvailable": 1
}
],
"pagination": {
"page": 1,
"limit": 50,
"total": 18,
"totalPages": 1,
"hasNext": false,
"hasPrev": false
}
}
}