1. Pagos con transferencias
Kushki Docs
Español
  • Español
  • English
  • Inicio
  • Inicio rápido
    • Últimas novedades
    • Preguntas frecuentes
    • Paso a producción
    • Política de cambios importantes del API
    • Datos de prueba
    • Códigos de error
  • Glosario de pagos
    • Glosario de pagos
  • Pagos únicos con tarjeta (Online)
    • Marcas de tarjeta soportadas
    • Funcionalidades por modelo de negocio
    • ¿Cómo funcionan las Comisiones a terceros?
    • Guía de integración Comisiones a terceros
    • Pagos en un paso
      • ¿Cómo funcionan los pagos con tarjeta?
      • Acepta un pago con tarjeta
      • Acepta pagos únicos con OTP
      • Códigos de error autenticación OTP
      • Códigos de error pagos únicos con tarjeta
    • Devoluciones
      • Devoluciones, anulaciones y reembolsos
    • Autenticación 3DS
      • Introducción a 3DS
      • Integración 100% API de 3DS
      • Integración 3DS con librería kushki.js
      • Integración 3DS API + librería kushki.js
      • Códigos de error autenticación 3DS
  • Pagos recurrentes con tarjeta (Online)
    • Autentica tus suscripciones con 3DS
    • Suscripciones externas a Kushki
    • Funcionalidades por modelo de negocio
    • Códigos de error en cargos recurrentes
    • Pagos calendarizados
      • Maneja tus cargos calendarizados
      • Crea un cargo recurrente
      • ¿Cómo funcionan los cargos recurrentes con tarjeta?
    • Pagos OneClick
      • Genera pagos one click
  • Pagos con transferencias
    • Bancos y detalles de operación para pagos con transferencia bancaria
    • Recibe transferencias bancarias
    • Consulta el estado de una transacción
  • Pagos en efectivo
    • Acepta un pago en efectivo
    • Puntos de recaudo
    • Códigos de error para transacciones declinadas en efectivo
  • Plugins
    • Shopify
      • Shopify
      • Operación del Plugin
    • 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 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. Pagos con transferencias

Recibe transferencias bancarias

Tus clientes podrán usar el saldo de su cuenta bancaria para comprar en tu sitio o aplicación
Web
iOS
Android
Permite que tus clientes aprovechen el saldo disponible en su cuenta bancaria o en su billetera digital para adquirir tus productos o servicios desde tu página web. En Ecuador puedes procesar transferencias con dos procesadores:
Transferencia bancaria tradicional: obtienes los datos básicos de tu cliente pagador y lo direccionas a la banca electrónica, para autorizar el débito a su cuenta bancaria.
DeUna!: tu cliente paga con el saldo de su cuenta DeUna! desde la app, mediante un QR dinámico, un enlace de redirección o un código de referencia.
El flujo de integración es el mismo en ambos casos —tokenizas en el front-end e inicias la transacción en el back-end— y lo único que cambia es la forma en que tu cliente completa el pago.
El flujo de pago con transferencia bancaria tradicional que integrarás es el siguiente:
Flujo Pago con transferencia (CL-EC-PE)
El flujo de pago con DeUna! es el siguiente:
Flujo de pago con DeUna (EC)
Activación de DeUna!
DeUna! se habilita como procesador para tu comercio desde la Consola Kushki, y lo realiza el equipo de Kushki. No existe un parámetro en la solicitud para seleccionar el procesador: una vez habilitado, el mismo endpoint de inicio de transacción empieza a retornar los campos de DeUna!.
Importante
Ten en cuenta que, debido a nuestras políticas de riesgo, los medios de pago disponibles y el tipo de integración pueden variar al momento en que formalices la afiliación. Te indicaremos cómo proceder en caso de que este proceso aplique para tu comercio.

1. Configura tu Front-end#

La responsabilidad del front-end es recolectar los datos principales del usuario, tokenizar esa información a través de los servidores de Kushki y luego enviarla al back-end para iniciar el proceso de pago.
Para ello cuentas con dos opciones: Kajita y Kushki.js.
Si vas a usar DeUna!, elige bien tu opción
Las tres experiencias de pago de DeUna! no están disponibles en todos los tipos de integración:
Enlace de redirección: disponible en API · Kushki.js y en Kajita · SmartLinks.
Código de referencia: disponible en API · Kushki.js y en Kajita · SmartLinks.
QR dinámico: solo con API · Kushki.js. Kajita no lo renderiza.
Logotipo de DeUna! en el checkout: diseño propio con API · Kushki.js; con Kajita se muestra un texto genérico de transferencia.
Transferencia tradicional y DeUna! en paralelo: solo con API · Kushki.js. Kajita admite un solo procesador.
Si necesitas el QR, tu propio logotipo de DeUna! o correr ambos procesadores en paralelo, integra con Kushki.js o con la API directamente. Kajita no cubre esos casos.

Kajita#

Kushki cuenta con formularios de pago listos para recopilar información de tarjeta de forma segura. Podrás usar cualquiera de nuestras versiones:
Cajita: la primera versión del formulario de pagos. No es personalizable.
Kajita: la segunda versión. Te permite personalizar tus formularios de pago desde tu Consola de administración e incluso tener varias versiones de Kajita.

Crea y personaliza tus Kajitas#

Con Kushki puedes crear tus Kajitas desde la Consola de administración. Haz clic aquí para aprender cómo hacerlo.

Configura Kajita#

Incluye el script de kushki-checkout.js en tu página de pago añadiéndolo al <head> de tu archivo HTML. Siempre carga kushki-checkout directamente desde cdn.kushkipagos.com. No incluyas el script en un bundle o paquete ni hostees una copia de él.

Añade Kajita a tu sitio#

Kajita necesita un espacio dentro de tu página. Ingresa el siguiente código en el <body> de tu sitio donde quieras que se despliegue el formulario de pago.
Para Kajita (v.2):
Para Cajita (v.1):
Recuerda configurar la acción del formulario action de acuerdo con el endpoint correspondiente en tu back-end, para obtener el token.
Luego, agrega el tag script.
Para la Kajita (v.2) podrás obtener dicho script desde tu Consola de administración, según lo explicado en Crea y personaliza tus Kajitas.
Para la v.1 (Cajita), añade el siguiente script y asegúrate de que el formulario se haya cargado:
Esto creará un formulario predefinido en tu página para aceptar pagos.
Puedes utilizar Kajita para ofrecer no solo pagos a través de transferencias, sino también con tarjeta o con efectivo.

Kushki.js#

Usa Kushki.js si necesitas un mayor control sobre el look & feel o apariencia de tu formulario de pago.

Configura Kushki.js#

Opción 1 - CDN#
Usa el siguiente tag script al final del <body> en tu página de pagos.
Opción 2 - NPM#
Instala el paquete desde npm.
Luego impórtalo en tu código utilizando el siguiente código.
Configura el objeto Kushki#
Añade el siguiente código a tu aplicación

Recolecta la información del usuario y envíala a tu back-end#

Primero, añade el formulario a tu página de pagos con los campos requeridos. Puedes diseñarlo como desees.
Por ejemplo:
Envía notificaciones a tus clientes
Si deseas que tus clientes reciban notificación de sus transacciones, asegúrate de capturar el email de tu cliente en el formulario de pago. Adicional a esto, recuerda habilitar la opción de envío de notificaciones desde tu Consola.
Luego, cuando el usuario envía el formulario, deberás solicitar el token y enviarlo a tu back-end.
La tokenización no cambia con DeUna!
La solicitud del token es idéntica para transferencia tradicional y para DeUna!. No hay campos nuevos ni parámetros para seleccionar el procesador: la diferencia aparece recién en la respuesta del inicio de la transacción, en el back-end.
Revisa la referencia completa en nuestra referencia de Kushki.js

2. Configura tu back-end#

La responsabilidad del back-end es recibir el token obtenido desde tu front-end e iniciar el proceso de pago con Kushki.
Cuando el usuario envía el formulario, tu front-end transfiere un token al endpoint que hayas especificado. Con este token, deberás realizar una llamada a nuestro endpoint de cobros para iniciar el proceso de cobro.
Referencia de la API para Ecuador
Solicita un token de transferencia
Init Transaction
Get Status
Autentica siempre desde tu servidor
El inicio de la transacción requiere la cabecera Private-Merchant-Id. Nunca expongas tu Private Key en código de front-end: esta llamada debe salir siempre desde tu back-end.
JavaScript
Python
PHP

Presenta la experiencia de pago#

La respuesta del inicio de la transacción depende del procesador habilitado para tu comercio.
Con transferencia bancaria tradicional, redirecciona al usuario hacia la URL que te retorna Kushki en redirectUrl para que pueda autenticarse en el portal virtual de su entidad bancaria y así autorizar el débito del monto de la transacción del saldo de su cuenta bancaria.
Con DeUna!, la misma llamada te retorna tres campos nuevos, uno por cada experiencia de pago. Una sola solicitud te devuelve las tres: tú eliges cuál mostrar según el canal por el que esté comprando tu cliente.
qr — QR dinámico, como PNG en Base64. Ideal para checkout de escritorio: el cliente escanea con su celular.
redirectUrl — Enlace de redirección que abre la app DeUna!. Ideal para web móvil o tu propia app: abre DeUna! en un toque.
referenceCode — Código de referencia que el cliente digita en la app. Alternativa cuando falla la cámara o el cliente prefiere digitar.

Renderiza el código QR#

El campo qr contiene una imagen PNG codificada en Base64, con el prefijo data:image/png;base64, ya incluido. Debes leer el valor y renderizarlo como imagen en tu checkout: Kushki no aloja la imagen del QR por ti.
No dupliques el prefijo
Como qr ya trae el prefijo data:image/png;base64,, concatenarlo de nuevo genera un data URI inválido y la imagen falla de forma silenciosa: verás un espacio en blanco sin ningún error en consola.

Muestra el código de referencia#

El campo referenceCode es una clave numérica de 6 dígitos.
Tienes 3 minutos
El QR, el enlace de redirección y el código de referencia expiran en 3 minutos, mientras que el token de la transacción dura 30 minutos. Genera la experiencia de pago en el momento en que tu cliente esté listo para pagar, muestra un contador en pantalla y solicita un token nuevo si expira.

Muestra el resultado de la transacción#

Una vez terminado el pago, se retornará el cliente con una llamada GET a la callbackUrl que hayas especificado al solicitar el token.
Junto con la URL de retorno te enviaremos en la ruta el token de la transacción, con el cual puedes verificar el estado de la transacción utilizando este endpoint. Además, obtendrás la información necesaria para el comprobante de pago de tu cliente.
Por ejemplo, para callbackUrl = 'http://www.example.com' se retornará el cliente a:
GET https://www.example.com/?token=26735cbb653a421ba7138eb515e0ab1d
donde token es igual a 26735cbb653a421ba7138eb515e0ab1d
De acuerdo con la respuesta que recibas del estado de la transacción, muestra al usuario una pantalla de éxito o fracaso para informar al cliente si el pago se realizó correctamente o si hubo un error.
Con DeUna! el retorno no está garantizado
Si presentas el QR o el código de referencia, tu cliente paga desde su celular y puede no volver nunca a tu callbackUrl: no hay redirección que lo traiga de vuelta. No uses el retorno como prueba de pago.
Confirma siempre el resultado con el endpoint de estado o con un webhook. El webhook es la opción recomendada, porque no depende de que tu cliente regrese a tu sitio.

3. Prueba tu integración#

El resultado final de estos datos de prueba depende de la configuración de tu comercio: requiere que el ambiente de pruebas (sandbox) esté activo en tu comercio y que el procesador asignado admita simular ciertos estados. Si no obtienes el resultado esperado, escribe a tu ejecutivo de Kushki o a soporte.
Existen números de identificación de prueba que puedes utilizar en el ambiente UAT para asegurarte de que tu integración está lista.
Transacción aprobada: Cualquier número de identificación
Transacción declinada: 999999990
DeUna! no tiene ambiente de simulación
Los números de identificación de prueba anteriores aplican a la transferencia bancaria tradicional. Con DeUna! no es posible simular una transacción en UAT: no existen datos de prueba que devuelvan una transacción aprobada. Coordina con tu equipo de Kushki antes de certificar.

4. Prepara tu certificación#

Toma en consideración las siguientes pautas para aprobar la certificación técnica (requerida para obtener credenciales productivas):
El cálculo de los impuestos y el monto total, debe ser el correcto.
Mostrar tus mensajes en pantalla de acuerdo a las respuestas de Kushki.
Guardar y registrar todas las respuestas de Kushki (requeridas en caso de necesitar soporte).
En caso de que recibas correctamente la notificación al Webhook, responde la solicitud con un statusCode 200 e informa al cliente.
El botón "Pagar" se desactiva después del primer clic.
Si el resultado de la transacción es Initialized, no se debe permitir una nueva transacción hasta que se apruebe o se rechace.
El logo de Kushki debe ser visible para el cliente. Puedes encontrar nuestro logo en varios formatos aquí.
Asegúrate de enviar todas las variables requeridas, especificadas en la referencia de la API.

Acepta webhooks
Maneja eventos post-pago de la manera correcta.
Consulta el estado de tus transacciones
Con el token que recibiste desde el front-end, también podrás consultar el estado de las transacciones por medio de nuestra API.
Modificado en 2026-10-14 19:38:48
Anterior
Bancos y detalles de operación para pagos con transferencia bancaria
Siguiente
Consulta el estado de una transacción
Built with