Este documento describe cómo la arquitectura de Milio procesa pagos integrando el protocolo de seguridad 3D Secure (3DS).
Objetivo del Flujo
Añadir una capa extra de validación de identidad (como un código SMS o biometría) de forma dinámica, solicitándola al cliente únicamente cuando las reglas de negocio detectan un riesgo potencial.
Explicación del Flujo Paso a Paso
1. Inicio de Transacción
El flujo comienza cuando el cliente ingresa los datos de su tarjeta en el Frontend (Milio SDK). Estos datos sensibles (cumpliendo con la normativa PCI) se empaquetan junto con los detalles del pago y se envían de forma segura al Backend de Milio.
2. Evaluación de Reglas de Negocio
Antes de procesar el cobro, el Backend evalúa la transacción a través de un motor de reglas interno. El sistema decide que es obligatorio exigir la verificación 3DS si la transacción cumple con ciertos criterios de riesgo, tales como:
- Es la primera vez que el usuario hace una primera transaccion.
- El pago es por un monto alto.
3. Solicitud de Autenticación al Banco
El Backend se comunica vía API con nuestro Proveedor 3DS, enviándole los datos de la tarjeta y la información del dispositivo del usuario. El proveedor actúa como un puente seguro y transmite esta solicitud al Banco Emisor (el banco de la tarjeta del cliente) a través de las redes de Visa o Mastercard.
4. El "Challenge" (Reto de Seguridad)
El Banco Emisor recibe la solicitud, evalúa el riesgo y determina que el usuario debe demostrar su identidad. Para ello:
- El Backend recibe la instrucción de lanzar el SDK de 3DS en la aplicación.
- La app de Milio muestra una interfaz segura controlada directamente por el banco.
- El usuario interactúa con esta pantalla para completar el "Challenge" (generalmente ingresando una contraseña dinámica u OTP enviada por SMS, o aprobando la transacción desde la app de su banco con huella digital/reconocimiento facial).
5. Confirmación y Procesamiento Final
Una vez que el usuario supera el reto, el banco aprueba la identidad y notifica a nuestro Proveedor 3DS, quien a su vez envía un Webhook o Callback al Backend de Milio.
Finalmente, el Backend de Milio envía la solicitud de cobro a la Adquirente, La transacción es aprobada por la pasarela de forma segura, y la app de Milio le muestra la pantalla de éxito al cliente.
Validación del Resultado 3DS en la API
Una vez que la transacción finaliza, todos los datos y la evidencia del proceso 3D Secure quedan registrados en el objeto de la transacción. Puedes consultar esta información para auditar el pago, revisar la regla que disparó el Challenge .
Para ver estos datos, debes consultar el endpoint de detalle de transacción.
Referencia de la API
Dentro de la respuesta de este endpoint, encontrarás el objeto threeDS con la siguiente estructura:
"threeDS": {
"status": "SUCCESS",
"context": "TRANSACTION",
"providerSessionId": "tds_visa_625386ca24b9",
"eci": "05",
"xid": null,
"hasAuthenticationValue": true,
"amount": "21925.00",
"currency": "COP",
"rule": {
"strategyCode": "MT145",
"strategyName": "Monto alto (monitoreo)"
},
"createdAt": "2026-06-03T19:15:16.728Z",
"updatedAt": "2026-06-03T19:16:20.389Z"
}
