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)
    • Network Tokens
    • Marcas de tarjeta soportadas
    • Funcionalidades por modelo de negocio
    • Guía de integración Comisiones a terceros
    • ¿Cómo funcionan las Comisiones a terceros?
    • Pagos en un paso
      • Acepta un pago con tarjeta
      • Cargo directo (sin token)
      • ¿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
    • Pagos en dos pasos
      • Recibe pagos con autorización y captura
      • ¿Cómo funcionan los pagos únicos con autorización y captura?
    • Devoluciones
      • Devoluciones, anulaciones y reembolsos
    • Autenticación 3DS
      • Integración 3DS API + librería kushki.js
      • Introducción a 3DS
      • Integración 100% API de 3DS
      • Integración 3DS con librería kushki.js
      • Códigos de error autenticación 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
    • Suscripciones externas a Kushki
    • Acepta pagos one click con 3DS
    • Funcionalidades por modelo de negocio
    • Códigos de error en cargos recurrentes
    • Pagos calendarizados
      • ¿Cómo funcionan los cargos recurrentes con tarjeta?
      • Maneja tus cargos calendarizados
      • Crea un cargo recurrente
    • Pagos OneClick
      • Genera pagos one click
      • Recibe pagos OneClick con autorización y captura
      • ¿Cómo funcionan los pagos OneClick con autorización y captura?
  • Pagos con tarjeta presente
    • Acepta pagos con tarjeta presente
    • Datos de prueba
    • Webhooks para tarjeta presente
    • Cloud Terminal API
      • Acepta pagos
      • Anula una solicitud de pago
      • Consulta el estado de una petición de cobro
      • ¿Cómo imprimir un ticket personalizado?
    • App-to-app
      • Acepta pagos
    • Transacciones
      • Anula un pago
      • Transacciones
    • Terminal SDK
      • Acepta pagos
    • Kushki One
      • Autenticación y Cifrado de Requests
      • Realiza cobros con Kushki One
      • Formato de montos en Kushki ONE
      • Impresión en terminal SmartPOS
      • Catálogo Unificado de Errores — Kushki ONE Connect
      • Servicios asíncronos y webhooks
    • Raw card-present API
      • Acepta pagos
      • Script de ejemplo para cifrar información
      • Intercambio de claves criptográficas
      • Preguntas frecuentes
      • Códigos de error para transacciones con tarjeta presente
    • Kushki One App de Pagos
      • Devoluciones y PreAuth & Capture
      • Procesa un cobro
      • Pago Dividido en la terminal
      • Consulta tus transacciones
      • Configuración del terminal
  • Pagos con transferencias
    • Bancos y detalles de operación para pagos con transferencia bancaria
    • Recibe transferencias bancarias
    • Consulta el estado de una transacción
  • Dispersión de dinero
    • Transferencia bancaria
      • Dispersa a cuentas bancarias
      • Códigos de error para dispersiones por transferencia
  • Plugins
    • 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 dispersiones
      • Webhook para dispersión de dinero con transferencia
    • Webhooks para botón de pagos
      • Webhooks con Botón de pago
    • Webhooks para smartlinks
      • Webhooks con Smartlinks
    • Webhooks para pagos recurrentes
      • Webhook para pagos recurrentes con tarjeta
    • 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 web
Web
iOS
Android
Permite que tus clientes aprovechen el saldo disponible en su cuenta bancaria para adquirir tus productos o servicios desde tu página web, a través de una transferencia. Para lograrlo, debes obtener los datos de tu cliente pagador, generar un número Clabe y proporcionar este junto a tu cliente, de forma que este se dirija al sitio de su banco y efectúe el pago.
El flujo de pago que integrarás es el siguiente:
Flujo_transfer_MX_ES

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.

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 aquí.
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.
Option 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 notificaciones desde tu Consola.
Luego, cuando el usuario envía el formulario, deberás solicitar el token y enviarlo a tu 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 Init Transaction para obtener el código de la cuenta CLABE asociada al correo que tu cliente especificó en el paso 1 y la referencia de pago.
JavaScript
Python
PHP
Revisa nuestra Referencia de la API para mayor información.
Como respuesta a esta llamada obtendrás la siguiente información:
{
  "bank": "Transfer Processor",
  "referenceNumber": "1111111",
  "referenceProcessor": "641641241726965121",
  "ticketNumber": "1641241726965127",
  "transactionReference": "fb247919-2c5e-4ef2-ab75-21fc38b5a7e4"
}
Deberás mostrar a tu cliente la Clabe (referenceProcessor) para que pueda ingresar a su portal bancario y completar la transferencia. Asegúrate de guardar la demás información obtenida para futuras consultas.
Importante ❗️⛔️
La cuenta clabe no variará para tu cliente pagador, siempre y cuando se ingrese el mismo correo al solicitar el token.
Si la transacción no se paga, quedará en estado initializedTransaction por hasta 7 días. Cumplido este plazo, quedará como expiredTransaction. Contáctanos si deseas reducir este plazo a menos de 7 días (mínimo 1 día).
Si el monto enviado al consumir el init difiere del monto pagado en el banco, la transferencia será declinada. En este caso, se le hará una devolución inmediata de lo pagado al cliente. La transacción quedará en estado initializedTransaction por hasta 7 días. Cumplido este plazo, quedará como expiredTransaction.

3. Consulta el estado de la transferencia#

Para enterarte del estado de la transferencia bancaria efectuada por tu cliente podrás utilizar cualquiera de estas opciones:
Webhook para pagos únicos con transferencia.
Usar la API de Kushki.

4. 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 datos de prueba que puedes usar en ambiente UAT para asegurarte de que tu integración está lista.
Transacción aprobada: envía documentNumber: 123456789 al solicitar el token (cualquier número diferente a 999999990 también se aprueba).
Transacción declinada: envía documentNumber: 999999990.
Consulta el resultado con GET /status/{token}. Encuentra más detalle en Datos de prueba.

5. 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 con 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-21 19:52:01
Anterior
Bancos y detalles de operación para pagos con transferencia bancaria
Siguiente
Consulta el estado de una transacción
Built with