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.

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[].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>" \
  -H "X-Tenant-Key: <tenantKey>" \
  -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-09-08T16:35:34Z
HTTP 200

Request

{
    "orderUuid": "23c322c2-ff78-4395-a157-fac5cbbd1c38",
    "cashRegisterId": 1,
    "invoiceSequenceId": 4,
    "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": "2",
        "invoiceNumber": "SETPA1",
        "invoiceUuid": "56bebe4f-ab4a-11f1-b72d-f2569efa6eee",
        "isElectronic": 1,
        "tableLabel": "Mesa 01",
        "orderCode": "96W-R35",
        "showPaymentActionsOnSave": true
    }
}