1. Online Payments
  • API Docs Mexico 🇲🇽
  • Online Payments
    • Release Notes
    • Card Payments
      • Request a card token
      • Make a charge or deferred charge
      • Create payment (tokenless)
      • Request deferred options
      • Refund a transaction
      • Authorize payments
      • Preauthorization (tokenless)
      • Void a transaction
      • Reauthorize payments
      • Capture an authorized payment
      • Bin Info V2
      • Bin Info
      • Validate OTP
      • Verify Account
    • One-Click and Scheduled Payments
      • Request a recurring charge token
      • Create a recurring charge
      • Make an One-click payment
      • Update recurring charge card data
      • Cancel a recurring charge
      • Update a recurring charge
      • Add a temporary charge or discount
      • Authorize payments
      • Capture an authorized payment
      • Get recurring charge Info
    • Transfer in
      • Get Bank List
      • Request a Transfer In token
      • Init Transaction
      • Get Status
    • Transfer Out
      • Get Bank List
      • Get Bank List V2
      • Request a Transfer Out token
      • Init Transaction
      • Get Status
      • Balance for Payouts
    • Smartlinks
      • Create a Smartlink
      • Get a Smartlink
      • Delete a smartlink
      • Update a Smartlink
    • Payment Button
      • Create a payment button
    • Analytics
      • Get transactions list v1
      • Get transactions list v2
    • Chargebacks
      • Query chargebacks
      • Request chargeback export
    • Commissions
      • Get Commission Configuration
    • Payment Credentials
      • Create a credential
      • Activate or deactivate
      • Delete credential
      • Regenerate a credential
      • Update credential
      • Advanced search
      • Search credentials
    • Platform Status
      • Get platform status
      • Get gateway status
    • Settlement
      • Query settlement
    • Subscription Transactions
      • Get subscription transactions
  • Card Present Billpocket
    • Get Started
      • Create Account
      • User Token
      • API Keys
    • Webhooks
      • Webhooks — Transfer Funds (v1)
      • Webhooks — Transfer Funds to Your Bank Account
      • Transfer Funds Errors
    • Terminals
      • App Review
      • Splash Screen
    • Card Present Payment Services
      • Cloud Terminal API
        • Collect card payments
        • Print Ticket
        • Cancel Push Notification
        • Get transaction status
        • Collect card payments v2
      • App-to-App
        • Android intents
        • App to App — iOS
        • App to App — Mobile Web
      • Terminal SDK
        • Terminal SDK
        • Android SDK errors
    • Card not Present Billpocket Services
      • 3DS Checkout
        • Create checkout
        • Get checkout details
      • E-commerce Flex
        • Get token
        • Validate token
        • Collect payments
        • Refund
        • Capture an authorized payment
        • Get status
    • Catalogs
      • States
      • Municipalities
      • Tax companies
      • Commercial activities
    • User Settings
      • Create user
    • Accounts
      • Clabe Account Setup
        • Add CLABE account
      • Deposit Accounts
        • Add or update CLABE account
    • Transactions
      • Transaction List
        • Get token
        • Get transaction list
        • Get transaction list v2
        • Get transaction list v3
        • Get transaction list v4
      • Cancel Payments
        • Cancel payments Error Codes
        • Cancel payments
  • API Raw Card Present
    • The Amount Object
    • Error Catalog
    • Key Exchange Process
    • Release Notes
    • Test Data
    • One-time payments
      • Single payment
    • Two-step-payments
      • Authorization and capture
    • Voids & Refunds
      • Refund a transaction
    • Card information
      • Get BIN Info
      • Balance inquiries
      • Bin Info V2
      • Request deferred options
    • Query Transactions
      • Transaction Search
    • Webhooks
      • Webhooks — Introduction
      • Good Practices
      • Webhooks — Card Payments
      • Webhooks — Refunds
      • Check Your Webhooks
  • Kushki One
    • Cloud Services
      • Payment
        • Charge
        • Authorization (Pre-auth)
        • Capture
        • Re-authorization
        • Post-tip
        • Void
        • Refund
        • Abort
      • Search
        • Transaction Search
      • Print
        • Create Print Job
        • Get Print Job Status
    • Local Services
      • Print
        • Create Print Job
        • Get Print Job Status
        • Print Job Webhook (inbound — implemented by your POS)
      • Payment
        • Charge
        • Authorization (Pre-auth)
        • Capture
        • Re-authorization
        • Post-tip
        • Void
        • Refund
        • Abort
      • Search
        • Transaction Search — Online
        • Transaction Search — Local
  • Appian - Submerchant Register
    • 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
    • StatusComponent
    • SettlementDateRangeRequest
    • SubscriptionTransactionsResponse
    • amount
    • AmountWithTaxes
    • PrintJobRequest
    • networkToken
    • ChargebackItem
    • SettlementTicketRequest
    • SubscriptionTransaction
    • extra_taxes
    • AmountCore
    • CommandText
    • currency
    • ErrorResponse400
    • ErrorResponse
    • SettlementResponse
    • webhooksItem
    • card
    • ExtraTaxes
    • CommandColumns
    • Amount
    • Country
    • ErrorResponse401
    • SettlementRecord
    • card_details
    • ColumnItem
    • extraTaxes
    • ErrorResponse403
    • enc_tlv
    • TransactionResponse
    • CommandDivider
    • Deferred
    • payment_method
    • ErrorResponse500
    • deferred
    • RawResponse
    • CommandFeed
    • Metadata
    • pos_details
    • CardData
    • CommandSpace
    • ContactDetails
    • contact_details
    • sub_merchant
    • AmountWithTip
    • CommandCut
    • documentType
    • Subscription
    • metadata
    • LinkFailure
    • CommandImage
    • orderDetails
    • Language
    • TransactionSearchRequest
    • CommandQR
    • Shipping Address
    • payment_submethod
    • CommandBarcode
    • Billing-Address
    • SubscriptionUpdate
    • PrinterError
    • product
    • SubscriptionAdjustmentRequest
    • PrintJobStatus
    • threeDomainSecure
    • PrintWebhookPayload
    • webhooks
    • headers
    • webhooksChargeback
    • citMit
    • network
    • binInfo
    • messageFields
    • UnexpectedErrorResponse
    • transactionType
    • ExternalReferenceId
    • ExternalSubscriptionId
BienvenidaPerú 🇵🇪México 🇲🇽
Ecuador 🇪🇨Colombia 🇨🇴Chile 🇨🇱
BienvenidaPerú 🇵🇪México 🇲🇽
Ecuador 🇪🇨Colombia 🇨🇴Chile 🇨🇱
  1. Online Payments

One-Click and Scheduled Payments

One-Click & Scheduled Payments let you register a customer's card once and charge it repeatedly — on demand or automatically on a schedule — without asking for card data again.
Supports both one-click (on-demand) charges and scheduled recurring charges with configurable billing cycles and retry logic.

Payment process#

A subscription payment works in 2 main stages: card registration and recurring charge execution.

Stage 1 — Card registration#

1
User selects payment method
In your website or app, the user selects the payment method. Make it clear that their card will be registered for recurring charges.
2
Request a recurring charge token
Call POST /subscriptions/v1/card/tokens with the card data and currency. Returns a one-time token used to create the subscription.
{
  "card": {
    "name": "Juan García",
    "number": "5451951574925480",
    "expiryMonth": "05",
    "expiryYear": "28",
    "cvv": "123"
  },
  "currency": "MXN"
}
3
Create the subscription
Call POST /subscriptions/v1/card with the token, plan details, and contact information. Kushki runs a small validation charge and automatically reverses it — this confirms the card can be charged.
{
  "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"
  }
}
A successful response returns a subscriptionId — store it to manage future charges.

Stage 2 — Recurring charges#

1
Automatic billing
Kushki processes recurring charges to the registered card automatically according to the amount and period defined in the subscription.
Billing runs every day from 6 AM GMT-5. Set startDate before this time if you want the first charge on the same day.
2
Retry logic
If a charge is rejected, Kushki retries automatically. By default, 3 retries over 3 consecutive days from the original startDate.
Customize retry logic with retryConfiguration:
retryTypeBehavior
scheduledRetries every N days for the entire period
fixedRetries only on specific days of the month
{
  "retryConfiguration": {
    "retryType": "fixed",
    "value": [5, 15, 25]
  }
}
3
Transaction notifications
You receive webhook notifications for each charge attempt — successful or declined. Also available in the Kushki Console.

On-demand (one-click) charge#

To charge a registered card immediately without waiting for the scheduled billing cycle:
POST /subscriptions/v1/card/{subscriptionId}
{
  "amount": {
    "subtotalIva": 0,
    "subtotalIva0": 500,
    "iva": 0,
    "ice": 0,
    "currency": "MXN"
  }
}

Currency#

CurrencyCodeNotes
Mexican PesoMXNTwo decimal places — amounts use cents (e.g., 500.00)

Document types#

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

MSI installments in subscriptions#

Mexico supports Meses Sin Intereses (MSI) in one-click charges. Send the deferred object with creditType: "03", graceMonths: "00", and the number of months in the charge request.
Always call Request Deferred Options first to verify available plans for the card BIN.
Minimum amounts required for MSI
MonthsMinimum amount
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
  }
}

Subscription pre-authorization flow#

Use pre-authorization to reserve funds on a registered card before committing to the charge — useful for hotel and rental flows.
1
Pre-authorize
POST /subscriptions/v1/card/{subscriptionId}/authorize — Reserves funds on the registered card. Returns a ticketNumber.
Authorization holds expire after 28 days (credit) or 7 days (debit).
2
Capture
POST /subscriptions/v1/card/{subscriptionId}/capture — Captures the reserved amount. Pass the ticketNumber from the pre-authorization.

Manage subscriptions#

OperationEndpointDescription
Get infoGET /subscriptions/v1/card/search/{subscriptionId}Retrieve current status and configuration
Update cardPUT /subscriptions/v1/card/{subscriptionId}/cardReplace the card without canceling the subscription
Update planPATCH /subscriptions/v1/card/{subscriptionId}Modify amount, frequency, or dates
Add temporary chargePUT /subscriptions/v1/card/{subscriptionId}Apply a one-time extra charge or discount to the next cycle
CancelDELETE /subscriptions/v1/card/{subscriptionId}Cancel and deactivate the subscription

Periodicity options#

ValueDescription
dailyCharged every day
weeklyCharged every week
biweeklyCharged every two weeks
monthlyCharged every month
bimonthlyCharged every two months
quarterlyCharged every three months
biannualCharged every six months
annualCharged every year
customCustom interval — specify periodDays

Idempotency#

Include the Idempotency-Key header to safely retry operations:
RuleDetail
Validity window24 hours
Maximum length56 characters
FormatUUIDv4 recommended
Supported on: subscription pre-authorizations, voids, and refunds.

Authentication#


Using the API#

🟢 Production
🧪 Sandbox (UAT)
https://api.kushkipagos.com/
Sandbox OTP
When a card requires OTP validation in the sandbox environment, use 555 for MXN transactions.

Available Endpoints#

Request a Recurring Charge Token
Tokenize card data to register it for recurring charges.
Create a Recurring Charge
Create a new subscription with the registered card token.
Make a One-Click Payment
Execute an on-demand charge against a registered card. Supports MSI installments.
Get Recurring Charge Info
Retrieve the details and current status of a subscription.
Update Recurring Charge Card
Replace the card associated with an active subscription.
Update a Recurring Charge
Modify the amount, frequency, or dates of an existing subscription.
Add a Temporary Charge or Discount
Apply a one-time extra charge or discount to the next billing cycle.
Cancel a Recurring Charge
Cancel and deactivate an active subscription.
Subscription Pre-Authorization
Reserve funds on a registered card without capturing immediately.
Subscription Capture
Capture a previously authorized amount on a registered card.

Got a suggestion on this documentation? Contact us.
Modified at 2026-07-11 00:06:49
Previous
Verify Account
Next
Request a recurring charge token
Built with