1. Online Payments
Español
  • English
  • Español
  • Docs de API 🇲🇽
  • Online Payments
    • Errores ISO
    • Errores del API de Kushki
    • Notas de versión
    • Card Payments
      • Solicitar un token de tarjeta
      • Hacer un cargo o cargo diferido
      • Crear pago (sin token)
      • Solicitar opciones de diferido
      • Reembolsar una transacción
      • Autorizar pagos
      • Preautorización (sin token)
      • Anular una transacción
      • Reautorizar pagos
      • Capturar un pago autorizado
      • Información de BIN V2
      • Información de BIN
      • Validar OTP
    • One-Click and Scheduled Payments
      • Solicitar un token de cargo recurrente
      • Crear un cargo recurrente
      • Hacer un pago One-click
      • Actualizar los datos de la tarjeta del cargo recurrente
      • Cancelar un cargo recurrente
      • Actualizar un cargo recurrente
      • Agregar un cargo o descuento temporal
      • Autorizar pagos
      • Capturar un pago autorizado
      • Consultar información del cargo recurrente
    • Transfer in
      • Consultar lista de bancos
      • Solicitar un token de Transfer In
      • Iniciar transacción
      • Consultar estado
    • Transfer Out
      • Consultar lista de bancos
      • Consultar lista de bancos V2
      • Solicitar un token de Transfer Out
      • Iniciar transacción
      • Consultar estado
      • Saldo para payouts
    • Smartlinks
      • Crear un Smartlink
      • Consultar un Smartlink
      • Eliminar un Smartlink
      • Actualizar un Smartlink
    • Payment Button
      • Crear un Payment Button
    • Analytics
      • Consultar listado de transacciones v2
    • Chargebacks
      • Consultar chargebacks
      • Solicitar exportación de chargebacks
    • Commissions
      • Consultar configuración de comisiones
    • Payment Credentials
      • Crear una credencial
      • Activar o desactivar
      • Eliminar credencial
      • Regenerar una credencial
      • Actualizar credencial
      • Búsqueda avanzada
      • Buscar credenciales
    • Platform Status
      • Consultar estado de la plataforma
      • Consultar estado del gateway
    • Settlement
      • Consultar liquidación
    • Subscription Transactions
      • Consultar transacciones de suscripción
    • Fraud Report
      • Consultar alertas de fraude
  • Card Present Billpocket
    • Notas de versión
    • Notas de versión del SDK de Android
    • Notas de versión de la app de Android
    • Notas de versión de la app de iOS
    • Get Started
      • Crear una cuenta
      • User Token
      • API Keys
    • Webhooks
      • Webhooks — Transferencia de fondos a tu cuenta bancaria
      • Errores de transferencia de fondos
    • Terminals
      • App Review
      • Splash Screen
    • Card not Present Billpocket Services
      • 3DS Checkout
        • Crear checkout
        • Consultar detalles del checkout
      • E-commerce Flex
        • Obtener token
        • Validar token
        • Cobrar pagos
        • Reembolso
        • Capturar un pago autorizado
        • Consultar estado
    • Catalogs
      • Estados
      • Municipios
      • Empresas de impuestos
      • Actividades comerciales
    • Accounts
      • Clabe Account Setup
        • Agregar cuenta CLABE
      • Deposit Accounts
        • Agregar o actualizar cuenta CLABE
    • User Settings
      • Crear usuario
    • Card Present Payment Services
      • Cloud Terminal API
        • Cobrar pagos con tarjeta
        • Imprimir ticket
        • Cancelar notificación push
        • Consultar estado de la transacción
        • Cobrar pagos con tarjeta v2
      • App-to-App
        • Android intents
        • App to App — iOS
        • App to App — Mobile Web
      • Terminal SDK
        • Terminal SDK Android
        • Errores del SDK de Android
    • Transactions
      • Transaction List
        • Obtener token
        • Consultar listado de transacciones
        • Consultar listado de transacciones v2
        • Consultar listado de transacciones v3
        • Consultar listado de transacciones v4
      • Cancel Payments
        • Códigos de error de cancelación
        • Cancelar pagos
  • API Raw Card Present
    • El objeto Amount
    • Catálogo de errores
    • Proceso de intercambio de llaves
    • Notas de versión
    • Datos de prueba
    • One-time payments
      • Pago único
    • Two-step-payments
      • Autorización y captura
    • Voids & Refunds
      • Reembolsar una transacción
      • Anular y reversar
    • Card information
      • Consultar información de BIN
      • Información de BIN V2
      • Solicitar opciones de diferido
    • Query Transactions
      • Búsqueda de transacciones
    • Webhooks
      • Webhooks — Pagos con tarjeta
      • Webhooks — Reembolsos
      • Webhooks — Introducción
      • Buenas prácticas
      • Revisa tus webhooks
    • Chargebacks
      • Consultar chargebacks
      • Solicitar exportación de chargebacks
    • Fraud Report
      • Consultar alertas de fraude
  • Kushki One
    • Error Catalog
    • Release notes
    • Transaction Examples
    • Webhooks
    • Cloud Services
      • Payment
        • Sync
          • Charge
          • Authorization (Pre-auth)
          • Capture
          • Re-authorization
          • Post-tip
          • Void
          • Refund
          • Abort
        • Async
          • Charge (Async)
          • Authorization — Pre-auth (Async)
          • Capture (Async)
          • Re-authorization (Async)
          • Post-tip (Async)
          • Void (Async)
        • Search
          • Transaction Search
      • Print
        • Create Print Job
        • Get Print Job Status
    • Local Services
      • Payment
        • Sync
          • Charge
          • Authorization (Pre-auth)
          • Capture
          • Re-authorization
          • Post-tip
          • Void
          • Refund
          • Abort
        • Async
          • Charge (Async)
          • Authorization — Pre-auth (Async)
          • Capture (Async)
          • Re-authorization (Async)
          • Post-tip (Async)
          • Void (Async)
          • Abort (Async)
        • Search
          • Transaction Search — Online
          • Transaction Search — Local
      • Print
        • Create Print Job
        • Get Print Job Status
        • Print Job Webhook (inbound — implemented by your POS)
  • Appian - Submerchant Register
    • Release Notes
    • Submerchant Validation in Batch
    • Query submerchant status by requestId/submerchantId
    • Submerchant Document Upload
    • Get submerchantIds
    • Get credentials for submerchants
  • Schemas
    • RequestBodies
      • one-and-two-step-payment
    • Card
    • Channel
    • Amount-cash-in
    • ChargebackListResponse
    • TransactionResponse
    • PrintJobRequest
    • one-and-two-step-payment-2
    • Card Present (CP)
    • one-and-two-step-payment-2
    • SubscriptionTransactionsResponse
    • FraudAlertRequest
    • StatusComponent
    • SettlementDateRangeRequest
    • amount
    • ChargebackItem
    • SubscriptionTransaction
    • extra_taxes
    • RawResponse
    • CommandText
    • Card Not Present (CNP)
    • Deferred
    • networkToken
    • FraudAlertResponse
    • ErrorResponse400
    • SettlementRecord
    • card
    • CardData
    • CommandColumns
    • FraudAlertRecord
    • SettlementResponse
    • currency
    • webhooksItem
    • ErrorResponse
    • Country
    • ErrorResponse401
    • LinkFailure
    • ColumnItem
    • ValidationError
    • Amount
    • card_details
    • ErrorResponse403
    • enc_tlv
    • CommandDivider
    • TransactionEvent
    • extraTaxes
    • payment_method
    • ErrorResponse500
    • CommandFeed
    • TransactionStatus
    • deferred
    • CommandSpace
    • ReadingType
    • pos_details
    • ContactDetails
    • sub_merchant
    • CommandCut
    • FailureReason
    • contact_details
    • Subscription
    • metadata
    • CommandImage
    • EventTerminal
    • documentType
    • orderDetails
    • Language
    • TransactionSearchRequest
    • CommandQR
    • EventOperation
    • Shipping Address
    • payment_submethod
    • CommandBarcode
    • EventAmount
    • Billing-Address
    • SubscriptionUpdate
    • EventExtraTaxes
    • PrintJobAccepted
    • PrinterError
    • EventMetadata
    • SubscriptionAdjustmentRequest
    • product
    • AmountWithTaxes
    • PrintJobStatus
    • PrintJobStatusRequest
    • threeDomainSecure
    • AmountCore
    • webhooks
    • headers
    • ExtraTaxes
    • PrintWebhookPayload
    • webhooksChargeback
    • Metadata
    • AmountWithTip
    • citMit
    • TransactionSearchBody
    • TransactionSearchOnlineBody
    • network
    • binInfo
    • AmountWithOptionalTip
    • TransactionSearchLocalBody
    • TransactionEvent_2
    • messageFields
    • UnexpectedErrorResponse
    • FailureReason_2
    • transactionType
    • ExternalReferenceId
    • EventTerminal_2
    • ExternalSubscriptionId
    • EventOperation_2
    • EventAmount_2
    • EventExtraTaxes_2
    • EventMetadata_2
    • SettlementTicketRequest
HomePerú 🇵🇪México 🇲🇽
Ecuador 🇪🇨Colombia 🇨🇴Chile 🇨🇱
HomePerú 🇵🇪México 🇲🇽
Ecuador 🇪🇨Colombia 🇨🇴Chile 🇨🇱
  1. Online Payments

Pagos One-Click y Programados

Los Pagos One-Click y Programados te permiten registrar la tarjeta de un cliente una sola vez y cobrarla varias veces —a demanda o automáticamente según un calendario— sin volver a pedir los datos de la tarjeta.
Admite cargos one-click (a demanda) y cargos recurrentes programados, con ciclos de facturación y lógica de reintentos configurables.

Proceso de pago#

Un pago por suscripción funciona en 2 etapas principales: el registro de la tarjeta y la ejecución de los cargos recurrentes.

Etapa 1 — Registro de la tarjeta#

1
El usuario elige el método de pago
En tu sitio web o app, el usuario elige el método de pago. Déjale claro que su tarjeta queda registrada para cargos recurrentes.
2
Solicita un token de cargo recurrente
Llama a POST /subscriptions/v1/card/tokens con los datos de la tarjeta y la moneda. Devuelve un token de un solo uso que se usa para crear la suscripción.
{
  "card": {
    "name": "Juan García",
    "number": "5451951574925480",
    "expiryMonth": "05",
    "expiryYear": "28",
    "cvv": "123"
  },
  "currency": "MXN"
}
3
Crea la suscripción
Llama a POST /subscriptions/v1/card con el token, los datos del plan y la información de contacto. Kushki ejecuta un cargo pequeño de validación y lo reversa automáticamente: así confirma que la tarjeta se puede cobrar.
{
  "token": "gV3ox6100000sAxClU033646vnnJsT83",
  "planName": "Plan Mensual",
  "periodicity": "monthly",
  "startDate": "2026-06-01",
  "amount": {
    "subtotalIva": 0,
    "subtotalIva0": 500,
    "iva": 0,
    "ice": 0,
    "currency": "MXN"
  },
  "contactDetails": {
    "documentType": "CURP",
    "documentNumber": "GACJ800101HDFRRN09",
    "firstName": "Juan",
    "lastName": "García",
    "email": "user@example.com",
    "phoneNumber": "+525512345678"
  }
}
Una respuesta exitosa devuelve un subscriptionId: guárdalo para gestionar los cargos futuros.

Etapa 2 — Cargos recurrentes#

1
Facturación automática
Kushki procesa los cargos recurrentes a la tarjeta registrada de forma automática, según el monto y el periodo definidos en la suscripción.
La facturación corre todos los días desde las 6 AM GMT-5. Configura startDate antes de esa hora si quieres el primer cargo el mismo día.
2
Lógica de reintentos
Si un cargo se rechaza, Kushki reintenta automáticamente. Por defecto, 3 reintentos durante 3 días consecutivos desde el startDate original.
Personaliza la lógica de reintentos con retryConfiguration:
retryTypeComportamiento
scheduleReintenta cada N días durante todo el periodo
fixedReintenta solo en días específicos del mes
{
  "retryConfiguration": {
    "retryType": "fixed",
    "value": [5, 15, 25]
  }
}
3
Notificaciones de transacción
Recibes notificaciones por webhook por cada intento de cargo, aprobado o declinado. También están disponibles en la Kushki Console.

Cargo a demanda (one-click)#

Para cobrar una tarjeta registrada de inmediato, sin esperar el ciclo de facturación programado:
POST /subscriptions/v1/card/{subscriptionId}
{
  "amount": {
    "subtotalIva": 0,
    "subtotalIva0": 500,
    "iva": 0,
    "ice": 0,
    "currency": "MXN"
  }
}

Moneda#

MonedaCódigoNotas
Peso mexicanoMXNDos decimales: los montos usan centavos (por ejemplo, 500.00)

Tipos de documento#

ValorDescripción
CURPClave Única de Registro de Población 🇲🇽
RFCRegistro Federal de Contribuyentes 🇲🇽
PPPasaporte 🇲🇽
CCIdentity Document 🇲🇽

Meses sin intereses (MSI) en suscripciones#

México admite Meses Sin Intereses (MSI) en los cargos one-click. Envía el objeto deferred con creditType: "03", graceMonths: "00" y el número de months en la petición de cargo.
Llama siempre primero a Request Deferred Options para verificar los planes disponibles para el BIN de la tarjeta.
Montos mínimos requeridos para MSI
MesesMonto mínimo
3$300 MXN
6$600 MXN
9$900 MXN
12$1,200 MXN
18$1,800 MXN
{
  "amount": {
    "subtotalIva": 0,
    "subtotalIva0": 900,
    "iva": 0,
    "ice": 0,
    "currency": "MXN"
  },
  "deferred": {
    "creditType": "03",
    "graceMonths": "00",
    "months": 9
  }
}

Flujo de preautorización de la suscripción#

Usa la preautorización para reservar fondos en una tarjeta registrada antes de confirmar el cargo. Es útil para flujos de hoteles y arriendos.
1
Preautoriza
POST /subscriptions/v1/card/{subscriptionId}/authorize: reserva fondos en la tarjeta registrada. Devuelve un ticketNumber.
Las retenciones de autorización expiran después de 28 días (crédito) o 7 días (débito).
2
Captura
POST /subscriptions/v1/card/{subscriptionId}/capture: captura el monto reservado. Envía el ticketNumber de la preautorización.

Gestiona tus suscripciones#

OperaciónEndpointDescripción
Consultar informaciónGET /subscriptions/v1/card/search/{subscriptionId}Obtiene el estado actual y la configuración
Actualizar tarjetaPUT /subscriptions/v1/card/{subscriptionId}/cardReemplaza la tarjeta sin cancelar la suscripción
Actualizar planPATCH /subscriptions/v1/card/{subscriptionId}Modifica el monto, la frecuencia o las fechas
Agregar cargo temporalPUT /subscriptions/v1/card/{subscriptionId}Aplica un cargo o descuento extra por una vez al siguiente ciclo
CancelarDELETE /subscriptions/v1/card/{subscriptionId}Cancela y desactiva la suscripción

Opciones de periodicidad#

ValorDescripción
dailySe cobra cada día
weeklySe cobra cada semana
biweeklySe cobra cada dos semanas
monthlySe cobra cada mes
bimonthlySe cobra cada dos meses
quarterlySe cobra cada tres meses
biannualSe cobra cada seis meses
annualSe cobra cada año
customIntervalo personalizado: especifica periodDays

Idempotencia#

Incluye la cabecera Idempotency-Key para reintentar operaciones de forma segura:
ReglaDetalle
Ventana de validez24 horas
Largo máximo56 caracteres
FormatoUUIDv4 recomendado
Disponible en: preautorizaciones de suscripción, anulaciones y reembolsos.

Autenticación#


Uso de la API#

🟢 Producción
🧪 Sandbox (UAT)
https://api.kushkipagos.com/
OTP en sandbox
Cuando una tarjeta requiere validación por OTP en el ambiente de sandbox, usa 555 para las transacciones en MXN.

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 a demanda sobre una tarjeta registrada. Admite meses sin intereses (MSI).
Consultar un cargo recurrente
Obtén los detalles y el estado actual de una suscripción.
Actualizar la tarjeta del cargo recurrente
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 o descuento extra por una vez al siguiente ciclo de facturación.
Cancelar un cargo recurrente
Cancela y desactiva una suscripción activa.
Preautorización de suscripción
Reserva fondos en una tarjeta registrada sin capturar de inmediato.
Captura de suscripción
Captura un monto previamente autorizado en una tarjeta registrada.

¿Tienes alguna sugerencia sobre esta documentación? Contáctanos.
Modified at 2026-09-11 14:42:20
Previous
Validar OTP
Next
Solicitar un token de cargo recurrente
Built with