Autentica tus suscripciones con 3DS

Conoce cómo autenticar la tokenización de las tarjetas con 3DS

Esta funcionalidad se encuentra disponible para los siguientes modelos:

☑ Adquirente
☐ Agregador

Para garantizar la seguridad de tu comercio, el equipo de prevención de fraude de Kushki te solicitará activar la validación 3DS al momento de realizar la tokenización de la tarjeta para ejecutar cobros posteriores ya sea OneClick o calendarizados.

Al tener activo el servicio de validación 3DS, se solicitará a tus clientes completar un paso extra de verificación (en adelante challenge) con el emisor de la tarjeta para completar ciertas transacciones. Por lo general, dicho challenge consiste en un OTP enviado por el banco al correo electrónico o teléfono de tu cliente.

Revisa a continuación la disponibilidad de la validación 3DS con suscripciones de acuerdo con los modelos de afiliación e integración disponibles en Kushki.

Disponibilidad de validación 3DS con suscripciones

Por modelos de afiliación

La validación 3DS para suscripciones se encuentra disponible con las siguientes marcas de tarjeta:

Agregación

Tarjeta de crédito y tarjeta de débito
VISAMasterCardAmerican ExpressDiners
Soporta (a través de Webpay Plus) ✅Soporta (a través de Webpay Plus) ✅Soporta (a través de Webpay Plus) ✅Soporta (a través de Webpay Plus) ✅

Adquirencia

Tarjeta de crédito y tarjeta de débito
VISAMasterCard
Soporta ✅Soporta ✅

Por métodos de integración

La validación 3DS con suscripciones se encuentra disponible en los siguientes métodos de integración:

Soporta ✅No soporta ❌
Integración con Smartlink (pagos calendarizados)Integración vía API
Integración Android (SDK)Integración con Kajita
Integración iOS (SDK)Integración con Magento
Integración con botón de pagoIntegración con Prestashop
Integración Kushki.jsIntegración con Woocommerce
Integración con VTEX
Integración con Shopify
Integración con Adobe Commerce

¿Cómo funciona la validación 3DS?

Una vez el usuario complete el formulario y haga clic en Guardar tarjeta, Kushki validará si es necesaria la validación 3DS para la transacción. De ser requerida dicha validación a tu cliente se le mostrará un challenge cuya experiencia podría variar dependiendo de la marca y del banco emisor. Cuando éste complete el challenge podrá finalizar la inscripción de la trajeta.

El flujo de autenticación 3DS con Kushki (creación de cargo recurrente) es el siguiente:

3DS Cargos recurrentes

Marcas soportadas en 3DS

Marcas de tarjetas soportadas Perú - Débito

1. Configura tu front-end

Configura tu front-end de acuerdo a tu integración.

Kushki.js

Sigue nuestras instrucciones para Kushki.js descritas en nuestra guía para aceptar pagos recurrentes.

Ahora, antes de enviar los datos al endpoint en tu back-end debemos realizar la validación 3DS con el emisor.

Cuando 3DS está activado la respuesta obtenida desde el método requestSubscriptionToken() se verá de esta manera:

{
"token": "oaACBE1012310zYTjE239227yqFRA8r7",
"secureService": "3dsecure",
"secureId": "e356d68d-3f31-4134-a9a7-8cba46b3cdac",
"security": {
"acsURL": "https://authentication.cardinalcommerce.com/ThreeDSecure/V1_0_2/PayerAuthentication?issuerId\u00d2aa20412b0063aca652facd9g\u0034transactionId\u003dQhcf3XOjdZmjve336Vee2gb5rof1",
"authenticationTransactionId": "1d8cf7jg5Bfn8Nj73mn7",
"paReq": "eNpVUtluwjAQfPdXoH5A7DghtGixxFUViRt6iDfXGGJCDpykQL++doDSvu3sjtYzs4ZlqKXsLaQotWQwknnOt7Km1q2HyeIx6EW7w2dn09NjFXnxxn1gMG3P5YHBl9S5ShPmOsShgG8QmRVahDwpGHBx6AzGzKdXoH5A7DghtGixxpVUtluwjAQfPdXoH5A7DghtGixs4ZlqKXsLaQot0u4KqLQKRlUugzC4gP+AYQlHrPwqLImhgfj0cnKvMwUhnfprkj0hiwnSPAxn1gMG3P5YHBl9S5ShPmOsShOqLqJ7x73Gx2vVbgC0DwZoXklFCKXFpo0bcpu83qWht0u4KqLQKRlUugzC4gP+AYQlHrpfUGenfxtGEOl1jIRN0c3hECesjSRhmNC+62Nh7vy7otNVxQmtdkm3Ew/Jrv1Kp0X4elF8Pb6p/n2KH/k0skaqcyeVHfdaulqgoP20X4elF8Pb6p/n2KH/k0sv8\u003d",
"specificationVersion": "2.2.0",
"authRequired": true
}
}

A continuación la descripción de estas variables:

ParámetroTipoDescripción
authRequiredBooleanaEste campo te indica si se requiere o no challenge de 3DS.
acsURLURLHace referencia a la URL de la página del reto que el usuario debe pasar (Access Control System).
specificationVersionStringSe refiere a la versión de 3DS aplicable.
authenticationTransactionIdStringID de la transacción verificada desde las marcas.
paReqStringSignifica Payer Authentication Request. Es un campo codificado en base64 que contiene información de tu comercio y del tarjetahabiente y que se envía al emisor para la autenticación
Nota: en caso de estar haciendo pruebas en ambiente UAT, se debe enviar sandbox.

Una vez recibas la respuesta del Token con la estructura anterior, debes enviar el objeto security a Kushki consumiendo el método requestValidate3DS :

var callback = function(response) {
if(!response.code){
console.log(response);
} else {
console.error('Error: ',response.error, 'Code: ', response.code, 'Message: ',response.message);
}
}
kushki.requestValidate3DS({
secureId: "5e44449e-869b-4fed-bbca-e1bfa5af53c3",
security: {
acsURL: "https://authentication.cardinalcommerce.com/ThreeDSecure/V1_0_2/PayerAuthentication?issuerId\u00d2aa20412b0063aca652facd9g\u0034transactionId\u003dQhcf3XOjdZmjve336Vee2gb5rof1",
authenticationTransactionId: "1d8cf7jg5Bfn8Nj73mn7",
paReq: "eNpVUtluwjAQfPdXoH5A7DghtGixxFUViRt6iDfXGGJCDpykQL++doDSvu3sjtYzs4ZlqKXsLaQotWQwknnOt7Km1q2HyeIx6EW7w2dn09NjFXnxxn1gMG3P5YHBl9S5ShPmOsShgG8QmRVahDwpGHBx6AzGzKdXoH5A7DghtGixxpVUtluwjAQfPdXoH5A7DghtGixs4ZlqKXsLaQot0u4KqLQKRlUugzC4gP+AYQlHrPwqLImhgfj0cnKvMwUhnfprkj0hiwnSPAxn1gMG3P5YHBl9S5ShPmOsShOqLqJ7x73Gx2vVbgC0DwZoXklFCKXFpo0bcpu83qWht0u4KqLQKRlUugzC4gP+AYQlHrpfUGenfxtGEOl1jIRN0c3hECesjSRhmNC+62Nh7vy7otNVxQmtdkm3Ew/Jrv1Kp0X4elF8Pb6p/n2KH/k0skaqcyeVHfdaulqgoP20X4elF8Pb6p/n2KH/k0sv8\u003d",
specificationVersion: "2.2.0",
authRequired: true
}, callback);

Si el valor de la variable authRequired es igual a true el modal para validación de 3DS será presentado y tu cliente entonces recibirá el valor a ingresar por correo electrónico o mensaje de texto.

Si el valor de la variable authRequired es igual a false no se presentará el modal para validación de 3DS.

La respuesta exitosa que recibirás en la función callback será:

{
"code":"3DS000",
"message":"ok"
}

En caso de error, la respuesta de la función callback será algo como:

{
"message":"error-message",
"code":"error-code",
"error": "error-message"
}

La respuesta de la autenticación la obtendrás en el cargo. Si la autenticación se declina, recibirás un código K322 y alguno de los subcódigos especificados en la guía de Códigos de error.

2. Configura tu back-end

3. Prueba tu integración

A continuación encontrarás algunas tarjetas de prueba que puedes utilizar en modo prueba (UAT) para asegurarte que tu integración está lista. Úsalas con cualquier CVV, ingresa cualquier fecha de expiración futura y una vez aparezca el modal de 3DS, ingresa 1234 como código de validación.

  • Transacción aprobada con generación de modal 3DS:
    • 4456528080389860
    • 4456529267234200
    • 4456529165328302
    • 4456524869770255
    • 4456523340069956
  • Transacción aprobada sin generación de modal 3DS:
    • 4456540000000063
    • 4456543371713314
    • 4456541982068615
    • 4456541249811088

4. Prepara tu certificación

Sigue las pautas descritas en nuestra guía para aceptar pagos recurrentes.