Restofy Docs
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"
                }
            ]
        }
    }
}