1. Pagos con tarjeta presente
Kushki Docs
Español
  • Español
  • English
  • Inicio
  • Inicio rápido
    • Preguntas frecuentes
    • Paso a producción
    • Política de cambios importantes del API
    • Códigos de error
    • Datos de prueba
    • Últimas novedades
  • Glosario de pagos
    • Glosario de pagos
  • Pagos únicos con tarjeta (Online)
    • Network Tokens
    • Funcionalidades por modelo de negocio
    • Marcas de tarjeta soportadas
    • Pagos en un paso
      • Cargo directo (sin token)
      • Códigos de error autenticación OTP
      • ¿Cómo funcionan los pagos con tarjeta?
      • Acepta un pago con tarjeta
      • Acepta pagos únicos con OTP
      • Códigos de error pagos únicos con tarjeta
    • Pagos en dos pasos
      • Recibe pagos con autorización y captura
      • ¿Cómo funcionan los pagos únicos con autorización y captura?
    • Pagos con Webpay Plus
      • Reserva fondos con Webpay Plus
    • Pagos con Apple Pay
      • Pruebas en Sandbox Apple Pay
      • Configuración de Apple Pay
    • Devoluciones
      • Devoluciones, anulaciones y reembolsos
    • Autenticación 3DS
      • Introducción a 3DS
      • Integración 3DS API + librería kushki.js
      • Integración 3DS con librería kushki.js
      • Integración 100% API de 3DS
      • Códigos de error autenticación 3DS
  • Pagos recurrentes con tarjeta (Online)
    • Autentica tus suscripciones con 3DS
    • Apple Pay en Suscripciones
    • Suscripciones externas a Kushki
    • Acepta pagos one click con 3DS
    • 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 calendarizados con Webpay OneClick
      • Reserva fondos en recurrencias con Webpay OneClick
      • Recurrencias con Webpay OneClick
    • Pagos OneClick con Webpay OneClick
      • Pagos one click con Webpay OneClick
      • Reserva fondos en pagos one click con Webpay OneClick
    • Pagos OneClick
      • ¿Cómo funcionan los pagos OneClick con autorización y captura?
      • Recibe pagos OneClick con autorización y captura
      • Genera pagos one click
  • Pagos con tarjeta presente
    • Acepta pagos con tarjeta presente
    • Datos de prueba
    • Webhooks para tarjeta presente
    • Raw card-present API
      • Script de ejemplo para cifrar información
      • Acepta pagos
      • Intercambio de claves criptográficas
      • Preguntas frecuentes
      • Códigos de error para transacciones con tarjeta presente
    • Transacciones
      • Anula un pago
      • Transacciones
    • Kushki One
      • Autenticación y Cifrado de Requests
      • Realiza cobros con Kushki One
      • Formato de montos en Kushki ONE
      • Impresión en terminal SmartPOS
      • Catálogo Unificado de Errores — Kushki ONE Connect
      • Servicios asíncronos y webhooks
    • Kushki One App de Pagos
      • Procesa un cobro
      • Devoluciones y PreAuth & Capture
      • Pago Dividido en la terminal
      • Configuración del terminal
      • Consulta tus transacciones
  • Pagos con transferencias
    • Recibe transferencias bancarias
    • Consulta el estado de una transacción
    • Bancos y detalles de operación para pagos con transferencia bancaria
  • Pagos en efectivo
    • Acepta un pago en efectivo
    • Puntos de recaudo
    • Códigos de error para transacciones declinadas en efectivo
  • Dispersión de dinero
    • Transferencia bancaria
      • ¿Cómo funciona la dispersión por transferencia bancaria?
      • Códigos de error para dispersiones por transferencia
      • Dispersa a cuentas bancarias
  • Plugins
    • Shopify
      • Shopify
      • Operación del Plugin
    • Vtex
      • Guía de integración VTEX
  • Links de pago
    • Smartlinks
  • Formularios y botones de pago
    • Introducción
    • Kajita
      • Kajitas de pago
      • ¿Cómo funciona?
    • Botón de pago
      • Genera un botón de pago
      • ¿Cómo funciona el 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
      • Webhook para pagos con Webpay Plus
    • Webhooks para pagos recurrentes
      • Webhook para pagos recurrentes con tarjeta
      • Webhook para pagos recurrentes con Webpay OneClick
    • Webhooks para dispersiones
      • Webhook para dispersión de dinero con transferencia
    • Webhooks para botón de pagos
      • Webhooks con Botón de pago
    • Webhooks para smartlinks
      • Webhooks con Smartlinks
    • 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. Pagos con tarjeta presente

Webhooks para tarjeta presente

Recibe notificaciones de los eventos ocurridos en tu comercio a través de webhooks en tu sistema.
Los webhooks permiten suscribirte a eventos que puedan ocurrir, como por ejemplo, una transacción es aprobada o rechazada. Cuando un evento ocurra, te notificaremos a través de un endpoint que hayas configurado previamente, enviando una solicitud POST con un objeto JSON que contendrá toda la información necesaria sobre el evento. Los eventos disponibles varían por tipo de integración.

Raw Card-Present API#

Política de reintentos de Webhooks#

En Kushki nos aseguramos que recibas correctamente una devolución de llamada de Webhook. Por esta razón, el proceso de la política de reintentos de Webhooks se realiza de la siguiente manera:
1.
Primer intento inmediato: este pasa a través de mensajería instantánea (conocida como Notify Now).
2.
El sistema espera un código de estado o status code de 200/201.
3.
Si recibimos un estado diferente, se realizan 3 reintentos en la siguiente hora y después se hacen 4 reintentos en las siguientes 2 horas.
Lo anterior, teniendo en cuenta que nuestra lógica de reintentos de envío de notificaciones funciona con un máximo de 7 reintentos en un transcurso de 3 horas una vez falla el Notify Now.
4.
Una vez finalizados los 7 reintentos, si no recibes una respuesta exitosa, el Webhook se marca como fallido y dejamos de reintentar.
Si al finalizar este ciclo de envíos no hemos recibido un estado exitoso y deseas recibir el webhook, por favor comunícate con nuestro Equipo de soporte.

¿Cómo funcionan los reintentos a través del tiempo transcurrido?#

Si falla el Notify Now, debes esperar 20 minutos a que se envíe el primer reintento y de la misma manera el mismo periodo de tiempo hasta completar la hora, tal y como se muestra a continuación:
Primer reintento: se envía al minuto 20.
Segundo reintento: se envía al minuto 40.
Tercer reintento: se envía al minuto 60 (1 hora).
Transcurridos los 60 minutos (1 hora) y si el tercer reintento falla, debes esperar 30 minutos a que se envíe el cuarto reintento hasta completar las 2 horas siguientes de la siguiente forma:
Cuarto reintento: se envía al minuto 30.
Quinto reintento: se envía al minuto 60.
Sexto reintento: se envía al minuto 90.
Séptimo reintento: se envía al minuto 120.
Nota
Ten en cuenta que estos tiempos son aproximados y podrían estar sujetos a variaciones.

Los Webhooks enviados por Kushki contendrán los encabezados (headers) aquí listados.
Descubre la lista de los eventos disponibles a través de la integración Raw Card-Present API
Transacciones aprobadas
Transacciones rechazadas
Autorizaciones
Captura de fondos
Anulaciones
Reversos
Consulta de saldo
A continuación, la lista de propiedades disponibles en el webhook. Ten en cuenta que algunas de las propiedades podrían no estar disponibles al momento de la notificación de acuerdo a la configuración de la operación y al método de pago.
PropiedadTipoDescripción
countryStringPaís del comercio.
franchiseStringVISA, MASTERCARD, PROSA (PROSA solo para Mexico).
availableboolean
channelStringCanal por donde se realizó la venta.
public_credential_idStringLlave pública del comercio.
client_transaction_idStringId generado por el comercio.
mccStringCódigo de categoría de comerciante (Merchant category code).
card_countryStringPaís de la tarjeta procesada.
processor_nameStringNombre del procesador.
transaction_referenceStringReferencia única por transacción generada por Kushki.
payment_methodStringMétodo de pago.
card_detailsObjectObjeto con información adicional de la tarjeta procesada.
card_details.prosa_infoString
card_details.reading_typeStringTipo de lectura de la tarjeta procesada.
card_details.card_sequentialString
card_details.tlvString
transaction_idStringId único por transacción generado por Kushki.
createdIntegerFecha de creación de la transacción.
merchant_nameStringNombre del comercio.
transaction_typeStringTipo de operación.
processorObjectObjeto con información adicional del procesador.
processor.codeStringCódigo de respuesta del procesador.
processor.messageStringMensaje de respuesta del procesador.
reference_numberStringNúmero de referencia de la transacción.
tax_idString
sync_modeString
additional_infoObject
additional_info.f7String
additional_info.f63String
additional_info.f11String
additional_info.f37String
additional_info.f32String
additional_info.f62s2String
subtotal_iva0NumberMonto sin impuestos de la transacción.
deferredObject
deferred.monthsStringNúmero de cuotas (si la transacción se difirió).
response_codeStringCódigo de respuesta.
transaction_statusStringEstado de la transacción.
social_reasonStringRazón social del comercio.
payment_brandStringVISA, MASTERCARD
acquirer_bankString
request_amountStringMonto solicitado.
merchant_idStringId del comercio.
merchant_categoryStringCategoría del comercio.
acq_transaction_typeString
securityObject
security.ipString
security.user_agentString
masked_credit_cardStringNúmero de tarjeta enmascarado.
authorization_codeStringCódigo de autorización.
issuing_bankStringBanco emisor de la tarjeta.
processor_idStringId del procesador.
foreign_cardBoolean
pos_detailsObject
pos_details.modelStringModelo del terminal.
pos_details.locationObject
pos_details.location.latitudeNumber
pos_details.location.longitudeNumber
pos_details.versionStringVersión del terminal.
pos_details.brandStringMarca del terminal.
pos_details.terminal_idStringID del terminal.
pos_details.userStringUsuario operador del dispositivo. Solo se devuelve si se envía en el request.
pos_details.friendly_nameStringNombre amigable del terminal. Solo se devuelve si se envía en el request.
pos_details.serialStringNúmero de serie del dispositivo. Solo se devuelve si se envía en el request.
pos_details.typeStringTipo físico del dispositivo. Valores posibles: COUNTERTOP, MPOS, SMARTPOS, SELF_SERVICE, OTHER. Solo se devuelve si se envía en el request.
pos_details.connectivityStringTipo de conectividad de red. Valores posibles: GPRS, WIFI, ETHERNET, DIAL_UP, OTHER. Solo se devuelve si se envía en el request.
last_four_digitsStringÚltimos 4 dígitos de la tarjeta.
approval_codeStringCódigo de aprobación.
amountObject
amount.extra_taxesObject
amount.currencyStringMoneda de la transacción.
amount.subtotal_iva0NumberMonto sin impuestos de la transacción.
rules_responseObject
rules_response.countryString
rules_response.commercial_executiveString
rules_response.business_categoryString
rules_response.addressString
rules_response.cityString
rules_response.authorizerObject
rules_response.authorizer.authorizer_nameString
rules_response.authorizer.soft_descriptorString
rules_response.authorizer.authorizer_bank_idString
rules_response.authorizer.commerce_codeString
rules_response.authorizer.authorizer_typeString
rules_response.authorizer.retailer_idString
rules_response.authorizer.authorizer_acquirer_binString
rules_response.authorizer.category_modelString
rules_response.authorizer.urlString
rules_response.authorizer.authorizer_aliasString
rules_response.authorizer.terminal_idString
rules_response.contact_personString
rules_response.merchant_nameString
rules_response.telephoneString
rules_response.mccString
rules_response.urlString
rules_response.zip_codeString
rules_response.tax_idString
rules_response.provinceString
rules_response.business_registration_idString
rules_response.tccString
rules_response.totalString
rules_response.business_lineString
rules_response.currencyString
rules_response.idString
rules_response.acquirer_typeString
acq_transaction_scopeString
contact_detailsObject
contact_details.document_numberString
contact_details.document_typeString
acq_transaction_modeString
card_typeStringcredit, debit, prepaid
ticket_numberStringNúmero de ticket.
card_country_codeStringCódigo de país de la tarjetas procesada.
credential_aliasString
bin_cardStringBin de la tarjeta procesada.
credential_idString
cvm_typeString
approved_transaction_amountNumberMonto autorizado.
transaction_referenceStringReferencia única por transacción generada por Kushki.
Ejemplos de webhooks para una transacción aprobada.
JSON
JSON
JSON
{
    "country": "Mexico",
    "franchise": "MASTERCARD",
    "available": true,
    "channel": "POS",
    "public_credential_id": "146cbf33c7fd45c4111cbf9d3f04478d",
    "client_transaction_id": "ae6dd41a-9173-4ec7-8734-3178454ef341",
    "mcc": "1234",
    "card_country": "CHL",
    "processor_name": "MASTERCARD",
    "transaction_reference": "718fa526-6f41-405f-a1f5-a71db52dfdd2",
    "payment_method": "card",
    "card_details": {
        "prosa_info": {},
        "reading_type": "MCR"
    },
    "transaction_id": "111663595155516279",
    "created": 1663895155240,
    "merchant_name": "Tu libreria",
    "transaction_type": "SALE",
    "processor": {
        "code": "000",
        "message": "Transacción Aprobada."
    },
    "reference_number": "226520101801",
    "tax_id": "7283839521223",
    "sync_mode": "online",
    "additional_info": {
        "f7": "0922200555",
        "f63": "MDS8TNCN9",
        "f11": "101883",
        "f37": "226520101883"
    },
    "subtotal_iva0": 101.99,
    "deferred": {
        "months": "1"
    },
    "response_code": "00",
    "transaction_status": "APPROVAL",
    "social_reason": "TU LIBRERIA",
    "payment_brand": "MASTERCARD",
    "acquirer_bank": "Kushki",
    "request_amount": 101.99,
    "merchant_id": "20000000305053342000",
    "approved_transaction_amount": 101.99,
    "merchant_category": "Medium",
    "acq_transaction_type": "charge",
    "security": {
        "ip": "187.212.254.148",
        "user_agent": "PostmanRuntime/7.29.2"
    },
    "masked_credit_card": "545195XXXXXX5480",
    "authorization_code": "533804",
    "issuing_bank": "BankACQ",
    "processor_id": "1652365464",
    "foreign_card": true,
    "pos_details": {
        "model": "P2-EU",
        "location": {
            "latitude": -0.1848534,
            "longitude": -78.4769761
        },
        "brand": "SUNMI",
        "version": "Kushki SunmiV1.1.13",
        "terminal_id": "PB04209860004"
    },
    "last_four_digits": "5480",
    "approval_code": "533804",
    "amount": {
        "extra_taxes": {},
        "currency": "MXN",
        "subtotal_iva0": 101.99
    },
    "rules_response": {
        "country": "MEX",
        "address": "Centro 123",
        "business_category": "0",
        "commercial_executive": "user@example.com",
        "authorizer": {
            "authorizer_name": "MASTERCARD",
            "soft_descriptor": "KSK*TEST",
            "authorizer_bank_id": "",
            "authorizer_type": "",
            "commerce_code": "353453",
            "retailer_id": "",
            "authorizer_acquirer_bin": "545195",
            "category_model": "0",
            "terminal_id": "1652365413",
            "authorizer_alias": "MASTERCARD",
            "url": ""
        },
        "city": "Monterrey",
        "contact_person": "John Doe",
        "merchant_name": "Tu libreria",
        "telephone": "8100000001",
        "mcc": "1234",
        "tax_id": "asdf12345678",
        "url": "",
        "zip_code": "64000",
        "province": "NUEVO LEON",
        "tcc": "H",
        "total_amount": "101.990000",
        "business_registration_id": "000000000001",
        "business_line": "37006",
        "currency": "MXN",
        "id": "1652365464",
        "acquirer_type": "kushki"
    },
    "acq_transaction_scope": "international",
    "contact_details": {
        "document_number": "123666",
        "document_type": "0"
    },
    "acq_transaction_mode": "Authorization",
    "card_type": "credit",
    "ticket_number": "111663890155240264",
    "card_country_code": "MEX",
    "credential_alias": "Tu libreria",
    "bin_card": "545195",
    "credential_id": "245c10532cd844e28e4ec9a83159d89b",
    "transactionReference": "718fa526-6f41-405f-a1f5-a71db52dfdd2"
}
Ejemplos de webhooks para un reembolso.
También puedes consultar el estado de las devoluciones desde tu Consola.
JSON
{
    "country": "Mexico",
    "franchise": "VISA",
    "available": true,
    "channel": "POS",
    "public_credential_id": "146cbf33c7fd45c0271cbf9d31d4478d",
    "client_transaction_id": "6681eadc-6d8d-44ba-8ca0-18e061c1172a",
    "mcc": "1234",
    "card_country": "MEX",
    "processor_name": "VISA",
    "transaction_reference": "daa8583d-f18c-419a-840e-be5c95011eb6",
    "payment_method": "card",
    "card_details": {
        "card_sequential": "11",
        "prosa_info": {},
        "reading_type": "ICC",
        "tlv": "9F2701809F1A0206049A032208309F02060000000120005F2A0206044F07A00000000310109F0607A00000000310109F26085DE291D252397F709F100706010A03A020009F37044A05C99750095649534120544553549F6E009F5B009F3602008C9F330360F8C89F03009C010082021C008407A00000000310105F34011195058080048000"
    },
    "transaction_id": "111663896831621702",
    "created": 1663896831738,
    "merchant_name": "Tu libreria",
    "transaction_type": "REFUND",
    "processor": {
        "code": "000",
        "message": "Transacción Aprobada."
    },
    "reference_number": "226520105211",
    "tax_id": "7283839421223",
    "sync_mode": "online",
    "additional_info": {
        "f7": "0922203351",
        "f32": "408210",
        "f11": "100611",
        "f62s2": "40000000000000000302145412649612",
        "f37": "226520100611"
    },
    "subtotal_iva0": 60,
    "deferred": {
        "months": "1"
    },
    "response_code": "00",
    "transaction_status": "APPROVAL",
    "social_reason": "TU LIBRERIA",
    "payment_brand": "VISA",
    "acquirer_bank": "Kushki",
    "request_amount": 60,
    "merchant_id": "20000000105850418000",
    "approved_transaction_amount": 0.6,
    "merchant_category": "Medium",
    "acq_transaction_type": "Refund",
    "security": {},
    "masked_credit_card": "476134XXXXXX0043",
    "authorization_code": "120606",
    "issuing_bank": "VISA",
    "processor_id": "1652365464",
    "cvm_type": "none",
    "foreign_card": true,
    "pos_details": {
        "location": {
            "latitude": -0.22480833333333333,
            "longitude": -78.487955
        },
        "model": "P2-EU",
        "version": "Kushki SunmiV1.1.26",
        "brand": "SUNMI",
        "terminal_id": "PB04216R24337"
    },
    "last_four_digits": "0043",
    "approval_code": "120606",
    "amount": {
        "extra_taxes": {},
        "currency": "MXN",
        "subtotal_iva0": 60
    },
    "rules_response": {
        "country": "MEX",
        "commercial_executive": "user@example.com",
        "business_category": "0",
        "address": "Centro 123",
        "contact_person": "Jhon Doe",
        "authorizer": {
            "authorizer_name": "VISA",
            "soft_descriptor": "KSK*TEST",
            "authorizer_bank_id": "",
            "authorizer_type": "",
            "commerce_code": "353453",
            "authorizer_acquirer_bin": "408210",
            "retailer_id": "",
            "category_model": "0",
            "terminal_id": "1652365464",
            "authorizer_alias": "VISA",
            "url": ""
        },
        "city": "Monterrey",
        "merchant_name": "Tu libreria",
        "telephone": "8100000001",
        "mcc": "1234",
        "url": "",
        "zip_code": "64000",
        "tax_id": "asdf12345678",
        "province": "NUEVO LEON",
        "total_amount": "60.000000",
        "business_registration_id": "000000000001",
        "tcc": "H",
        "business_line": "37006",
        "currency": "MXN",
        "id": "1652365464",
        "acquirer_type": "kushki"
    },
    "acq_transaction_scope": "international",
    "contact_details": {
        "document_type": "-1"
    },
    "acq_transaction_mode": "Authorization",
    "card_type": "credit",
    "ticket_number": "111663896831738702",
    "card_country_code": "MEX",
    "credential_alias": "Tu libreria",
    "bin_card": "476134",
    "credential_id": "245c10502cd844ebae4ec9a70610d89b",
    "transactionReference": "daa8583d-f18c-419a-840e-be5c95011eb6"
}
Modificado en 2026-09-23 15:44:13
Anterior
Datos de prueba
Siguiente
Raw card-present API
Built with