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.
En México operas en pesos mexicanos (MXN), que usan dos decimales.
La moneda no viaja en el request
El objeto amountno 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.
El monto cobrado es la suma de todos los campos del objeto amount.
Campo
Qué representa
subtotal_iva
Porción de la venta afecta a impuesto
iva
Monto del impuesto sobre esa porción
subtotal_iva0
Porción exenta. Usa solo este campo cuando la venta no tiene desglose
extra_taxes
Impuestos de giros específicos: airport_tax, iac, ice, travel_agency. Envía 0 cuando no aplican
tip
Propina. 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
En la mayoría de los lenguajes, 12.44 * 100 da 1243.9999999999998, que al truncar queda en 1243. Subcobras un centavo y tu conciliación se rompe de forma intermitente. Usa enteros o un tipo decimal.
Pasa el valor como cadena de texto, no como número decimal: Decimal(12.44) hereda el mismo error binario que intentas evitar.
El cobro sale con el monto equivocado o el request se rechaza
Convierte a unidad mínima antes de enviar
Rellenar con 00 una moneda sin decimales
Cobras 100 veces más de lo debido
En COP y CLP el monto se envía tal cual
Reutilizar un helper de conversión de otro mercado
Cobras 100 veces más o de menos
Deriva los decimales por terminal, no por código
Enviar el monto como texto con separadores
Error de validación
Elimina todos los separadores y envía un entero
Convertir con punto flotante
Diferencia de un centavo en algunos montos
Usa enteros o un tipo decimal
Reutilizar un monto devuelto por un webhook
Magnitud incorrecta
El 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.
Esta sección aplica solo si tu sistema de caja atiende comercios en más de un país.
Moneda
País
Decimales
CLP
Chile
0
COP
Colombia
0
MXN
México
2
PEN
Perú
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.