Secuencia normal
POST /authorize es síncrono. La misma llamada permanece abierta mientras el usuario presenta su tarjeta e ingresa el PIN cuando corresponde.
Timeouts
La espera interna documentada de Pay-me PinPAD es de 90 segundos como valor de referencia en desarrollo. Este valor se ajustará antes de producción.
Configura el timeout de lectura del cliente HTTP por encima de la espera del terminal:
Un cobro puede tomar decenas de segundos. No uses el mismo timeout corto que aplicarías a una API convencional.
Si el timeout del sistema central vence antes que el del terminal, el pago puede continuar aunque el comercio haya perdido la conexión. Un timeout de red nunca equivale a rechazo.
El valor definitivo de la espera interna, el timeout del sistema central y el tiempo máximo de recuperación deben validarse con Alignet antes de producción.
Recuperación de una operación incierta
Consulta cuando ocurra cualquiera de estos casos:
POST /authorize devuelve HTTP 202 con status: "PENDING";
- el timeout del cliente HTTP vence sin recibir respuesta;
- la conexión se interrumpe durante el cobro;
- el sistema central se reinicia con una operación abierta;
- el estado recuperado es
PROCESSING o UNKNOWN.
Procedimiento:
- Conserva el
operationNumber original.
- Mantén la operación como no resuelta en el sistema central.
- No ejecutes la acción de negocio asociada ni marques un rechazo definitivo.
- Ejecuta
GET /payments/{operationNumber}.
- Si recibes
202, respeta Retry-After; si el header no está disponible, usa aproximadamente 2 segundos como referencia inicial.
- Continúa hasta recibir un resultado final o alcanzar el límite operativo acordado.
- Si alcanzas ese límite con
PENDING, PROCESSING o UNKNOWN, escala la operación para resolución. No inicies automáticamente otro cobro.
Idempotencia
operationNumber es la clave de idempotencia de Pay-me PinPAD.
No cambies el monto ni la moneda al reutilizar una referencia. El contrato vigente no documenta el comportamiento para una misma referencia con un payload diferente; evita esa condición y escálala si ocurre.
Concurrencia
Pay-me PinPAD procesa una sola operación a la vez:
- Si llega el mismo
operationNumber, aplica la regla de idempotencia.
- Si llega otro
operationNumber mientras existe un cobro activo, responde HTTP 409 con POS_BUSY.
- El sistema central debe serializar los cobros destinados al mismo terminal.
- Después de
POS_BUSY, espera a que el terminal se libere antes de reintentar la solicitud que no fue aceptada.
Si varios procesos pueden enviar pagos al mismo Wiseasy P5L, coordínalos mediante una cola o bloqueo único en el sistema central.
Reinicios
Reinicio del sistema central
Al iniciar, recupera de almacenamiento persistente todas las operaciones sin resultado final y consulta cada operationNumber antes de aceptar una decisión financiera.
Reinicio del Wiseasy P5L durante el cobro
La operación en curso queda en UNKNOWN. No la marques como aprobada ni rechazada. Consulta la referencia y aplica el procedimiento de escalamiento si no alcanza un estado final.
Flujo recomendado del sistema central
Decisión de negocio
Define antes de producción qué hará el comercio ante resultados no finales. La regla segura es no confirmar la venta ni ejecutar una acción irreversible —por ejemplo, abrir una barrera— hasta recibir APPROVED con resultCode: "00".
La política final para PENDING y UNKNOWN, incluido el escalamiento manual, requiere acuerdo entre el integrador y Alignet.
Persistencia mínima
Guarda, cuando existan:
No almacenes datos sensibles de tarjeta.