Compra con tarjeta presente

Compra con tarjeta presente A sequence diagram generated by Archify. POST /pagos · API ECR X-Terminal-Token; la caja manda monto y referencia, nunca tarjeta POST /api/v1/pos/transacciones Bearer deviceToken; el terminal aporta PAN y DE 55 del chip 0200 compra · ISO 8583 TCP :9503 ruta por prefijo BIN · pipeline ARQC, PIN y CVV se resuelven por HsmPort, nunca en el host aprobada 0210 · DE 39 = 00 JSON 00 · rrn · authCode captureIntoBatch solo si DE 39 = 00; la captura es best-effort veredicto sin PAN · recibo POST /api/v1/pos/reversos silencio del switch: el intento queda EN_DUDA, jamás rechazado 0420 con DE 37 original → 0430 Venta con tarjeta presente Sin respuesta: reverso de respaldo Caja · Electron / ECR · Sequence participant Caja Electron / ECR Terminal · AuroraPOS · ECR :8080 · Sequence participant Terminal AuroraPOS · ECR :8080 Merchant · PosBridgeService · Sequence participant Merchant PosBridgeService Aurora Switch · Netty · @AuroraStep · Sequence participant Aurora Switch Netty · @AuroraStep Autorizador · core / banco simulado · Sequence participant Autorizador core / banco simulado Legend request return async trace default message

Camino feliz

  • • La caja dispara la venta por HTTP a la API ECR del terminal
  • • El Merchant traduce JSON → ISO 8583 y captura solo si DE 39 = 00
  • • Aurora elige el nodo de salida por prefijo BIN (tbl_bin_route)

Resiliencia

  • • Switch caído o timeout: el Merchant responde RC 96, no propaga la excepción
  • • Sin veredicto el intento queda EN_DUDA y espera descarte de supervisor
  • • El 0420 reusa el DE 37 del original: reenviarlo no duplica el reverso

Estado verificado al 2026-09-22

  • • Chip real leído en WPOS-QT: 0200 con DE 55 y cierre EMV; faltan llaves y PIN
  • • En modo core Aurora no verifica el PIN (TODO en PinValidationStep)
  • • La captura en lote es best-effort: BarridoSinCapturarJob cuenta lo que quedó fuera