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.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.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
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.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#
| Regla | Detalle |
|---|
| Ventana de validez | 24 horas. Después de ese lapso, la misma llave genera una nueva transacción. |
| Longitud máxima | 56 caracteres |
| Unicidad | Debe ser única por tipo de transacción |
| Formato recomendado | UUIDv4 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.