Reportes
POST
Reporte de órdenes con saldo pendiente
POST /api/reports/get-pending-payments
Descripción
Devuelve el listado paginado de órdenes que aún tienen saldo por cobrar, junto con las opciones disponibles para filtrar el reporte.
Detalles
Retorna las órdenes del negocio con saldo pendiente de pago, paginadas y ordenables, acompañadas de las opciones válidas para los filtros de canal, tipo de entrega y mesa. Permite acotar el universo por rango de fechas y por búsqueda de cliente. Es la vista principal de cuentas por cobrar operativas del período consultado.
Permisos requeridos
reports.module
Request
| Nombre | Tipo | Requerido | Reglas |
|---|---|---|---|
| channelId | int | No |
min_value:1
|
| fulfillmentId | int | No |
min_value:1
|
| tableId | int | No |
min_value:1
|
| customerSearch | string | No |
max:100
|
| dateFrom | string | No |
max:30
|
| dateTo | string | No |
max:30
|
Paginación
| defaultLimit | 25 |
| maxLimit | 100 |
| allowedSorts | openedAt, grandTotalCents, balanceCents, orderCode |
| defaultSort | openedAt |
| defaultDir | desc |
| withTotal | true |
Ejemplo de request
curl -X POST https://app.restofy.co/api/reports/get-pending-payments \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <accessToken>"
Los valores son demo: reemplázalos por datos reales del negocio.
Ejemplo de respuesta
Actualizado: 2026-07-15T13:20:48Z
HTTP 200
Request
[]
Response
{
"success": true,
"message": "Operación realizada correctamente",
"data": {
"orders": [
{
"id": 1,
"orderUuid": "dddddddd-dddd-dddd-dddd-dddddddddd01",
"orderCode": "TST-0001",
"lifecycleStatus": "open",
"paymentStatus": "unpaid",
"grandTotalCents": 1190000,
"paidCents": 0,
"balanceCents": 1190000,
"openedAt": "2026-07-15 13:18:27.000",
"channelId": 1,
"channelName": "Punto de venta",
"fulfillmentId": 1,
"fulfillmentName": "En mesa",
"tableId": 1,
"tableName": "Mesa 01",
"customerName": null,
"customerPhone": null
}
],
"pagination": {
"page": 1,
"limit": 25,
"total": 1,
"totalPages": 1,
"hasNext": false,
"hasPrev": false
},
"filters": {
"channels": [
{
"id": 1,
"name": "Punto de venta"
},
{
"id": 2,
"name": "QR / Enlace"
}
],
"fulfillments": [
{
"id": 2,
"name": "Autoservicio"
},
{
"id": 7,
"name": "DiDi Food"
},
{
"id": 4,
"name": "Domicilio propio"
},
{
"id": 1,
"name": "En mesa"
},
{
"id": 10,
"name": "Entrega en habitación"
},
{
"id": 8,
"name": "iFood"
},
{
"id": 5,
"name": "Rappi"
},
{
"id": 6,
"name": "Uber Eats"
},
{
"id": 3,
"name": "Vehículo"
}
],
"tables": [
{
"id": 1,
"name": "Mesa 01"
},
{
"id": 2,
"name": "Mesa 02"
},
{
"id": 3,
"name": "Mesa 03"
},
{
"id": 4,
"name": "Mesa 04"
},
{
"id": 5,
"name": "Mesa 05"
},
{
"id": 6,
"name": "Mesa 06"
},
{
"id": 7,
"name": "Mesa 07"
},
{
"id": 8,
"name": "Mesa 08"
},
{
"id": 9,
"name": "Mesa 09"
},
{
"id": 10,
"name": "Mesa 10"
},
{
"id": 11,
"name": "Mesa 11"
},
{
"id": 12,
"name": "Mesa 12"
},
{
"id": 13,
"name": "Mesa 13"
},
{
"id": 14,
"name": "Mesa 14"
},
{
"id": 15,
"name": "Mesa 15"
}
]
}
}
}