Restofy Docs

Cobrar la orden

POST /api/pos-payment/process-payment

Descripción

Registra uno o varios pagos sobre la orden, actualiza su saldo y, cuando queda totalmente pagada, emite la factura.

Detalles

Registra el cobro de la orden aceptando uno o varios métodos de pago en una misma operación. Valida que la caja tenga sesión abierta, que la secuencia de facturación pertenezca a esa caja, que los métodos sean válidos y, para gift card, anticipo, saldo a favor o crédito, que el saldo y los límites lo permitan. El monto cobrado no puede exceder el saldo pendiente. Si tras el cobro la orden queda totalmente pagada, se cierra y se emite la factura. Falla si la orden ya está cerrada, cancelada o marcada como cortesía.

Permisos requeridos

cash.module

Request

Nombre Tipo Requerido Reglas
orderUuid string
cashRegisterId int
min_value:1
invoiceSequenceId int No
min_value:1
invoiceRecipientId int No
min_value:1
tipOverridden bool
tipAmountCents int
min_value:0
printInvoice bool No
methods array
methods[].methodId int
min_value:1
methods[].amountCents int
min_value:1
methods[].reference string No
methods[].partyId int No
min_value:1
methods[].prepaidBalanceCode string No

Ejemplo de request

curl -X POST https://app.restofy.co/api/pos-payment/process-payment \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <accessToken>" \
  -d '{
    "orderUuid": "string",
    "cashRegisterId": 1,
    "tipOverridden": true,
    "tipAmountCents": 1,
    "methods": [
        {
            "methodId": 1,
            "amountCents": 1
        }
    ]
}'

Los valores son demo: reemplázalos por datos reales del negocio.

Ejemplo de respuesta

Actualizado: 2026-07-15T13:20:48Z
HTTP 200

Request

{
    "orderUuid": "fe1fab65-3981-4f18-9b4e-12ae11cc0558",
    "cashRegisterId": 1,
    "invoiceSequenceId": 1,
    "tipOverridden": false,
    "tipAmountCents": 0,
    "methods": [
        {
            "methodId": 1,
            "amountCents": 4600000
        }
    ]
}

Response

{
    "success": true,
    "message": "Pago registrado",
    "data": {
        "paymentStatus": "paid",
        "orderLifecycleStatus": "closed",
        "paidCents": 4600000,
        "balanceCents": 0,
        "grandTotalCents": 4600000,
        "invoiceId": "1",
        "invoiceNumber": "F0002",
        "invoiceUuid": "9be7e415-7eb3-11f1-ac02-f2368af4d8ac",
        "isElectronic": 0,
        "tableLabel": "Mesa 01",
        "orderCode": "66E-K54"
    }
}