1. Online Payments
Español
  • English
  • Español
  • Docs para desarrolladores 🇪🇨
  • Online Payments
    • Notas de versión
    • Errores del API de Kushki
    • Card Payments
      • Solicitar un token de tarjeta
      • Hacer un cargo o cargo diferido
      • Reembolsar una transacción
      • Anular una transacción
      • Solicitar opciones de diferido
      • Validar OTP
      • Información de BIN V2
      • Información de BIN
    • One Click and Scheduled Payments
      • Solicitar un token de cargo recurrente
      • Crear un cargo recurrente
      • Actualizar los datos de la tarjeta del cargo recurrente
      • Hacer un pago One-click
      • Cancelar un cargo recurrente
      • Actualizar un cargo recurrente
      • Agregar un cargo o descuento temporal
      • Consultar información del cargo recurrente
    • Chargebacks
      • Consultar chargebacks
      • Solicitar exportación de chargebacks
    • Subscription Transactions
      • Consultar transacciones de suscripción
    • Cash in
      • Solicitar un token de Cash In
      • Iniciar transacción
      • Actualizar una transacción de Cash In
      • Estado de la transacción
      • Eliminar una transacción de Cash In
    • Transfer in
      • Solicitar un token de Transfer In
      • Iniciar transacción
      • Consultar estado
    • Analytics
      • Consultar listado de transacciones v2
    • Smartlinks
      • Crear un Smartlink
      • Actualizar un Smartlink
      • Consultar un Smartlink
      • Eliminar un Smartlink
    • Status
      • Consultar estado del gateway
      • Consultar estado de la plataforma
    • Commissions
      • Consultar configuración de comisiones
    • Payment Credentials
      • Crear una credencial
      • Buscar credenciales
      • Activar o desactivar
      • Eliminar credencial
      • Actualizar credencial
      • Regenerar una credencial
      • Búsqueda avanzada
    • Payment Button
      • Crear un Payment Button
    • Settlement
      • Consultar liquidación
  • Appian - Submerchant Register
    • Release Notes
    • Submerchant Validation in Batch
    • Query submerchant status by requestId/submerchantId
    • Get submerchantIds
    • Get credentials for submerchants
  • Schemas
    • threeDomainSecure
    • Card-old
    • Channel
    • SubscriptionTransactionsResponse
    • Card Present (CP)
    • Amount-cash-in
    • webhooks
    • ChargebackListResponse
    • StatusComponent
    • SettlementDateRangeRequest
    • Card
    • networkToken
    • ChargebackItem
    • SettlementRecord
    • Card Not Present (CNP)
    • currency
    • ErrorResponse
    • SubscriptionTransaction
    • Subscription
    • Amount
    • ErrorResponse400
    • SettlementResponse
    • Country
    • Deferred
    • extraTaxes
    • ErrorResponse401
    • Language
    • ErrorResponse403
    • Metadata
    • payment_method
    • ErrorResponse500
    • ContactDetails
    • orderDetails
    • Shipping Address
    • Billing-Address
    • payment_submethod
    • SubscriptionUpdate
    • documentType
    • SubscriptionAdjustmentRequest
    • threeDomainSecure
    • webhooks
    • headers
    • webhooksChargeback
    • citMit
    • network
    • binInfo
    • messageFields
    • UnexpectedErrorResponse
    • ExternalReferenceId
    • product
    • transactionType
    • SettlementTicketRequest
HomePerú 🇵🇪México 🇲🇽Ecuador 🇪🇨
Colombia 🇨🇴Chile 🇨🇱
HomePerú 🇵🇪México 🇲🇽Ecuador 🇪🇨
Colombia 🇨🇴Chile 🇨🇱
  1. Online Payments

One Click y Pagos Programados

Descubre un poco más sobre el proceso de pago recurrente.
Las tarjetas de crédito tienen cobertura global y son una de las formas más populares de pagar en línea. Existen distintos tipos de tarjeta y varios pasos en el proceso. Conoce cómo funciona, quiénes participan y cuáles son las etapas de un pago por suscripción.
¡Ten en cuenta!
Debido a nuestras políticas de riesgo, los medios de pago disponibles y el tipo de integración pueden variar una vez que completes la afiliación. Te indicaremos cómo proceder si este proceso aplica a tu comercio.
Este servicio también se conoce como tokenización y ejecución de cargo recurrente.

Proceso de pago#

Un pago con tarjeta de crédito para una suscripción se realiza en 2 etapas principales: el registro de la tarjeta y la ejecución del cargo recurrente.
La liquidación a los comercios se realizará de acuerdo con el acuerdo comercial.

Etapa 1 — Registro de tarjeta de crédito o débito#

Selecciona un medio de pago
En tu sitio web o app, el usuario selecciona el medio de pago. Asegúrate de que quede claro para el pagador que su tarjeta de crédito o débito quedará registrada para cargos recurrentes.
Ingresa los datos de la tarjeta
El usuario ingresa los datos de su tarjeta. Tu sitio web o app debe verificar que la información de la tarjeta sea correcta: por ejemplo, que la fecha de expiración no esté vencida o que el número de tarjeta pase el algoritmo de Luhn.
Nota: En esta etapa aún no se puede confirmar que la tarjeta sea válida.
Envía los datos a Kushki
Kushki recibe los datos y verifica si hay fondos suficientes ejecutando un cargo de validación de la suscripción. Este cargo pequeño lo realiza Kushki y se reversa automáticamente si resulta exitoso. Sirve para asegurar que la tarjeta del cliente pueda cobrarse después del registro.
Notificación de la suscripción
Kushki te informa el resultado del registro de la tarjeta para que puedas mostrarlo al usuario en pantalla.

Etapa 2 — Pago recurrente#

Ejecución del pago
Kushki procesa automáticamente los cargos recurrentes a la tarjeta registrada. Los pagos se ejecutan y se repiten según el monto y el periodo definidos en la suscripción.
La lógica de facturación corre todos los días a partir de las 6 AM GMT-5. Asegúrate de crear la suscripción antes de esa hora si quieres que el primer pago ocurra el mismo día del registro. Al crear una suscripción, debes definir el campo startDate.
Lógica de reintentos
Si un pago es rechazado, Kushki reintenta el cargo automáticamente. Por defecto, hay 3 reintentos durante 3 días consecutivos a partir del startDate original. Por ejemplo, para una suscripción mensual con startDate: 10-01-2021 y un rechazo el 10-02-2021, el pago se reintentará hasta el 13-02-2021: 3 veces al día, para un total de 9 intentos.
Puedes personalizar la lógica de reintentos con el objeto retryConfiguration:
scheduled — Por intervalos
fixed — Días específicos
Reintenta cada N días. El siguiente ejemplo reintenta 3 veces al día, cada 2 días, durante todo el mes.
{
  "retryConfiguration": {
    "retryType": "scheduled",
    "value": [2]
  }
}
Si el último intento de cobro es rechazado, Kushki puede notificarte vía Webhook. En ese caso, te recomendamos contactar al tarjetahabiente y ofrecerle alternativas: por ejemplo, actualizar la tarjeta registrada o solicitar un One-click payment por única vez. Kushki seguirá ejecutando los cobros automáticos en los periodos siguientes.
Notificación del estado de la transacción
Se te notificará el estado de cada cargo automático mediante las Webhooks Notifications que expongas en tu sistema. También puedes revisar las transacciones, sus detalles y su estado directamente en la Kushki Console.

Uso de la API#

Para usar la API, debes solicitar tus credenciales de Kushki Sandbox, compuestas por un Public-Merchant-Id y un Private-Merchant-Id.
🟢 Producción
🧪 Sandbox (UAT)
https://api.kushkipagos.com/

Endpoints disponibles#

Solicitar un token de cargo recurrente
Tokeniza los datos de la tarjeta para registrarla para cargos recurrentes.
Crear un cargo recurrente
Crea una nueva suscripción con el token de la tarjeta registrada.
Hacer un pago One-Click
Ejecuta un cargo único bajo demanda sobre una tarjeta registrada.
Consultar un cargo recurrente
Obtén los detalles y el estado actual de una suscripción.
Actualizar los datos de la tarjeta
Reemplaza la tarjeta asociada a una suscripción activa.
Actualizar un cargo recurrente
Modifica el monto, la frecuencia o las fechas de una suscripción existente.
Agregar un cargo o descuento temporal
Aplica un cargo adicional o un descuento por única vez al siguiente ciclo de facturación.
Cancelar un cargo recurrente
Cancela y desactiva una suscripción activa.

Idempotencia#

🔁
La API de Kushki soporta solicitudes idempotentes para reintentar operaciones de forma segura, sin riesgo de ejecutar la misma transacción dos veces. Esto es especialmente útil cuando problemas de red, timeouts o reintentos del cliente podrían generar registros duplicados.

Cómo funciona#

Para realizar una solicitud idempotente, incluye la cabecera Idempotency-Key con un valor único al llamar a un endpoint soportado.
Kushki almacena la respuesta solo si la solicitud original resulta exitosa.
Si se envía la misma llave nuevamente dentro de la ventana de validez, se devuelve la misma respuesta exitosa.
Si la solicitud original falló (4XX / 5XX), no se almacena ningún registro y el cliente puede reintentar con la misma llave.

Cabecera#

Reglas#

ReglaDetalle
Ventana de validez24 horas. Después de ese lapso, la misma llave genera una nueva transacción.
Longitud máxima56 caracteres
UnicidadDebe ser única por tipo de transacción
Formato recomendadoUUIDv4 o una cadena aleatoria equivalente de alta entropía

Endpoints soportados#

Actualmente, la cabecera Idempotency-Key es soportada en:
Void a transaction — cargos únicos, preautorizaciones y cargos de suscripción.
Refund a transaction — cargos únicos, preautorizaciones y cargos de suscripción.
Subscription preauthorizations.

Escenarios de error#

5XX — Errores del servidor
4XX — Errores del cliente
No se almacena ningún registro de idempotencia. El cliente puede reintentar con la misma Idempotency-Key. El reintento queda a criterio del integrador.

Buenas prácticas#

Genera siempre una Idempotency-Key nueva para cada intento de transacción único.
Usa UUIDv4 u otro generador de cadenas aleatorias robusto para garantizar la unicidad.

¿Tienes alguna sugerencia sobre esta documentación? Contáctanos.
Modified at 2026-09-11 14:47:13
Previous
Información de BIN
Next
Solicitar un token de cargo recurrente
Built with