1. Conclusión ejecutiva
Dictamen técnico: no se encontró evidencia de una falla específica del software del POS 135 que provoque los pagos no aprobados. Cuando el pago existe, el POS 135 completa la operación con tiempos normales. En los casos analizados, el POS envió la solicitud, el Gateway la recibió y Mercado Pago aceptó la publicación de la orden QR; El Gateway continuó consultando a Mercado Pago durante casi tres minutos por cada intento y, aun así, nunca apareció un payment asociado.
La interpretación compatible con la evidencia es que el cliente no completó el pago, o que el ecosistema Mercado Pago/billetera no creó, vinculó o informó ese pago al autorizador. Desde los logs disponibles ambas situaciones producen el mismo resultado: payments=[], sin paymentid, pagador ni billetera de origen. Por eso no es posible distinguirlas de manera concluyente con la información actual.
Alcance de la trazabilidad disponible: el Gateway dejó evidencia suficiente de que consultó reiteradamente la merchant order durante aproximadamente tres minutos y que, dentro de esa ventana, no existía un pago asociado. Los logs analizados no permiten asegurar qué ocurrió después de cerrar esa ventana: un eventual pago tardío requeriría una conciliación posterior.
Aclaración importante: tampoco corresponde afirmar que Mercado Pago “rechazó” esos pagos. No hay un pago con rechazo financiero: hay una orden QR creada sin pago asociado. El estado local REFUND_DENEGADO / CANCELADO_NOEXISTE_EN_MP describe ese no-pago, aunque su nombre pueda inducir a error.
Sí existen aspectos de software para mejorar —principalmente la desalineación de timeouts, las consultas repetitivas y la forma de contabilizar los reintentos—, pero esos aspectos amplifican la demora y pueden distorsionar las métricas por intento; no explican ni demuestran la ausencia inicial del payment. Que cada nuevo intento tenga un idTrx diferente es correcto.
Tasa global julio97,61%107.310 pagos existentes / 109.938 cierres
Sucursal 807 julio95,50%Última de 28 sucursales
POS 135 julio94,72%718 aprobados / 40 no-pagos
Caso 24/07 POS13585,11%40 OK / 47 contextos MDEP
Fundamento estadístico: POS135 es el peor POS mensual entre los de volumen significativo, pero su diferencia contra POS133/134 no es estadísticamente concluyente (p=0,194). La anomalía más sólida es de sucursal807 completa frente al resto (p=0,00000030). Esto favorece investigar primero factores compartidos de sucursal, operatoria, clientela, conectividad o flujo de billeteras, no atribuir el problema al binario del POS135.
PROBADO
- El Gateway recibe los POST.
- Mercado Pago crea las órdenes QR: HTTP 204.
- Los casos fallidos terminan con
payments=[]. - La búsqueda final devuelve
results=[].
PROBABLE
- Efecto compartido de sucursal.
- Abandono o falla previa a crear el payment.
- Timeouts y reintentos amplifican los registros.
- Problemas de operatoria o conectividad del cliente.
NO DEMOSTRADO
- Rechazo financiero de Mercado Pago.
- Falla exclusiva del software POS135.
- Incompatibilidad de una billetera específica.
- Fraude intencional.
2. Flujo técnico observado
POSObtiene idTrx y envía pago
→
GatewayGuarda PAGO_ENVIADO
→
Mercado PagoPUT orden QR
HTTP 204
→
Merchant orderopened / payment_required
payments=[]
→
GatewayConsulta hasta 180 s
→
CancelaciónBusca external_reference
results=[]
→
Estado localREFUND_DENEGADO
Desajuste temporal: el Gateway mantiene postPayment() activo aproximadamente 180 segundos; el POS abandona la espera cerca de los 90 segundos y comienza consultas GET. Esto no crea el problema de pago inexistente, pero aumenta espera, consultas y reintentos.
| Componente | Comportamiento | Impacto |
|---|
| Gateway | Loop de espera hasta 180.000 ms | POST largo y ocupación de thread HTTP |
| POS | Timeout aproximado de 90 s | Pasa a consultas de estado mientras el POST sigue activo |
| POS modificado | Reconoce REFUND_DENEGADO como terminal | Evita seguir consultando luego del no-pago |
| Reintento | Cada intento sucesivo utiliza correctamente un nuevo idTrx dentro del mismo contexto MDEP | No es una falla; exige separar métricas por intento técnico y por contexto comercial |
3. Reconstrucción del caso testigo — $2.029
POS135, sucursal807, un único contexto MDEP ADD:PAGO QR contuvo tres intentos técnicos sucesivos, cada uno identificado correctamente con un idTrx diferente. El reloj POS estaba aproximadamente 53–58 segundos desplazado respecto del Gateway; las correlaciones se realizaron por idTrx, no por igualdad exacta de hora.
| idTrx | POST Gateway | PUT QR | IPN merchant order | Consultas internas | Cierre |
|---|
| 2025763 | 20:24:22 | HTTP 204 | 20:24:23; payments=[] | 33 | 20:27:28 REFUND_DENEGADO |
| 2025808 | 20:27:43 | HTTP 204 | 20:28:46; payments=[] | 26 | 20:30:52 REFUND_DENEGADO |
| 2025851 | 20:31:17 | HTTP 204 | 20:32:20; payments=[] | 26 | 20:34:25 REFUND_DENEGADO |
Orden publicada. Las tres llamadas QR_PAGO respondieron HTTP 204 en menos de un segundo.
IPN recibido. Informó merchant order válida, pero sin payments.
Espera. El Gateway consultó repetidamente la orden durante casi tres minutos por intento: 33 consultas entre 20:24:29 y 20:27:27; 26 entre 20:28:01 y 20:30:51; y 26 entre 20:31:35 y 20:34:24. Nunca apareció paymentid, payer ni originwalletid.
Timeout. Cada POST terminó HTTP 400 aproximadamente a los 182,5 segundos.
Verificación final. La búsqueda por external_reference devolvió results=[].
Clasificación. El scheduler grabó REFUND_DENEGADO / CANCELADO_NOEXISTE_EN_MP.
Conclusión del caso: durante la ventana observada no se recibió una aprobación. Tras casi tres minutos de consultas, Mercado Pago seguía sin informar un payment para ninguno de los tres external_reference. Los logs relevados no determinan si pudo aparecer un pago tardío después del cierre. El archivo GatewayMP.log.2026-07-24.9 rota antes del cierre del tercer intento; su REFUND_DENEGADO se encuentra en .10.