| Status | Significado | Tabla actual |
|---|---|---|
| P | Pendiente — pago llegó del banco BCP, espera ser asociado a una venta | noimputadas |
| I | Imputado — pago cerró el ciclo correctamente, asociado a una venta | imputadas (la fila desaparece de noimputadas) |
| X | Huérfano — pago vencido sin que nadie lo use, plata queda sin asignar | noimputadas con status='X' |
| ID | Tipo | Notas |
|---|---|---|
| 1 | Efectivo | el más común — vendedora cobra cash |
| 2 | Crédito (a la cuenta del cliente) | |
| 3 | Tarjeta de Crédito (genérica) | |
| 4 | Tarjeta de Débito | |
| 5 | Cheque | |
| 6 | Venta a Crédito | |
| 7 | Tarjeta de Flota | |
| 8 | Venta en Modo Manual | |
| 9 | Efectivo con Descuento | |
| 10 | Otro | |
| 11–14 | Tarjeta ATC / Linkser / Flota Débito / Flota Crédito | |
| 15 | Venta Débito | |
| 16 | Transferencia | |
| 17 | Traspaso | |
| 18 | Depósito | |
| 19 | Dinero Electrónico | incluye QR (BAAS) |
Cuando un cliente paga QR pero no hay venta autorizada para esa cara con tipo=QR, el server genera un PIN único de 4 dígitos asociado al pago.
PIN_TTL_MIN minutos sin uso → sweep cron lo marca X (huérfano definitivo)POST /api/payment/newpayment — BCP avisa que llegó un pago. Server inserta en noimputadas con status='P', genera PIN si idnode está en [Pin] EnabledNodesPOST /api/payment/wait_payment — long-poll. Estación pregunta si hay pago para idnode, server bloquea hasta que llega o expiraPOST /api/payment/reassign_qr — vendedor usa PIN. Server marca pin_used_at, hace MoveToImputed atómicoPOST /api/payment/markhuerfano — cliente Delphi marcaba huérfano (heurística vieja). Server v2.6.1+ IGNORA esta llamada para idnodes PIN-enabledPOST /api/payment/movetoimputed — flow normal QR cuando se imputa a venta/usr/local/bin/baas_sweep_orphans.sh mueve a status='X':
pin_expires_at ya pasó