Saltar al contenido principal

Transacciones automáticas con el protocolo 3RI

Con Wompi puedes crear fuentes de pago seguras utilizando el protocolo 3RI para tus pagos automáticos (3D Secure Requestor Initiated Authentication). Este protocolo es una función de la versión 2.2 de 3D Secure que permite a los comercios realizar transacciones autenticadas sin la interacción directa del cliente pagador, es decir, pagos recurrentes.

Para hacer uso del protocolo 3RI debes crear la fuentes de pago utilizando el protocolo 3D Secure o 3DS. Este protocolo agrega una capa adicional de seguridad a las transacciones en línea, permitiendo que los emisores de tarjetas y los adquirentes puedan autenticar al titular de la tarjeta antes de procesar la transacción.

Notas Importantes

  1. Al crear una fuente de pago segura con 3DS y utilizar el ID de la fuente de pago resultante en las transacciones automáticas, estas estarán protegidas bajo el protocolo 3RI.

Para continuar usando esta funcionalidad, es necesario solicitar al equipo de gestión de fraude la activación de 3DS en las fuentes de pago, te recomendamos comunicarte con nuestros canales de atención para resolver cualquier inquietud.

  1. El protocolo 3DS para la creación de fuentes de pago está disponible para las franquicias Mastercard y Visa.

  2. El protocolo 3RI está disponible para transacciones automáticas en la franquicia Mastercard.

  3. La disponibilidad del protocolo 3DS por franquicia puede variar según el modelo de tu comercio (Gateway o Agregador).

  4. Si quieres conocer los pasos para la creación de fuentes de pago sin el protocolo de 3DS puedes ir aquí: Fuentes de pago & Tokenización

Si aún no has probado esta funcionalidad en modo sandbox, en la siguiente guíe te explicamos como hacerlo: Prueba el protocolo 3DS en modo sandbox


A continuación, te indicamos el proceso para implementar el protocolo de 3DS en la creación de una fuente de pago segura con tarjetas:

Paso 1: Crear una fuente de pago

{
"type": "CARD",
"token": "tok_devint_1854_b9D8b065dF326f393aD27cc86fA373c8",
"customer_email": "email@email.com",
"acceptance_token": "eyJhbGciOiJIUzI1NiJ9.eyJjb250cmFjdF9pZCI6MzA5LCJwZXJtYWxpbmsiOiJodHRwczovL3dvbXBpLmNvbS9hc3NldHMvZG93bmxvYWRibGUvcmVnbGFtZW50by1Vc3Vhcmlvcy1Db2xvbWJpYS5wZGYiLCJmaWxlX2hhc2giOiJkMWVkMDI3NjhlNDEzZWEyMzFmNzAwMjc0N2Y0N2FhOSIsImppdCI6IjE3MzA4MjA1NjItODIxMjUiLCJlbWFpbCI6IiIsImV4cCI6MTczMDgyNDE2Mn0.mQL_Qz8nku2Y7sLCD3a_mBqT3Ez3PVy9IPemcEB7ZLA"
}

Después debes empezar a consultar el estado de la autenticación de la tarjeta a través del endpoint payment_sources/{payment_source_id} realizando una consulta cada 2 segundos a dicho endpoint. A medida que se vayan ejecutando los distintos steps se verá reflejado en el campo three_ds_auth del objeto extra en la respuesta de la solicitud.

{
"data": {
"id": 71942,
"public_data": {
"bin": "230377",
"last_four": "0275",
"exp_month": "10",
"exp_year": "31",
"card_holder": "PRUEBAS FRAUDE",
"validity_ends_at": "2027-05-05T15:38:56.283+00:00",
"type": "CARD"
},
"token": "tok_devint_1854_548891e34aCf33B2e042E9E1b2041c20",
"type": "CARD",
"status": "PENDING", // Estado de la fuente de pago
"customer_email": "email@email.com",
"extra": {
"is_three_ds": true,
}
},
"meta": {}
}

El proceso incluye los siguientes pasos en orden:

  • BrowserInfo
  • Fingerprint
  • Challenge
  • Authentication

Cada paso puede presentar uno de estos estados:

  • PENDING
  • ERROR
  • COMPLETED

Paso 2: Browser Info

Después de un tiempo de consultar el estado de la fuente de pago, se encontrará el campo three_ds_auth como se muestra a continuación:

  • current_step: Indica el paso en el que se encuentra la transacción dentro del flujo de autenticación (Browser Info, Fingerprint, Authentication o Challenge)
  • current_step_status: Indica el estado del paso actual (Pending o Completed)
  • three_ds_method_data: Contenido HTML que deberá ser renderizado para la integración directa con el ACS
{
"data": {
"id": 71942,
"public_data": {
"bin": "230377",
"last_four": "0275",
"exp_month": "10",
"exp_year": "31",
"card_holder": "PRUEBAS FRAUDE",
"validity_ends_at": "2027-05-05T15:38:56.283+00:00",
"type": "CARD"
},
"token": "tok_devint_1854_548891e34aCf33B2e042E9E1b2041c20",
"type": "CARD",
"status": "PENDING",
"customer_email": "email@email.com",
"extra": {
"is_three_ds": true,
"three_ds_auth": {
"current_step": "BROWSER_INFO",
"current_step_status": "PENDING",
"three_ds_method_data": "<!-- Contenido HTML para recolección de información del navegador -->",
// Otros campos
}
}
},
"meta": {}
}

***** Nota: El contenido dentro de three_ds_method_data deberá ser "formateado" primero para su corecta renderización, ya que este viene como un HTML con entidades de caracteres ó códigos de escape, es decir, con valores como &lt; o &gt; en vez de símbolos menor qué (&lt) o mayor qué (>) en las etiquetas HTML.

Después de ser renderizado el BROWSER INFO y si todo salió bien, Wompi recibirá la información necesaria y procederemos a actualizar el estado a FINGERPRINT. Mientras que hacemos esto, tu tendrás que seguir consultando periodicamente el estado de la fuente de pago (Para este y todos los demás pasos)

Paso 3: Fingerprint

Una vez completado el flujo anterior, se encontrará en el paso de FINGERPRINT. La respuesta incluirá los mismos campos que las demás, solo cambiará el contenido del objeto three_ds_auth del campo extra:

{
"data": {
"id": 71942,
"public_data": {
"bin": "230377",
"last_four": "0275",
"exp_month": "10",
"exp_year": "31",
"card_holder": "PRUEBAS FRAUDE",
"validity_ends_at": "2027-05-05T15:38:56.283+00:00",
"type": "CARD"
},
"token": "tok_devint_1854_548891e34aCf33B2e042E9E1b2041c20",
"type": "CARD",
"status": "PENDING",
"customer_email": "email@email.com",
"extra": {
"is_three_ds": true,
"three_ds_auth": {
"current_step": "FINGERPRINT",
"current_step_status": "PENDING",
"three_ds_method_data": "<!-- Contenido HTML para recolección de información del dispositivo -->",
// Otros campos
}
}
},
"meta": {}
}

Paso 4: Challenge

Una vez se haya completado el flujo anterior, se encontrará en el paso de CHALLENGE. El contenido que se renderice en este paso será estipulado por el banco emisor de la tarjeta, por lo tanto, podrá variar dependiendo el banco.

***** Nota: En los pasos anteriores, el contenido de three_ds_method_data es un HTML que NO requiere interacción directa con el pagador, ya que se ejecuta de manera automática cuando es renderizado, para este paso en particular SI necesitaremos de una interacción con el usuario, ya que el usuario deberá responder alguna pregunta, ingresar un dato, seleccionar una opción de las presentadas en pantalla, etc. según lo considere el banco del pagador.

{
"data": {
"id": 71942,
"public_data": {
"bin": "230377",
"last_four": "0275",
"exp_month": "10",
"exp_year": "31",
"card_holder": "PRUEBAS FRAUDE",
"validity_ends_at": "2027-05-05T15:38:56.283+00:00",
"type": "CARD"
},
"token": "tok_devint_1854_548891e34aCf33B2e042E9E1b2041c20",
"type": "CARD",
"status": "PENDING",
"customer_email": "email@email.com",
"extra": {
"is_three_ds": true,
"three_ds_auth": {
"current_step": "CHALLENGE",
"current_step_status": "PENDING",
"three_ds_method_data": "<!-- Contenido HTML proporcionado por el banco para autenticar al pagador -->",
// Otros campos
}
}
},
"meta": {}
}

Paso 5: Resultado Final

Según el resultado del challenge, se finalizará (o no) con éxito la autenticación de la fuente de pago con el protocolo de 3DS una vez se haya completado todo el flujo, quedando

{
"data": {
"id": 71942,
"public_data": {
"bin": "230377",
"last_four": "0275",
"exp_month": "10",
"exp_year": "31",
"card_holder": "PRUEBAS FRAUDE",
"validity_ends_at": "2027-05-05T15:38:56.283+00:00",
"type": "CARD"
},
"token": "tok_devint_1854_548891e34aCf33B2e042E9E1b2041c20",
"type": "CARD",
"status": "AVAILABLE", // AVAILABLE, DECLINED o ERROR
"customer_email": "email@email.com",
"extra": {
"is_three_ds": true,
"three_ds_auth": {
"current_step": "AUTHENTICATION",
"current_step_status": "COMPLETED",
// Otros campos
}
}
},
"meta": {}
}

Que pasa si algo falla? 🚒

Sabemos que no todo es perfecto, por lo que te presentamos los escenarios más comunes del día a día y como proceder:

  1. El usuario abandona el flujo: Este caso es bastante común en el paso de CHALLENGE, cuando se está realizando el proceso de autenticación el usuario puede abandonar la pantalla, página etc. sin completar el challenge presentado.

Qué se hace? Nada, Wompi tiene un tiempo límite para completar todo el flujo de autenticación con el protocolo 3DS, en caso de sobrepasar este límite, la fuente de pago quedará en estado ERROR y el current_step_status en ABANDONED

  1. La tarjeta del pagador no es soportada por el protocolo Puede que el protocolo de 3DS no soporte el bin de la tarjeta del pagador. Esta validación se hace antes del paso Browser Info, por lo que si se da este escenario, la fuente de pago no llegará ni a este primer paso.

Qué se hace? La fuente de pago quedará en estado DECLINED y terminará el flujo.

Al crear una fuente de pago segura con 3DS y utilizar el ID de la fuente de pago resultante en las transacciones automáticas, estas estarán protegidas bajo el protocolo 3RI.