1. Autenticación 3DS
Kushki Docs
Español
  • Español
  • English
  • Inicio
  • Inicio rápido
    • Preguntas frecuentes
    • Paso a producción
    • Política de cambios importantes del API
    • Códigos de error
    • Datos de prueba
    • Últimas novedades
  • Glosario de pagos
    • Glosario de pagos
  • Pagos únicos con tarjeta (Online)
    • Network Tokens
    • Marcas de tarjeta soportadas
    • Funcionalidades por modelo de negocio
    • Pagos en un paso
      • ¿Cómo funcionan los pagos con tarjeta?
      • Acepta pagos únicos con OTP
      • Códigos de error autenticación OTP
      • Códigos de error pagos únicos con tarjeta
      • Cargo directo (sin token)
      • Acepta un pago con tarjeta
    • Pagos en dos pasos
      • ¿Cómo funcionan los pagos únicos con autorización y captura?
      • Recibe pagos con autorización y captura
    • Devoluciones
      • Devoluciones, anulaciones y reembolsos
    • Autenticación 3DS
      • Integración 100% API de 3DS
      • Integración 3DS con librería kushki.js
      • Códigos de error autenticación 3DS
      • Integración 3DS API + librería kushki.js
      • Introducción a 3DS
    • Pagos con Apple Pay
      • Configuración de Apple Pay
      • Pruebas en Sandbox Apple Pay
  • Pagos recurrentes con tarjeta (Online)
    • Autentica tus suscripciones con 3DS
    • Apple Pay en Suscripciones
    • Acepta pagos one click con 3DS
    • Funcionalidades por modelo de negocio
    • Códigos de error en cargos recurrentes
    • Suscripciones externas a Kushki
    • Pagos calendarizados
      • Crea un cargo recurrente
      • Maneja tus cargos calendarizados
      • ¿Cómo funcionan los cargos recurrentes con tarjeta?
    • Pagos OneClick
      • ¿Cómo funcionan los pagos OneClick con autorización y captura?
      • Genera pagos one click
      • Recibe pagos OneClick con autorización y captura
  • Pagos con tarjeta presente
    • Datos de prueba
    • Acepta pagos con tarjeta presente
    • Webhooks para tarjeta presente
    • Raw card-present API
      • Introducción a Raw card-present API
      • Script de ejemplo para cifrar información
      • Intercambio de claves criptográficas
      • Preguntas frecuentes
      • Códigos de error para transacciones con tarjeta presente
      • Acepta pagos
    • Transacciones
      • Anula un pago
      • Transacciones
    • Kushki One
      • Autenticación y Cifrado de Requests
      • Realiza cobros con Kushki One
      • Servicios asíncronos y webhooks
      • Formato de montos en Kushki ONE
      • Catálogo Unificado de Errores — Kushki ONE Connect
      • Primeros Pasos
      • Impresión en terminal SmartPOS
    • Kushki One App de Pagos
      • Descripción general
      • Devoluciones y PreAuth & Capture
      • Pago Dividido en la terminal
      • Configuración del terminal
      • Consulta tus transacciones
      • Procesa un cobro
  • Pagos con transferencias
    • Consulta el estado de una transacción
    • Experiencias de compra y detalles de operación para pagos con transferencia bancaria
    • Recibe transferencias bancarias
  • Pagos en efectivo
    • Puntos de recaudo
    • Códigos de error para transacciones declinadas en efectivo
    • Acepta un pago en efectivo
  • Métodos alternativos de pago (APM)
    • ¿Cómo funcionan los pagos con APM?
    • Acepta pagos con Yape
  • Dispersión de dinero
    • Transferencia bancaria
      • ¿Cómo funciona la dispersión por transferencia bancaria?
      • Códigos de error para dispersiones por transferencia
      • Dispersa a cuentas bancarias
    • Tarjeta
      • ¿Cómo funciona el envío de fondos a tarjetas?
      • Envía dinero a una tarjeta
      • Códigos de error
  • Plugins
    • Shopify
      • Operación del Plugin
      • Shopify
    • Vtex
      • Guía de integración VTEX
  • Links de pago
    • Smartlinks
  • Formularios y botones de pago
    • Kajita
      • Kajitas de pago
      • ¿Cómo funciona?
    • Botón de pago
      • ¿Cómo funciona el botón de pago?
      • Genera un botón de pago
  • Administración de sucursales
    • ¿Cómo realizar el onboarding de subcomercios vía API?
  • Notificaciones
    • Buenas prácticas
    • Consulta tus webhooks
    • Webhooks para pagos únicos
      • Webhook para pagos únicos con tarjeta
      • Webhook para pagos únicos con transferencia bancaria
      • Webhook para pagos únicos con efectivo
    • Webhooks para pagos recurrentes
      • Webhook para pagos recurrentes con tarjeta
    • Webhooks para dispersiones
      • Webhook para dispersión de dinero con Transferencia
      • Webhook para dispersión con tarjeta
    • Webhooks para smartlinks
      • Webhooks con Smartlinks
    • Webhooks para botón de pagos
      • Webhooks con Botón de pago
    • Webhooks para devoluciones
      • Webhook para devoluciones
      • Webhook para contracargos
HomeMexico 🇲🇽Ecuador 🇪🇨Chile 🇨🇱Colombia 🇨🇴Peru 🇵🇪
HomeMexico 🇲🇽Ecuador 🇪🇨Chile 🇨🇱Colombia 🇨🇴Peru 🇵🇪
Status
Soporte / Support
Español
  • Español
  • English
  1. Autenticación 3DS

Integración 3DS con librería kushki.js

Usa esta opción si tienes implementado o piensas implementar kushki.js en tu front-end y deseas autenticar tus transacciones con 3DS.

Transacciones soportadas#

Soporta ✅No soporta ⛔️
Autenticación 3DS para cargos únicos con tarjeta
Autenticación 3DS para preautorizaciones
Para realizar autenticación 3DS durante la creación de suscripciones (tokenización de tarjetas), consulta esta guía.

1. Configura tu front-end#

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

Kajita (formulario de pago)#

Sigue nuestras instrucciones para Kajita descritas en nuestra guía para aceptar pagos con tarjeta.
Una vez que configures 3DS para tu comercio, Kajita solicitará la validación 3DS de manera automática para cada intento de pago en que se requiera autenticación. No es necesario que realices nada más.

Kushki.js#

Sigue nuestras instrucciones para Kushki.js descritas en nuestra guía para aceptar pagos con tarjeta.
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 requestToken() se verá de esta manera:
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:
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 3DS.
La respuesta 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.
El tarjetahabiente tendrá hasta un máximo de 3 reintentos para completar la autenticación 3DS.

Kushki.js Hosted Fields#

Al momento de llamar al método requestToken() para solicitar un token, si existe una regla 3DS y se cumple la condición, el método requestToken() desplegará el modal para que el cliente pueda ingresar los datos de la validación 3DS.
Si la validación fue incorrecta, podrás recibir uno de los siguientes códigos de error:
CÓDIGOMENSAJEEJEMPLODESCRIPCIÓN
E004Error en solicitud de JWT{ code: "E004", message: "Error en solicitud de JWT" }Si el comercio tiene habilitada una regla para 3DS y hubo un error al solicitar el JWT, se regresará el código E004. Por favor, vuelve a intentar; si el error persiste, contacta a soporte de Kushki.
E005Campos 3DS inválidos{ code: "E005", message: "Campos 3DS inválidos" }Si el comercio tiene habilitada una regla para 3DS y hubo un error en la autenticación 3DS, se regresará el código E005. Por favor, vuelve a intentar asegurándote de ingresar correctamente los datos para la validación 3DS.
E006Error en solicitud de validación de token{ code: "E006", message: "Error en solicitud de validación de token" }Si el comercio tiene habilitada una regla 3DS y hubo un error en la sesión de validación 3DS, se regresará el código E006. Por favor, vuelve a intentar asegurándote de ingresar correctamente los datos para la validación 3DS; si el error persiste contacta a soporte de Kushki.
Consulta la referencia para más información sobre validación 3DS.

2. Configura tu back-end#

Sigue las instrucciones de nuestra guía para aceptar pagos con tarjeta.

3. Prueba tu integración#

Existen tarjetas de prueba que puedes utilizar en modo prueba para asegurarte que tu integración está lista. Úsalas con cualquier CVV, 1234 como código OTP y fecha de expiración futura.
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
Importante
Para habilitar 3DS en modo pruebas en tu comercio se requiere una configuración adicional por parte de Kushki.

4. Prepara tu certificación#

Sigue las pautas descritas en nuestra guía para aceptar pagos con tarjeta.
Modificado en 2026-09-23 22:13:32
Anterior
Integración 100% API de 3DS
Siguiente
Códigos de error autenticación 3DS
Built with