1. Kushki One
Kushki Docs
Español
  • Español
  • English
  • Inicio
  • Inicio rápido
    • Últimas novedades
    • Datos de prueba
    • Preguntas frecuentes
    • Paso a producción
    • Política de cambios importantes del API
    • 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
    • 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
    • Suscripciones externas a Kushki
    • Acepta pagos one click con 3DS
    • Funcionalidades por modelo de negocio
    • Códigos de error en cargos recurrentes
    • Pagos calendarizados
      • Maneja tus cargos calendarizados
      • Crea un cargo calendarizado
      • ¿Cómo funcionan los cargos recurrentes con tarjeta?
    • Pagos OneClick
      • Recibe pagos OneClick con autorización y captura
      • Genera pagos one click
      • ¿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
    • Raw card-present API
      • Introducción a Raw card-present API
      • Script de ejemplo para cifrar información
      • Acepta pagos
      • Intercambio de claves criptográficas
      • Preguntas frecuentes
      • Códigos de error para transacciones con tarjeta presente
    • Kushki One
      • Primeros Pasos
      • 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
    • Kushki One App de Pagos
      • Descripción general
      • Devoluciones y PreAuth & Capture
      • Pago Dividido en la terminal
      • Configuración del terminal
      • Procesa un cobro
      • Consulta tus transacciones
    • Transacciones
      • Transacciones
      • Anula un pago
  • Pagos con transferencias
    • Recibe transferencias bancarias
    • Códigos de error para transferencias
    • Consulta el estado de una transacción
    • Bancos y detalles de operación para pagos con transferencia bancaria
  • Pagos en efectivo
    • Acepta un pago en efectivo
    • ¿Cómo funcionan los pagos en efectivo?
    • Puntos de recaudo
    • Códigos de error para transacciones declinadas en efectivo
  • Métodos alternativos de pago (APM)
    • ¿Cómo funcionan los pagos con APM?
    • Acepta pagos con Bre-B
  • Dispersión de dinero
    • Recarga tu saldo para dispersiones
    • Transferencia bancaria
      • Dispersa a cuentas bancarias
      • Dispersa con Bre-B
      • Códigos de error para dispersiones por transferencia
      • ¿Cómo funciona la dispersión por transferencia bancaria?
    • Efectivo
      • Dispersa dinero en efectivo
      • Maneja tus dispersiones
      • ¿Cómo funciona la dispersión por efectivo?
  • Plugins
    • Shopify
      • Shopify
      • Operación del Plugin
    • Vtex
      • Guía de integración VTEX
  • Links de pago
    • Smartlinks
  • Formularios y botones de pago
    • Introducción
    • Kajita
      • Kajitas de pago
      • ¿Cómo funciona?
    • Botón de pago
      • Genera un botón de pago
      • ¿Cómo funciona el 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 dispersiones
      • Webhook para dispersión de dinero con transferencia
      • Webhook para dispersión de dinero con efectivo
    • 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. Kushki One

Primeros Pasos

Conoce Kushki ONE, nuestra solución regional para pagos de venta presente (Card Present).
🚧 Early Release — Beta
Este producto está en acceso temprano. Los parámetros, estructuras de respuesta y comportamientos pueden cambiar sin previo aviso. No uses esta versión en producción sin coordinarlo previamente con el equipo de integraciones de Kushki.

¿Qué es Kushki ONE?#

Kushki ONE es la solución integral de pagos presenciales de Kushki. Está diseñada para que los comercios reciban pagos físicos a través de terminales SmartPOS, unificando toda la operación en un solo ecosistema.
Recibe pagos usando directamente la aplicación de cobro instalada en la terminal, o conecta tu software de punto de venta a través de nuestra API. Opera desde una caja, tablet, computador u otro dispositivo con conexión a red, o desde una app instalada en la misma terminal.

Mercados y monedas#

PaísMonedaDecimales
ChileCLP0
ColombiaCOP0
MéxicoMXN2
PerúPEN2
La cantidad de decimales cambia cómo envías el monto
Los montos se envían como enteros en la unidad mínima de la moneda, y el resultado depende del país. Revisa Formato de montos en Kushki ONE antes de construir tu primer request.

¿Cómo utilizar esta guía?#

Esta documentación se divide en dos rutas según tu rol.
Ruta 1: operadores y administradores
Para quienes operan el punto de venta o administran el negocio: hardware certificado, la Payment App, el catálogo de operaciones y los modos Standalone y Semi-Integrado.
Ruta 2: desarrolladores e integradores
Para quienes conectan el software de caja con la terminal: Kushki ONE Connect, topologías de integración, seguridad, requisitos de red y el flujo completo de la transacción.

Ruta 1: Para Operadores y Administradores de Comercio#

Hardware Soportado#

La arquitectura de Kushki ONE es agnóstica respecto al hardware y todos sus componentes son interoperables. Sin embargo, para garantizar el máximo rendimiento y estabilidad, la solución está certificada únicamente para estos dispositivos SmartPOS.
ModeloPantalla y diseñoProcesador y memoriaSistema operativo
Sunmi P3 (estándar)6.75" HD+ sin biseles (350 nits). Ultradelgado de 17 mm con recubrimiento antihuellasQuad-Core A53 a 2.0 GHz, 2 GB RAM, 32 GB ROMSunmi OS (Android 11 Go)
Sunmi P2 SEPantalla compacta. Diseño ligero, resistente a polvo, salpicaduras y caídas. Motor de escaneo de QR y códigos de barrasQuad-Core a 2.0 GHz, memoria DDR4Sunmi OS (Android)

Sunmi P3#

Impresora integrada: térmica de alta velocidad, 70 mm/s.
Batería: litio extraíble de 7.7 V y 2,630 mAh. Hasta 13 días en espera.
Diseño: ultradelgado de 17 mm con recubrimiento antihuellas, pensado para entornos de alto tráfico.

Sunmi P2 SE#

Movilidad: diseño compacto y ligero, ideal para pagos en la mesa, retail o entrega a domicilio.
Lector de códigos: motor de escaneo profesional para códigos de barras y QR, incluso deteriorados.
Durabilidad: resistente a polvo, salpicaduras y caídas. Batería optimizada para turnos largos.
Especificaciones completas
Consulta todas las fichas técnicas en la página oficial de Sunmi.

Kushki ONE Payment App#

Es la aplicación de cobro instalada directamente en la terminal física. Su interfaz permite al operador ejecutar y gestionar el ciclo de vida completo de un pago sin necesidad de un punto de venta externo.

Catálogo de Operaciones#

OperaciónDisponible por APIDescripción
Venta✅Cobro en un solo paso. Admite propina, cuotas de comercio, cuotas de emisor y cashback
Autorización✅Reserva el cupo en la tarjeta para un cobro posterior
Captura✅Cobra un monto previamente autorizado
Re-autorización✅Modifica el monto autorizado o extiende el plazo para aplicar la captura
Devolución✅Retorna el dinero de una venta. Internamente ejecuta una anulación o un reembolso según el momento de la ejecución
Post propina✅Ingresa un monto de propina posterior a la autorización de una transacción
Divide la cuenta❌Divide un monto en varios pagos secuenciales. Solo Standalone — no tiene endpoint
Divide la cuenta no es Split Payment
Son pagos concatenados para simplificar la división de una cuenta, por ejemplo en un restaurante. No los confundas con las operaciones de Split Payment del comercio electrónico, que reparten un mismo pago entre varios comercios.

Modos de Operación de la Terminal#

Modo Standalone
La terminal funciona de forma autónoma, sin integración con sistemas externos.
El operador usa la pantalla táctil como calculadora. Todo el ciclo se realiza en el dispositivo.
Ideal para comercios sin un sistema de punto de venta externo.
Modo Semi-Integrado
Requerido para conectar tu punto de venta con la terminal mediante Kushki ONE Connect.
La interfaz se bloquea en estado "Esperando llamada" y solo reacciona a los comandos que envía tu software de caja.
Ideal para integraciones con un punto de venta propio.

Ruta 2: Para Desarrolladores e Integradores (Kushki ONE Connect)#

¿Qué es Kushki ONE Connect?#

Kushki ONE Connect es nuestra capa de integración por API que permite a tu software de caja interactuar directamente con la terminal física cuando opera en modo Semi-Integrado. Tu sistema envía los comandos financieros a la aplicación de pago, y con eso eliminas la digitación manual y los errores humanos.
La premisa es simple: es la misma API independientemente del canal que uses. Lo único que varía entre topologías es la vía de comunicación, no la estructura de los endpoints ni los payloads.

Topologías de Integración (Vías de Comunicación)#

☁️ Nube📡 Red Local📲 Localhost
FlujoCaja → Servidores Kushki → TerminalCaja → Router local → TerminalTu app ⇄ Kushki ONE App, en el mismo dispositivo
Caso de usoPunto de venta en la nube, comercios multisede, caja y terminal en redes distintasSupermercados, retail y restaurantes bajo la misma redApp de caja propia instalada en la terminal
Requisito claveInternet estable en la caja y en la terminalIP estática o reserva DHCP en la terminalNo requiere red interna entre las apps
Internet siempre es necesario
La comunicación por localhost no requiere red entre las apps, pero el dispositivo siempre necesita salida a internet para procesar la transacción financiera con Kushki.

1. Integración vía Nube#

Tu caja envía la petición a los servidores de Kushki, que identifican a qué terminal va dirigida la orden y la enrutan por internet.
Diagrama de la integración de Kushki ONE vía nube
Ventaja: no requiere que la caja y la terminal compartan la misma red local.
Consideración: requiere conexión a internet estable en ambos extremos.
| Entorno | URL base |
|---|---|
| UAT | https://uat-cloudt.kushkipagos.com |
| Producción | https://cloudt.kushkipagos.com |
Todos los endpoints incluyen el número de serie de la terminal en la ruta:
https://{host}/terminal/v1/{terminalSerial}/sync/{operación}
Serial de la terminal
El terminalSerial de cada dispositivo lo entrega el equipo de integraciones de Kushki durante el onboarding.

2. Integración vía Red Local#

Tu caja envía una petición HTTP directamente a la IP local de la terminal, sin triangular con servidores externos. Eso reduce la latencia de forma notable.
Diagrama de la integración de Kushki ONE vía red local
Ventaja: menor latencia, porque la comunicación entre caja y terminal no depende de internet.
Consideración: la terminal necesita IP estática o reserva DHCP. Si la IP cambia, tu caja pierde la comunicación.
¿Cómo saber la IP de tu terminal?#
1.
Entra a Ajustes y luego a Wi-Fi.
2.
Pulsa el nombre de la red conectada.
3.
Despliega Opciones avanzadas.
4.
Desplázate hasta el campo Dirección IP.

3. Integración en el Mismo Dispositivo (Localhost)#

Aplica cuando tienes tu propia app de caja instalada dentro de la misma terminal SmartPOS. Tu app y la Kushki ONE Payment App conviven en el mismo hardware y se comunican apuntando a localhost.
Diagrama de la integración de Kushki ONE vía localhost
Ventaja principal: reemplaza los flujos de integración app a app tradicionales con llamadas HTTP estándar.
Sin red interna: la comunicación entre las dos apps no necesita Wi-Fi ni Ethernet.

Seguridad en la Comunicación#

Todas las comunicaciones hacia Kushki ONE Connect se autentican con una firma que calculas a partir de tu Business-Code.
Business-Code no es private_credential_id
La llave de firma es tu Business-Code. El private_credential_id es un campo de configuración de la terminal y nunca se usa para firmar requests.
La lógica de firma y cifrado no cambia entre topologías: es la misma en Nube, Red Local y Localhost. Hay un solo mecanismo — hash + cifrado:
ElementoValor
AuthorizationBasic seguido del hash SHA-512
timestampUnix timestamp en segundos, dentro de ±5 minutos de la hora del servidor
CuerpoEl sobre cifrado {"data": "<iv_hex>:<ciphertext_hex>"}
En Red Local y Localhost, envía el header encrypted_http_communication en true
Si integras por Red Local o Localhost, envía el header encrypted_http_communication: true en cada request, en UAT y en producción. Sin él, tus requests no se firman ni se cifran, y al pasar a producción fallan con AUTH-001 («Invalid or expired credentials»). La integración por Nube no requiere este header.
Escríbela una sola vez
La lógica de firma y cifrado de este apartado es la misma en las tres topologías. El flujo completo — derivación de claves, los siete pasos y el árbol de diagnóstico — está en Autenticación y cifrado de requests.

Requisitos de Red e Infraestructura#

1. Configuración de red local#

Aplica únicamente si usas la topología de Red Local.
IP estática o reserva DHCP: configura el router para que asigne siempre la misma IP a la terminal, asociada a su dirección MAC.
Puertos de comunicación: el firewall interno debe permitir tráfico bidireccional en los puertos TCP de la terminal — 6868 para HTTP y 6869 para HTTPS. Una red que solo abre el 6868 bloquea el acceso HTTPS a la terminal.
Seguridad Wi-Fi: las terminales certificadas soportan WPA2-PSK y WPA3.
Redes no recomendadas
No conectes las terminales a redes públicas abiertas ni a redes con portales cautivos, que exigen usuario y contraseña en un navegador para dar acceso.

2. Dominios permitidos#

La terminal siempre requiere salida a internet para procesar transacciones y recibir actualizaciones. Si tu red corporativa bloquea el tráfico saliente, tu equipo de TI debe habilitar estos hosts en el puerto 443. Abre solo la columna de tu ambiente — uat-cloudt es un host de pruebas y no corresponde en una red productiva:
PropósitoUATProducciónQuién lo necesita
Relay de Nubeuat-cloudt.kushkipagos.comcloudt.kushkipagos.comLa terminal y la red del POS
Procesamiento de pagosapi-uat.kushkipagos.comapi.kushkipagos.comSolo la terminal
Gestión de terminalesuat-tms.kushkipagos.comtms.kushkipagos.comSolo la terminal
Los tres son egress real de la terminal. La única fila que además hay que abrir desde la red del POS es el relay de Nube, y solo si integras por esa topología.
Puerto 6868 y puerto 443 no son lo mismo
Los puertos 6868 y 6869 son los puertos de escucha locales de la terminal y solo aplican a la comunicación entre tu caja y la terminal dentro de la misma red. El tráfico hacia los servidores de Kushki siempre usa el puerto 443. Si tu política de red exige una lista exhaustiva que incluya los servicios de telemetría del fabricante, solicítala al equipo de integraciones.

Flujo Completo de una Transacción#

Flujo completo de una transacción en Kushki ONE
1.
Generación de la solicitud: tu sistema de caja genera la solicitud y envía el monto a cobrar por API.
2.
Decisión y enrutamiento: Kushki ONE Connect recibe la solicitud y la enruta hacia el dispositivo físico según la configuración del comercio, por Nube o por Red Local.
3.
Recepción y captura de datos: la terminal recibe la petición, muestra el monto en pantalla y lee la tarjeta del cliente.
4.
Procesamiento: la terminal envía la información a Kushki, que procesa la transacción financiera.

Verifica tu conexión#

Antes de tu primer cobro, comprueba que tu caja alcanza la terminal. Este endpoint no mueve dinero y es la forma más rápida de validar red, puerto y credenciales.
JavaScript
Python
La misma verificación existe en Nube, donde cambia el método — es un POST dirigido a la terminal por número de serie:
POST /terminal/v1/{terminalSerial}/sync/local/test
Hay un segundo endpoint de diagnóstico que conviene conocer, disponible en las dos topologías:
GET  /terminal/v1/sync/config/terminal_info                 ← red local
POST /terminal/v1/{terminalSerial}/sync/config/terminal_info  ← Nube
Devuelve {model, room, serialNumber}. El campo room es la versión de app de la terminal — el único dato con el que sabés contra qué build estás probando, algo que importa mientras el producto está en Beta.
Si recibes un error TER-002, la terminal no responde: revisa la conectividad de red y que el puerto esté abierto. Si recibes un error de autenticación, revisa tu firma.

Próximos pasos#

Formato de montos en Kushki ONE
Aprende a construir el objeto amount en unidades mínimas según la moneda de cada país. Es el paso que evita cobros con el monto equivocado.
Autenticación de requests
Implementa la firma y el cifrado de tus requests: es un solo mecanismo, igual en las tres topologías.
Acepta cobros con Kushki ONE
Procesa venta directa, autorización, captura, propina posterior, anulación y devolución.
Imprime desde la terminal
Envía trabajos de impresión al SmartPOS: recibos, cupones y códigos QR, sin drivers ni SDK.
Modificado en 2026-10-14 19:40:31
Anterior
Kushki One
Siguiente
Autenticación y Cifrado de Requests
Built with