3D Secure 2.0

3D 2.0 Secure nos permite realizar cargos más seguros con tarjetas no presentes, ya que los clientes de los comercios deberán autenticar su identidad directamente en el sistema del banco al cual pertenece su tarjeta. Lo cual permite agilizar aún más el recorrido del cliente y fortalecer la seguridad de las transacciones.

Entidades involucradas en el proceso de 3D Secure 2.0

  • Comercio: Empresa contratante de los servicios para transaccionar de Openpay
  • Cybersource: Es una empresa de gestión de pago de comercio electrónico. Los clientes procesan pagos en línea, agilizan la gestión de fraudes en línea y simplifican la seguridad de los pagos.
  • Openpay: Empresa contratante del servicio de 3D Secure
  • Plugin: Plataforma que permite la gestión de contenidos web para un comercio electrónico

Flujo Challenge 

Indica que Cybersource no cuenta con la suficiente información para determinar que el cliente es el dueño de la tarjeta, por lo tanto, le solicita una autenticación mediante un código que le será enviado a algún medio físico o electrónico personal. Con esta característica se evita algún intento de fraude.

 

 

Los pasos para integrar el flujo Challenge:

  1. El cliente/cardholder envía sus datos desde la página del comercio.
  2. El comercio envía la información del cliente/cardholder con los datos de monto, número de orden y 3D secure a Openpay para realizar la generación de un nuevo cargo.
  3. Openpay genera un nuevo cargo con los datos recibidos por el comercio e inicia el flujo de 3D Secure solicitando un token JWT a Cybersource mediante los datos del cliente. Ver: Cargo 3D Secure con token.
  4. Cybersource devuelve el token JWT generado con la información proporcionada por el cliente.
  5. Openpay almacena la información devuelta por Cybersource y genera una URL de redirección donde se realizará la validación mediante challenge. Esta URL es devuelta al comercio.
  6. El comercio invoca la URL devuelta por Openpay para realizar el enrolamiento de 3D Secure. En este punto, no se envía información alguna. Ver sección de “Envío de URL de autenticación”. 
  7. Cuando se solicita el enrolamiento, Openpay obtiene los datos del cargo generado previamente, los datos almacenados en el paso 5 y los envía a Cybersource para que sean evaluados.
  8. Cybersource retorna a Openpay la información de la URL a donde el cliente será redireccionado para realizar un challenge.
  9. Openpay toma los datos almacenados en el paso 5, la URL devuelta por Cybersource y solicita redireccionar al cliente a la página de challenge.
  10. Cybersource muestra pantalla de Challenge a cardholder donde se le solicitará un código que le fue enviado mediante email, SMS o desde su banca móvil.
  11. El cliente ingresa el código recibido mediante email, SMS o desde su banca móvil.
  12. Se envía a Cybersource el código ingresado por el cliente para su validación a través de la pantalla que proporcionó.  
  13. Cybersource valida el código enviado por el cliente y genera la respuesta para Openpay.
  14. Una vez que el cargo fue aprobado/rechazado, Openpay redirecciona al cliente a la URL que se envía como parámetro en el campo redirect_url. Ver sección “Redireccionamiento a URL de respuesta”. Ver: Obtener un cargo con ID

Flujo Frictionless

Indica que Cybersource cuenta con la suficiente información para conocer que el cliente es el dueño de la tarjeta, por lo tanto, no necesita que este realice una autenticación.

 

Los pasos para integrar el flujo Frictionless:

  1. El cliente/cardholder envía sus datos desde la página del comercio.
  2. El comercio envía la información del cliente/cardholder con los datos de monto, número de orden y 3D secure a Openpay para realizar la generación de un nuevo cargo. Ver: Cargo 3D Secure con token.
  3. Openpay genera un nuevo cargo con los datos recibidos por el comercio e inicia el flujo de 3D Secure solicitando un token JWT a Cybersource mediante los datos del cliente. 
  4. Cybersource devuelve el token JWT generado con la información proporcionada por el cliente.
  5. Openpay almacena la información devuelta por Cybersource y genera una URL de redirección donde se realizará la validación mediante frictionless. Esta URL es devuelta al comercio.
  6. El comercio invoca la URL devuelta por Openpay para realizar el enrolamiento de 3D Secure. En este punto, no se envía información alguna. Ver sección de “Envío de URL de autenticación”. 
  7. Cuando se solicita el enrolamiento, Openpay obtiene los datos del cargo generado previamente, los datos almacenados en el paso 5 y los envía a Cybersource para que sean evaluados.
  8. Cybersource retorna a Openpay que no es necesario que el cliente realice una autenticación de challenge y se completa el pago.
  9. Una vez que el cargo fue aprobado/rechazado, Openpay redirecciona al cliente a la URL que se envía como parámetro en el campo redirect_url. Ver sección “Redireccionamiento a URL de respuesta”. Ver: Obtener un cargo con ID

 

Crear transacción 3D Secure con Token

Para utilizar este servicio se debe tener un Token, el cual puede ser obtenido de las siguientes maneras:

  1. Token de cargo previo. – Si previamente se realizó un intento de cobro a la tarjeta siguiendo la guía de Pagos con tarjeta y el resultado fue un código de error 3005 (Rechazo por riesgo), se puede usar el mismo token creado para 3D Secure.
  2. Creación de nuevo Token. – Si no se cuenta con un token previo, se debe utilizar el servicio de creación de token para crear uno.

Una vez que tengas un token este deberá ser usado la propiedad source_id.

Nota informativa del contenido de la tabla anterior:

Los textos marcados en gris se debe actualizar su información/link:

Propiedad Tipo Descripción
currency String (Opcional) Tipo de moneda del cargo. Se soportan los siguientes tipos de monedas: Pesos Mexicanos (MXN), Dólares Americanos (USD), Soles Peruanos (PEN).
customer Objeto (Opcional) Información del cliente al que se le realiza el cargo. Ver objeto Customer.

 

Ejemplo de petición:

{
"method" : "card",
"amount" : 6000.00,
"description" : "Cargo 3D Secure",
"order_id" :"000000004",
"source_id" : "token1",
"redirect_url" : "http://www.openpay.mx/index.html",
"use_3d_secure" : "true"
}

Importante: Para enviar transacciones con 3Ds y sin 3Ds en una misma integración, se podrá colocar en el parámetro “use_3d_secure”:”false” o “true” para poder dirigirlo sin 3Ds o con 3Ds.

Envío de URL de autenticación

La respuesta a la petición de creación de cargo será un JSON con la información de la transacción a pagar por el usuario. Se debe poner especial atención en los siguientes parámetros: 

  • id. – ID único de la transacción creada, debe ser almacenado ya que será por medio de este ID que se envíe la respuesta una vez que el usuario realice la autenticación 3D Secure. 
  • payment_method.url. – URL a donde se debe redirigir al usuario para iniciar el proceso.

{
"id" : "treqwygvw@hrjuvwbs f5",
"authorization" : "treqwygvwehrjuvwbsf5",
"operation_type" : "in",
"method" :"card",
"transaction_type" : "charge",
"card" :"type" : "credit",
"brand" : "mastercard",
"addres" : null
"card_number" : "549138XXXXXX5100",
"holder_name" :"Heber Lazcano",
"expiration_year" : "20",
"expiration_month" : "12",
"allows charges" : true,
"allows_payouts" : false,
"bank_name" : "Banamex",
"bank_code" :"002",
}
"status" : "charge_pending",
"conciliated" : true,
"creation_date" : "2017-03-17T20:52:47-06:00",
"operation_date" : "2017-03-17T20:52:51-06:00",
"description" : "Cargo 3D Secure",
"error_message" : null
"order_id" : "000000004",
"amount" : 6,
"payment_method" : {
"type" : "redirect",
"url" : "https://api.openpay.mx/v1/mbgaszoxwqews3geshez/charges/treqwygvwehrjuvwbs f5/redirect/",
"currency" : "MXN",
}
}

 

Redireccionamiento a URL de respuesta

Una vez completa la autenticación del usuario en el sistema 3D Secure y recibida la respuesta en Openpay, se re-direccionará al usuario a la URL definida en el paso 2 (redirect_url) usando el ID de la transacción que se envió en el paso 5. Ejemplo: http://www.openpay.mx/index.html?id=treqwygvw0hrjuvwbsf5

Notas:

  • Puedes simular diferentes resultados usando las tarjetas de Pruebas
  • Implementa las Notificaciones para conocer el estado de los pagos en tiempo real

 

Endpoints

Estos son los endpoints empleados para la generación de cargos con 3Ds desde la API para los diferentes ambientes para comercio y cliente:

Método: POST

  • Sandbox
      • https://sandbox-api.openpay.pe/v1/{MERCHANT_ID}/charges
      • https://sandbox-api.openpay.pe/v1/{MERCHANT_ID}/ customers/{CUSTOMER_ID}/charges
  • Producción
    • https://api.openpay.pe/v1/{MERCHANT_ID}/charges
    • https://api.openpay.pe/v1/{MERCHANT_ID}/ customers/{CUSTOMER_ID}/charges

 

Dashboard

A continuación, se muestra la lista de URL’s para ingresar al dashboard en los diferentes ambientes:

  • Sandbox
      • https://sandbox-dashboard.openpay.pe/login/
  • Producción
  • https://dashboard.openpay.pe/login

 

Códigos ECI CYBERSOURCE

Código Descripción Marca de aceptación
05 Autenticación 3Ds exitosa VISA / AMEX
06 No se pudo completar la autenticación VISA / AMEX
07 No se pudo completar la autenticación / Banco emisor no participa en 3Ds VISA / AMEX
02 Autenticación 3Ds exitosa MC
01 No se pudo completar la autenticación MC
00 No se pudo completar la autenticación / Banco emisor no participa en 3Ds MC

 

Tarjetas Cybersource para casos de prueba

  • Challenge
    • 455170 81 6176 8059
    • 545546 09 2009 4260
  • Frictionless
    • 516003 00 0000 0317
    • 447411 83 5563 2240

 

  • Error challenge
    • 448541 20 4975 1046
  • Error frictionless
    • 491910 75 7091 3512
    • 544359 99 8000 0447