Restofy Docs
Cobro de órdenes POST

Cobrar la orden

POST /api/pos-payment/process-payment

Descripción

Registra el pago de la orden con uno o varios métodos, la cierra y 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 cobro debe cubrir el total exacto de la orden. Con el pago completo la orden se cierra y se emite la factura. Falla si la orden ya está cerrada, cancelada o marcada como cortesía, o si una orden abierta tiene productos del cliente esperando aprobación.

Permisos requeridos

cash.module

Request

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

Ejemplo de request

curl -X POST https://restofy.pro/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-10-09T02:12:12Z
HTTP 200

Request

{
    "orderUuid": "84c5bb78-7e71-45ff-9bd9-29ec1d124be9",
    "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": "c7c7038a-c386-11f1-a755-a2f78ac020f7",
        "isElectronic": 0,
        "tableLabel": "Mesa 02",
        "orderCode": "78B-C38",
        "showPaymentActionsOnSave": true
    }
}