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

Formato de montos en Kushki ONE

Aprende a construir el campo amount en unidades mínimas según la moneda de tu país y evita cobros con el monto equivocado
🚧 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.
Todos los endpoints de Kushki ONE Connect que involucran dinero comparten el mismo objeto amount. Antes de construir tu primer request, necesitas entender una sola regla: los montos se envían como números enteros, en la unidad mínima de la moneda.
Nunca envíes puntos, comas, espacios ni ningún otro separador.

Tu moneda y sus decimales#

En Colombia operas en pesos colombianos (COP), que no usan decimales.
La moneda no viaja en el request
El objeto amount no incluye un campo de moneda: la terminal resuelve la moneda desde su propia configuración. El equipo de integraciones confirma cuál usa tu terminal durante el onboarding.

La regla de conversión#

El valor se envía tal cual, sin agregar ceros.
Para cobrarEnvías
1.244 COP1244
12.000 COP12000
25.800 COP25800
1.000.000 COP1000000
Nunca rellenes un monto en pesos colombianos
Si agregas 00 al final de un monto en COP, cobrarás 100 veces más de lo debido. Los ceros de relleno aplican solo a monedas con dos decimales.

Cómo se compone el monto#

El monto cobrado es la suma de todos los campos del objeto amount.
CampoQué representa
subtotal_ivaPorción de la venta afecta a impuesto
ivaMonto del impuesto sobre esa porción
subtotal_iva0Porción exenta. Usa solo este campo cuando la venta no tiene desglose
extra_taxesImpuestos de giros específicos: airport_tax, iac, ice, travel_agency. Envía 0 cuando no aplican
tipPropina. Viaja en /charge y /authorization; en /pos_tip es el monto de la operación. Si la funcionalidad no está habilitada la terminal la ignora — solicítala en soporte@kushkipagos.com

Ejemplo completo#

Cuenta de restaurante: 20.000 COP en alimentos, IVA del 19% y una propina de 2.000 COP.
ComponenteValorUnidad mínima
subtotal_iva20.000 COP20000
iva3.800 COP3800
tip2.000 COP2000
Total cobrado25.800 COP25800
{
  "amount": {
    "iva": 3800,
    "subtotal_iva": 20000,
    "subtotal_iva0": 0,
    "tip": 2000,
    "extra_taxes": { "airport_tax": 0, "iac": 0, "ice": 0, "travel_agency": 0 }
  },
  "client_transaction_id": "7f8e9d0c-1111-4000-8000-aabbccddeeff"
}

Venta sin desglose de impuestos#

Cuando no detallas impuestos, coloca el monto completo en subtotal_iva0:
{
  "amount": {
    "iva": 0,
    "subtotal_iva": 0,
    "subtotal_iva0": 11800,
    "extra_taxes": { "airport_tax": 0, "iac": 0, "ice": 0, "travel_agency": 0 }
  },
  "client_transaction_id": "1a2b3c4d-3333-4000-8000-112233445566"
}

Convierte a la unidad mínima#

Tu moneda no necesita conversión
En una moneda sin decimales el entero que envías es el monto: no hay multiplicación ni relleno. El helper de abajo solo importa si tu sistema de caja también atiende un mercado de dos decimales.
JavaScript
Python

Errores frecuentes#

ErrorQué pasaCómo lo evitas
Enviar el monto con decimalesEl cobro sale con el monto equivocado o el request se rechazaConvierte a unidad mínima antes de enviar
Rellenar con 00 una moneda sin decimalesCobras 100 veces más de lo debidoEn COP y CLP el monto se envía tal cual
Reutilizar un helper de conversión de otro mercadoCobras 100 veces más o de menosDeriva los decimales por terminal, no por código
Enviar el monto como texto con separadoresError de validaciónElimina todos los separadores y envía un entero
Convertir con punto flotanteDiferencia de un centavo en algunos montosUsa enteros o un tipo decimal
Reutilizar un monto devuelto por un webhookMagnitud incorrectaEl evento no copia tu request: operation.amount omite iva y subtotal_iva cuando van en cero y agrega currency y tip
Valida antes de enviar
Verifica que los campos de amount sumen el total que esperas cobrar antes de llamar a la API. Un monto mal armado es la causa más frecuente de diferencias en conciliación.

Si operas en varios mercados#

Esta sección aplica solo si tu sistema de caja atiende comercios en más de un país.
MonedaPaísDecimales
CLPChile0
COPColombia0
MXNMéxico2
PENPerú2
El mismo entero es distinto dinero
1244 representa 12.44 MXN en México y 1.244 COP en Colombia: una diferencia de 100 veces. Como el payload no lleva campo de moneda, resolver esto queda enteramente de tu lado.
Consulta el currency_code configurado en cada terminal y deriva la cantidad de decimales a partir de ahí, nunca a partir de la sucursal o del idioma del usuario.
Acepta cobros con Kushki ONE
Con el monto correctamente construido, revisa los flujos de cobro: venta directa, pre-autorización, captura, propina posterior y anulación.
Catálogo de errores
Consulta los códigos de validación de monto y las acciones correctivas recomendadas.
Modificado en 2026-10-13 20:10:40
Anterior
Realiza cobros con Kushki One
Siguiente
Impresión en terminal SmartPOS
Built with