1. One-Click and Scheduled 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
        POST
      • Crear un cargo recurrente
        POST
      • Hacer un pago One-click
        POST
      • Actualizar los datos de la tarjeta del cargo recurrente
        PUT
      • Cancelar un cargo recurrente
        DELETE
      • Actualizar un cargo recurrente
        PATCH
      • Agregar un cargo o descuento temporal
        PUT
      • Autorizar pagos
        POST
      • Capturar un pago autorizado
        POST
      • Consultar información del cargo recurrente
        GET
    • 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. One-Click and Scheduled Payments

Crear un cargo recurrente

https://api-uat.kushkipagos.com
https://api-uat.kushkipagos.com
POST
/subscriptions/v1/card
Crea un cargo recurrente con un token entregado por Kushki que representa la tarjeta de crédito del cliente.

Ejecución del pago#

Kushki procesa los cargos recurrentes a la tarjeta registrada de forma automática. Los pagos se ejecutan y se repiten según el monto y el periodo indicados en la suscripción.
La lógica de facturación empieza a correr todos los días desde las 6am GMT-5. Asegúrate de crear la suscripción antes de esa hora si quieres que el primer pago se ejecute el mismo día del registro. También puedes pedirle a tu cliente que registre su tarjeta algunos días antes de que Kushki ejecute el primer cargo. Al crear una suscripción, debes indicar la fecha de inicio startDate.

Reintentos#

Si un pago se rechaza, Kushki tiene una lógica de reintentos para intentar recuperar el cargo. Por defecto, hay 3 reintentos durante 3 días seguidos desde el día de pago definido originalmente en startDate. Por ejemplo, para una suscripción mensual con fecha de inicio 10-01-2021 y un rechazo el 10-02-2021, el pago se reintenta hasta el 13-02-2021, 3 veces cada día, para un total de 9 intentos de pago.
Puedes modificar los días de reintento de una suscripción y también definir días de cobro específicos.
Si el último intento de cargo fue declinado, puede que te enviemos una notificación por WebHook para avisarte. En estos casos, te recomendamos contactar al dueño de la tarjeta y ofrecerle alternativas para pagar la cuota que no se pudo cobrar; por ejemplo, cambiar la tarjeta de crédito registrada y generar un cargo a demanda por una sola vez. Kushki sigue ejecutando los cargos automáticos en los periodos siguientes.
Personaliza la lógica de reintentos#
Puedes personalizar la lógica de reintentos de cobro enviando el objeto retryConfiguration así:
1.
retryType:"schedule". Si eliges schedule, puedes especificar en el campo value cada cuántos días se reintenta el cobro.
En el siguiente ejemplo, el cobro se reintenta 3 veces al día cada 2 días durante todo el mes.
{
   "retryConfiguration":{
      "retryType":"schedule",
      "value":[2]
   }
}
2.
retryType:"fixed". Envía los días específicos del mes en los que quieres reintentar. Ej. 10, 20, 30.
En el siguiente ejemplo, el cargo solo se reintenta 3 veces al día, los días 10, 20 y 30 del mes correspondiente.
{
  "retryConfiguration":{
     "retryType":"fixed",
     "value":[10,20,30]
  }
}
Envía el retryType como fixed si no quieres reintentar el cobro durante todo el mes.
Si el último intento de cargo fue declinado, puede que te enviemos una notificación por WebHook para avisarte. En estos casos, te recomendamos contactar al dueño de la tarjeta y ofrecerle alternativas para pagar la cuota que no se pudo cobrar; por ejemplo, cambiar la tarjeta de crédito registrada y generar un Pago One-click por una sola vez. Kushki sigue ejecutando los cargos automáticos en los periodos siguientes.

¡Importante!#

Al personalizar los reintentos, ten en cuenta que una vez iniciado el primer cobro, si falla y comienzan los reintentos, cualquier actualización de los reintentos se aplica a partir del siguiente periodo de la suscripción (semanal, mensual, anual).

Periodicidad#

Puedes elegir la frecuencia de los cargos recurrentes enviando cualquiera de estos valores en el campo obligatorio periodicity:
daily: cada 1 día.
weekly: cada 7 días.
biweekly: cada 15 días.
monthly: cada 30 días.
threefortnights: cada seis semanas o 42 días.
bimonthly: cada 60 días.
quarterly: cada 90 días.
fourmonths: cada 120 días.
halfyearly: cada 180 días
yearly: cada 360 días.
custom: para pagos one-click.

¿Tienes tu propio motor de autenticación 3DS?#

Asegúrate de incluir el objeto threeDomainSecure en tu petición.

Request

Header Params

Body Params application/json

Examples

Responses

🟢201Created
application/json
Created
Bodyapplication/json

🟠400Bad Request
🔴500Server Error
Request Request Example
Shell
JavaScript
Java
Swift
curl --location '/subscriptions/v1/card' \
--header 'Private-Merchant-Id;' \
--header 'Content-Type: application/json' \
--data-raw '{
    "token": "gV3ox6100000sAxClU033646vnnJsT83",
    "planName": "Premium",
    "periodicity": "monthly",
    "contactDetails": {
        "documentType": "CURP",
        "documentNumber": "1009283738",
        "email": "user@example.com",
        "firstName": "John",
        "lastName": "Doe",
        "phoneNumber": "+52 912345678"
    },
    "amount": {
        "subtotalIva": 1,
        "subtotalIva0": 0,
        "ice": 0,
        "iva": 16,
        "currency": "MXN"
    },
    "startDate": "2022-05-25",
    "metadata": {
        "plan": {
            "fitness": {
                "cardio": "include",
                "rumba": "include",
                "pool": "include"
            }
        }
    }
}'
Response Response Example
201 - default
{
    "subscriptionId": "1601594972296000"
}
Modified at 2026-09-11 14:57:28
Previous
Solicitar un token de cargo recurrente
Next
Hacer un pago One-click
Built with