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 | 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>" \
-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
}
}