1. Webhooks para pagos recurrentes
Kushki Docs
Español
  • Español
  • English
  • Inicio
  • Inicio rápido
    • Últimas novedades
    • Preguntas frecuentes
    • Paso a producción
    • Política de cambios importantes del API
    • Datos de prueba
    • Códigos de error
  • Glosario de pagos
    • Glosario de pagos
  • Pagos únicos con tarjeta (Online)
    • Marcas de tarjeta soportadas
    • Funcionalidades por modelo de negocio
    • ¿Cómo funcionan las Comisiones a terceros?
    • Guía de integración Comisiones a terceros
    • Pagos en un paso
      • ¿Cómo funcionan los pagos con tarjeta?
      • Acepta un pago con tarjeta
      • Acepta pagos únicos con OTP
      • Códigos de error autenticación OTP
      • Códigos de error pagos únicos con tarjeta
    • Devoluciones
      • Devoluciones, anulaciones y reembolsos
    • Autenticación 3DS
      • Introducción a 3DS
      • Integración 100% API de 3DS
      • Integración 3DS con librería kushki.js
      • Integración 3DS API + librería kushki.js
      • Códigos de error autenticación 3DS
  • Pagos recurrentes con tarjeta (Online)
    • Autentica tus suscripciones con 3DS
    • Suscripciones externas a Kushki
    • Funcionalidades por modelo de negocio
    • Códigos de error en cargos recurrentes
    • Pagos calendarizados
      • Maneja tus cargos calendarizados
      • Crea un cargo recurrente
      • ¿Cómo funcionan los cargos recurrentes con tarjeta?
    • Pagos OneClick
      • Genera pagos one click
  • Pagos con transferencias
    • Bancos y detalles de operación para pagos con transferencia bancaria
    • Recibe transferencias bancarias
    • Consulta el estado de una transacción
  • Pagos en efectivo
    • Acepta un pago en efectivo
    • Puntos de recaudo
    • Códigos de error para transacciones declinadas en efectivo
  • Plugins
    • Shopify
      • Shopify
      • Operación del Plugin
    • Vtex
      • Guía de integración VTEX
  • Links de pago
    • Smartlinks
  • Formularios y botones de pago
    • Kajita
      • Kajitas de pago
      • ¿Cómo funciona?
    • Botón de pago
      • ¿Cómo funciona el botón de pago?
      • Genera un 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 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. Webhooks para pagos recurrentes

Webhook para pagos recurrentes con tarjeta

Kushki puede enviar eventos vía webhook que notifican a tu aplicación en el momento en que uno de los siguientes eventos ocurra:
1.
Cuando se crea una suscripción (subscriptionApproved). Si se crea mediante smartlink el status será approvedTransaction.
2.
Cuando un cobro de una suscripción es exitoso (succesfullCharge)
3.
Cuando un cobro de una suscripción bajo demanda es declinado (declinedCharge)
4.
Cuando un intento de cobro de la suscripción calendarizada falló (failedRetry)
5.
Cuando todos los intentos de cobro de la suscripción calendarizada fallan (lastRetry)
6.
Cuando se elimina una suscripción (subscriptionDelete)

Estructura#

Los webhooks enviados por Kushki contendrán los encabezados (headers) aquí listados.

Estas son las posibles variables que se entregan en el webhook:
Método: POST
Body: Object
VariableTipoDescripción
name"succesfullCharge" "failedRetry" "lastRetry" "declinedCharge" "subscriptionDelete" "subscriptionApproved"
eventObject
event.idstring
event.metadataObject
event.metadata.key0string
event.metadata.key1string
event.metadata.key2string
event.subscriptionIdnumber
event.cardHolderNamestring
event.amountObject
event.amount.subtotalIvanumber
event.amount.subtotalIva0number
event.amount.ivanumber
event.amount.icenumber
event.amount.currencystring
event.amount.extraTaxesObject
event.amount.extraTaxes.agenciaDeViajenumber
event.amount.extraTaxes.iacnumber
event.amount.extraTaxes.propinanumber
event.amount.extraTaxes.tasaAeroportuarianumber
event.periodicitystring
event.subscriptionStatusstring DECLINED, CONFIRMED
event.contactDetailsObject
event.contactDetails.firstNamestring
event.contactDetails.lastNamestring
event.contactDetails.emailstring
event.tokenstring
event.merchantIdstring
event.startDatenumber (Unix Timestamp Format)
event.endDatenumber (Unix Timestamp Format)
event.creatednumber (Unix Timestamp Format)
event.planNamestring
event.binInfoObject
event.binInfo.bankstring
event.binInfo.typestring
event.binInfo.processorstring
event.binInfo.brandstring
event.dayOfMonthnumber
event.monthstring
event.dayOfWeekstring
event.retry.typeObject
event.retry.attemptsnumber
event.retry.maxnumber
event.retry.firstAttemptDatenumber
event.retry.periodicitynumber
event.retry.daysLeftarray
event.retry.daysLeft.itemsinteger
event.retryCountnumber
event.expirationTimenumber
event.activeboolean
event.lastFourDigitsstring
event.adjustmentobject
event.adjustment.amountobject
event.adjustment.amount.subtotalIvanumber
event.adjustment.amount.subtotalIva0number
event.adjustment.amount.ivanumber
event.adjustment.amount.icenumber
event.adjustment.amount.currencystring
event.adjustment.amount.extraTaxesobject
event.adjustment.amount.extraTaxes.agenciaDeViajenumber
event.adjustment.amount.extraTaxes.iacnumber
event.adjustment.amount.extraTaxes.propinanumber
event.adjustment.amount.extraTaxes.tasaAeroportuarianumber
event.adjustment.periodsnumber
event.retryConfigurationobject
event.retryConfiguration.retryTypestring
event.retryConfiguration.valuearray
event.retryConfiguration.value.itemsinteger
event.nextAttemptDaynumber
event.lastRetryDatenumber
event.urlstring
event.approvalCodestring
event.ticketNumberstring
event.lastChargeDatenumber
responseCodestringCódigo de respuesta. Solo para declinaciones.
responseTextstringTexto de la respuesta. Solo para declinaciones.
processor.codestringCódigo del procesador. Solo para declinaciones.
processor.messagestringMensaje del procesador. Solo para declinaciones.
messageFields.f38stringCampo específico de declinaciones por emisor o marca.
messageFields.f48objectCódigos de respuesta. Solo para Mastercard.
messageFields.f48.s22stringCorresponde al código citMit enviado en la solicitud. Solo para Mastercard.
messageFields.f48.s84stringCódigo MAC (Merchant Advice Code) de Mastercard para transacciones declinadas.
messageFields.f39stringCampo específico de declinaciones por emisor o marca.

Ejemplos#

Succesfullcharge
Declinedcharge
Failedretry
Subscriptiondelete
Subscriptionapproved
// Transacción aprobada
{
  "name": "succesfullCharge",
  "event": {
    "userAgent": "Go-http-client/1.1",
    "metadata": {
      "plan": {
        "fitness": {
          "pool": "include",
          "rumba": "include",
          "cardio": "include"
        }
      }
    },
    "subscriptionId": "1602024113521000",
    "created": 1602024113,
    "ip": "35.193.164.95",
    "lastChargeDate": 1602024176,
    "contactDetails": {
      "firstName": "Diego",
      "lastName": "Cadena",
      "phoneNumber": "+593988734644",
      "documentType": "CC",
      "documentNumber": "1009283738",
      "email": "test@test.com"
    },
    "periodicity": "monthly",
    "lastFourDigits": "4242",
    "active": true,
    "dayOfMonth": 6,
    "token": "da44953475f74c02abca31c5371e1792",
    "binInfo": {
      "bank": null,
      "brand": "VISA",
      "processor": "NA",
      "bin": "424242",
      "info": {
        "country": {
          "emoji": "🇺🇸",
          "latitude": 38,
          "alpha2": "US",
          "name": "United States of America",
          "numeric": "840",
          "currency": "USD",
          "longitude": -97
        },
        "number": {},
        "bank": {},
        "scheme": "visa",
        "type": "credit"
      }
    },
    "cardHolderName": "Pruebas",
    "maskedCardNumber": "424242XXXXXX4242",
    "month": "*",
    "planName": "Premium",
    "dayOfWeek": "?",
    "startDate": 1601942400,
    "amount": {
      "currency": "USD",
      "ice": 0,
      "subtotalIva0": 0,
      "iva": 0.14,
      "subtotalIva": 1
    },
    "id": "160202411352100020000000XXXXXXXX2000",
    "plccMetadataId": "187169a42eed456a9964dab5e7ec9468",
    "merchantId": "20000000XXXXXXXX2000",
    "transactionReference": "9eb4ec3d-5e83-4450-8d90-5047121bddbf",
    "approvalCode": "000000",
    "binCard": "424242",
    "issuingBank": null,
    "ticketNumber": "646245907500066871"
  }
}
Modificado en 2026-09-21 20:05:51
Anterior
Webhooks para pagos recurrentes
Siguiente
Webhooks para smartlinks
Built with