1. Recurring Payments Webhooks
Kushki Docs
English
  • Español
  • English
  • Home
  • Quick Start
    • Frequently Asked Questions
    • Moving to Production
    • Policy for Important API Changes
    • Test Data
    • Error Codes
    • Latest Features
  • Payment Glossary
    • Payments Glossary
  • One-time card payments (Online)
    • Supported card brands
    • Functionalities by business model
    • Network Tokens
    • One-step Payments
      • How do Card Payments Work?
      • Accept a Card Payment
      • Direct charge (without token)
      • Accept One-Time Payments with OTP
      • OTP Authentication Error Codes
      • Error codes for single card payments
    • Two-steps Payments
      • How do one-time payments with authorization and capture work?
      • Receive payments with authorization and capture
    • Webpay Plus Payments
      • Accept Payments through Webpay Plus
      • Reserve funds with Webpay Plus
    • Refunds
      • Returns, cancellations, and refunds
    • 3DS Authentication
      • Introduction to 3DS
      • 3DS API integration
      • 3DS integration with kushki.js library
      • 3DS API integration plus kushki.js library
      • 3DS Error Codes
    • Apple Pay Payments
      • Apple Pay Configuration
      • Apple Pay Sandbox testing
  • Recurring Card Payments (Online)
    • Functionalities by business model
    • External subscriptions to Kushki
    • Authenticate your subscriptions with 3DS
    • Accept one-click payments with 3DS
    • Error codes in recurring charges
    • Apple Pay for Subscriptions
    • Scheduled payments
      • How do Credit or Debit Card Payment Recurring Charges Work?
      • Create a recurring charge
      • Manage your Scheduled Charges
    • OneClick Webpay Scheduled Payments
      • Recurring Payments through Webpay OneClick
      • Reserve funds in subscriptions with Webpay OneClick
    • One Click Payments with Webpay OneClick
      • Webpay OneClick Payments
      • Reserve funds in one click payments with Webpay OneClick
    • OneClick Payments
      • Accepting One-Click Payments
      • How does authorization and capture work in OneClick payments?
      • Receive OneClick payments with authorization and capture
  • Card-present payments
    • Accept card present payments
    • Test data
    • Webhooks for card present
    • Raw card-present API
      • Raw card-present API overview
      • Cryptographic key exchange
      • Sample script to encrypt information
      • Take Payments
      • Frequently Asked Questions
      • Error codes for card-present transactions
    • Transactions
      • Transactions
      • Cancel payments
    • Kushki One
      • First Steps
      • Autenticación y Cifrado de Requests
      • Accept payments with Kushki One
      • Amount Format
      • Async services and webhooks
      • Printing on SmartPOS terminal
      • Unified Error Catalog — Kushki ONE Connect
    • Kushki One Payment App
      • Overview
      • Process a payment
      • Split payment on the terminal
      • Refunds and PreAuth & Capture
      • Review Your Transactions
      • Terminal Setup
  • Wire Transfers
    • Banks and transaction details for bank transfer payments.
    • Receive Wire Transfers
    • Check the Status of a Transaction
  • Cash Payments
    • How do Cash Payments Work?
    • Accept a Cash Payment
    • Authorized locations
    • Error Codes for declined cash transaction
  • Money Disbursement
    • Wire Transfer
      • How does the dispersion by means of bank transfer work?
      • Payment Distribution to Bank Accounts
      • Error codes for transfer dispersions
  • Plugins
    • Shopify
      • Shopify
      • Plugin Operation
    • VTEX
      • VTEX Integration Guide
  • Payment Links
    • Smartlinks
  • Payment forms and buttons
    • Kajita
      • How Does it Work?
      • Payment Kajitas
    • Payment Button
      • Overview
      • Generate a payment button
  • Branch Offices Management
    • How to Onboard Submerchants via API
  • Notifications
    • Good Practices
    • Check your Webhooks
    • One-time Payments Webhooks
      • Webhook for One-Time Payments made with a card
      • Webhook for One-Time Payments by Wire Transfer
      • Webhook for One-Time Payments in Cash
      • Webhook for Payments Made with Webpay Plus
    • Recurring Payments Webhooks
      • Webhook for Recurring Payments Made with Card
      • Webhook for recurring payments with Webpay OneClick
    • Payment Distribution Webhooks
      • Webhook for payment disbursement through wire transfer
    • Payment button Webhooks
      • Webhooks with Payment Button
    • Smartlinks Webhooks
      • Webhooks with Smartlinks
    • Refunds Webhooks
      • Webhook for Voids and Refunds
      • Chargeback Webhooks
HomeMexico 🇲🇽Ecuador 🇪🇨Chile 🇨🇱
Colombia 🇨🇴Peru 🇵🇪
HomeMexico 🇲🇽Ecuador 🇪🇨Chile 🇨🇱
Colombia 🇨🇴Peru 🇵🇪
Status
Soporte / Support
English
  • Español
  • English
  1. Recurring Payments Webhooks

Webhook for Recurring Payments Made with Card

Kushki can send events via webhook notifying your application at the time when one of the following events occurs:
1.
When a subscription is created (subscriptionApproved). If it is created through Smartlink, the status will be approvedTransaction.
2.
When a charge is successfully made (succesfullCharge)
3.
When a scheduled subscription charge retry failed (failedRetry)
4.
When all the scheduled subscription charge retries have failed (lastRetry)
5.
When a charge of a on-demand subscription is declined (declinedCharge)
6.
When a subscription is removed (subscriptionDelete)

Structure#

The webhooks sent by Kushki will contain the headers listed here.

These are the possible variables that are submitted in the webhook body:
Method: POST
Body: Object
VariableType
eventObject
event.metadataObject
event.metadata.key0string
event.metadata.key1string
event.metadata.key2string
event.endDatenumber (Unix Timestamp Format)
event.maxCountnumber
event.contactDetailsObject
event.contactDetails.firstNamestring
event.contactDetails.lastNamestring
event.contactDetails.emailstring
event.contactDetails.phoneNumberstring
event.contactDetails.documentTypestring
event.contactDetails.documentNumberstring
event.lastFourDigitsstring
event.subscriptionStatusstring
event.activeboolean
event.dayOfMonthnumber
event.tokenstring
event.binInfoObject
event.binInfo.bankstring
event.binInfo.typestring
event.binInfo.processorstring
event.binInfo.brandstring
event.binInfo.binstring
event.startDatenumber (Unix Timestamp Format)
event.providerstring
event.idstring
event.credentialAliasstring
event.subscriptionIdstring
event.creatednumber (Unix Timestamp Format)
event.credentialMetadatastring
event.ipstring
event.lastChargeDatenumber
event.paymentBrandstring
event.callbackUrlstring
event.cardTypestring
event.periodicitystring
event.countnumber
event.retryConfigurationobject
event.retryConfiguration.retryTypestring
event.retryConfiguration.valuearray
event.retryConfiguration.value.itemsinteger
event.monthstring
event.planNamestring
event.dayOfWeekstring
event.amountObject
event.amount.subtotalIvanumber
event.amount.subtotalIva0number
event.amount.ivanumber
event.amount.icenumber
event.amount.currencystring
event.amount.extraTaxesObject
event.tbkUserstring
event.credentialIdstring
event.publicCredentialIdstring
event.merchantIdstring
event.transactionMetadataObject
event.transactionReferencestring
event.convertedAmountObject
event.convertedAmount.totalAmountnumber
event.convertedAmount.amountObject
event.convertedAmount.amount.subtotalIvanumber
event.convertedAmount.amount.subtotalIva0number
event.convertedAmount.amount.ivanumber
event.convertedAmount.amount.icenumber
event.convertedAmount.amount.currencystring
event.convertedAmount.amount.extraTaxesObject
event.approvalCodestring
event.binCardstring
event.issuingBankstring
event.recapstring
event.ticketNumberstring
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.cardHolderNamestring
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.nextAttemptDaynumber
event.lastRetryDatenumber
event.urlstring
name"succesfullCharge" "failedRetry" "lastRetry" "declinedCharge" "subscriptionDelete" "subscriptionApproved"

Examples#

JSON
JSON
Codigo
Codigo
// Approved Transaction
{
    "event": {
        "metadata": {
            "plan_url": "https://kushki.com/plans",
            "plan_id": 231
        },
        "endDate": 1661985469,
        "maxCount": 9,
        "contactDetails": {
            "firstName": "John",
            "lastName": “Doe”,
            "phoneNumber": "+5673839304",
            "documentType": "RUT",
            "email": "johndoe@test.com",
            "documentNumber": "873939409-0"
        },
        "lastFourDigits": "7323",
        "subscriptionStatus": "CONFIRMED",
        "active": true,
        "dayOfMonth": 27,
        "token": "9827224051ac9a7c486b1f76a4f98dfa4b0e0c59a89e335b7ff16eb6c29ae6c3",
        "binInfo": {
            "bank": null,
            "processor": null,
            "brand": null,
            "bin": null
        },
        "startDate": 1648766269,
        "provider": “transbankwebpay”,
        "id": "1921607340879500020003638739107324744000",
        "credentialAlias": "TEST",
        "subscriptionId": "20678807210795000",
        "created": 1648766269,
        "credentialMetadata": null,
        "ip": "23.345.222.297",
        "lastChargeDate": 1653650144,
        "paymentBrand": "RedCompra",
        "callbackUrl": "https://kushki.com",
        "cardType": "debit",
        "periodicity": "weekly",
        "count": 1,
        "retryConfiguration": {
            "value": [
                2
            ],
            "retryType": "scheduled"
        },
        "month": "*",
        "planName": "Plan hogar",
        "dayOfWeek": "?",
        "amount": {
            "subtotalIva0": 0,
            "iva": 0.19,
            "subtotalIva": 1,
            "ice": 0,
            "currency": "UF"
        },
        "tbkUser": "838d76cb-809b-45b8-88c7-67ff1e6e381d",
        "credentialId": "879f2002a31b445f883c3c389bbe6ce3",
        "publicCredentialId": "01f4cm986b1149dba3dd3544f20798ac",
        "merchantId": "9000107313762000",
        "transactionMetadata": {},
        "transactionReference": "e3338f6d-23d0-6383-21bf-9395ccd9ba23",
        "convertedAmount": {
            "totalAmount": 48819,
            "amount": {
                "subtotalIva0": 0,
                "iva": 6198,
                "subtotalIva": 42621,
                "currency": "CLP"
            },
            "currency": "CLP"
        },
        "approvalCode": "002021",
        "binCard": null,
        "issuingBank": null,
        "recap": null,
        "retryCount": 1,
        "ticketNumber": "383838350144339370"
    },
    "name": "succesfullCharge"
}
Modificado en 2026-10-14 19:52:56
Anterior
Recurring Payments Webhooks
Siguiente
Webhook for recurring payments with Webpay OneClick
Built with