1. Payment button 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
    • How do third party commissions work?
    • Integration guide Third Party Commissions
    • 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 single payments with authorization and capture work?
      • Receive payments with authorization and capture
    • 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 Payments
      • Accepting One-Click Payments
      • How do OneClick payments with authorization and capture work?
      • Receive one-click payments with authorization and capture
  • Card-present payments
    • Card present payments
    • Accept card present payments
    • Test data
    • Webhooks for card present
    • Cloud Terminal API
      • Cloud terminal API overview
      • Take payments
      • Cancel a payment request
      • Check the status of a payment request
      • How to print a customized ticket?
    • App-to-app
      • App-to-app overview
      • Take payments
    • Terminal SDK
      • Terminal SDK Introduction
      • Take payments
    • 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
    • How do Payments by Wire Transfers Work?
    • Banks and transaction details for bank transfer payments
    • Receive Wire Transfers
    • Check the Status of a Transaction
  • Money Disbursement
    • Wire Transfer
      • How Does a Payment Distribution by Wire Transfer Work?
      • Payment Distribution to Bank Accounts
      • Error codes for transfer dispersions
  • Payment Links
    • Smartlinks
  • Plugins
    • Shopify
      • Shopify
      • Plugin Operation
    • VTEX
      • VTEX Integration Guide
  • 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
    • Webhooks
    • 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
    • Recurring Payments Webhooks
      • Webhook for Recurring Payments Made with Card
    • 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. Payment button Webhooks

Webhooks with Payment Button

When making payments through a Payment Button you will be notified of the following events for card, cash or wire payments:
1.
Approved transaction
2.
Declined transaction

Card Payments#

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

The following is a description of the possible variables delivered in the body of the webhook for credit card payments:
Method: POST
Body: Object
VariableTipo
ticketNumberstring
approvalCodestring
metadataobject
metadata.key0string
metadata.key1string
responseTextstring
binCardstring
smartLinkstring
requestAmountnumber
typestring
responseCodestring
bankstring
merchantIdstring
syncMetadataboolean
idstring
processorBankNamestring
amountobject
amount.subtotalIva0number
amount.ivanumber
amount.subtotalIvanumber
amount.currencystring
productobject
product.unitPricenumber
product.quantityinteger
product.namestring
product.descriptionstring
cardCountrystring
cardHolderNamestring
transactionReferencestring
creatednumber (Unix Timestamp Format)
paymentBrandstring
contactDetailsobject
contactDetails.emailstring
tokenstring
publicMerchantIdstring
transactionType"SALE"
transactionChannel"WEBCHECKOUTPLUS"
lastFourDigitsstring
paymentMethodstring
binCardstring
approvedTransactionAmountnumber
status"approvedTransaction" "declinedTransaction"

Examples#

JSON
JSON
// Approved Transaction
{
   "ticketNumber":"916519657017985234",
   "approvalCode":"000000",
   "metadata":{
      "orderID":"6827",
      "contrato":"claro 123"
   },
   "responseText":"Transacción aprobada",
   "binCard":"545195",
   "smartLink":"3W95hy7fX",
   "requestAmount":257000,
   "type":"credit",
   "responseCode":"000",
   "bank":"Banco de la Produccion S.A. (PRODUBANCO)",
   "merchantId":"20000000106554380000",
   "syncMetadata":"false",
   "id":"24cf9b50-8b04-49fb-9d57-4be3bb7a1a5a",
   "processorBankName":"0032~BANCO INTERNACIONAL",
   "amount":{
      "subtotalIva0":0,
      "iva":19000,
      "subtotalIva":238000,
      "currency":"MXN"
   },
   "product":[
      {
         "unitPrice":100000,
         "quantity":2,
         "name":"runners",
         "description":"Tenis"
      }
   ],
   "cardCountry":"Ecuador",
   "cardHolderName":"deisy Leal",
   "transactionReference":"a6704c0b-4be5-468f-96a1-3e454cb574ca",
   "created":1722982829858,
   "paymentBrand":"Mastercard",
   "contactDetails":{
      "email":"user@example.com"
   },
   "token":"db3d08cd80454324a960a69cc1480d9c",
   "publicMerchantId":"017dc7108f0141e78ef4ca4694a2520f",
   "transactionType":"SALE",
   "transactionChannel":"WEBCHECKOUTPLUS",
   "lastFourDigits":"5480",
   "paymentMethod":"creditCard",
   "approvedTransactionAmount":257000,
   "status":"approvedTransaction"
}

Wire Transfer Payments#

These are the possible variables provided in the body of the webhook for wire transfer payments:
Method: POST
Body: Object
VariableType
ticketNumberstring
amountobject
amount.subtotalIva0number
amount.ivanumber
amount.subtotalIvanumber
amount.currencystring
metadataobject
productobject
product.unitPricenumber
product.quantityinteger
product.namestring
product.descriptionstring
redirectUrlstring
transactionReferencestring
creatednumber (Unix Timestamp Format)
smartLinkstring
contactDetailsobject
contactDetails.firstNamestring
contactDetails.lastNamestring
contactDetails.documentTypestring
contactDetails.documentNumberstring
contactDetails.emailstring
tokenstring
publicMerchantIdstring
merchantIdstring
paymentMethodstring
syncMetadataboolean
idstring
trazabilityCodestring
status"approvedTransaction" "declinedTransaction"

Examples#

JSON
JSON
// Approved Transaction
{
  "ticketNumber": "8903880459904381",
  "amount": {
    "subtotalIva0": 0,
    "iva": 500,
    "subtotalIva": 500,
    "currency": "MXN"
  },
  "metadata": {},
  "product": [
    {
      "unitPrice": 1000,
      "quantity": 2,
      "name": "runners",
      "description": "Tenis"
    }
  ],
  "redirectUrl": "https://api-uat.kushkipagos.com/transfer/v1/agent?token=4e14347df70d4744b09ff9a6483e80a6&mid=20000000104096460000",
  "transactionReference": "6659910b-936e-4842-826f-82b0433af540",
  "created": 1678903884347,
  "smartLink": "cvIrvtx2j",
  "contactDetails": {
    "firstName": "John",
    "lastName": "Doe",
    "email": "john.doe@kushkipagos.com"
  },
  "token": "4e14347df70d4744b09ff9a6483e80a6",
  "publicMerchantId": "ef31f04f2c364080bd33162bfb360c81",
  "merchantId": "20000000104096460000",
  "paymentMethod": "transfer",
  "syncMetadata": "false",
  "id": "a277e170-3241-4e27-8d22-e21f66b879d4",
  "trazabilityCode": "564988596",
  "status": "approvedTransaction"
}

Cash Payments#

These are the possible variables that are delivered in the body of the webhook for cash payments:
Method: POST
Body: Object
VariableType
ticketNumberstring
amountobject
amount.subtotalIva0number
amount.ivanumber
amount.subtotalIvanumber
amount.currencystring
metadataobject
metadata.firstTimestring
productobject
product.unitPricenumber
product.quantityinteger
product.namestring
product.descriptionstring
transactionReferencestring
creatednumber (Unix Timestamp Format)
smartLinkstring
contactDetailsobject
contactDetails.firstNamestring
contactDetails.lastNamestring
contactDetails.documentTypestring
contactDetails.documentNumberstring
contactDetails.emailstring
tokenstring
publicMerchantIdstring
pdfUrlstring
pinstring
merchantIdstring
paymentMethodstring
syncMetadataboolean
idstring
status"approvedTransaction" "expiredTransaction"

Examples#

JSON
JSON
// Approved Transaction
{
  "ticketNumber": "2378903288609109",
  "amount": {
    "subtotalIva0": 0,
    "iva": 50,
    "subtotalIva": 50,
    "currency": "USD"
  },
  "metadata": {
    "firstTime": "0"
  },
  "product": [
    {
      "unitPrice": 100,
      "quantity": 2,
      "name": "runners",
      "description": "Tenis"
    }
  ],
  "transactionReference": "225405a4-c300-4ea6-9952-406e0efcc5ee",
  "created": 1678903302137,
  "smartLink": "2aLhypwTL",
  "contactDetails": {
    "firstName": "John",
    "lastName": "Doe",
    "documentType": "CC",
    "documentNumber": "123456789",
    "email": "john.doe@kushkipagos.com"
  },
  "token": "2bb63390d18e4475adc4f8f0730f84f2",
  "publicMerchantId": "883ae5c3d47446d898dddc94dd76076f",
  "pdfUrl": "https://api-uat.kushkipagos.com/cash/v1/charges/2378903288609109/receipt",
  "pin": "8903296880",
  "merchantId": "20000000108692034000",
  "paymentMethod": "cash",
  "syncMetadata": "false",
  "id": "69bbf42d-7a17-4ff5-ad61-8b4bd156659c",
  "status": "approvedTransaction"
}
Modificado en 2026-10-21 22:32:24
Anterior
Payment button Webhooks
Siguiente
Smartlinks Webhooks
Built with