1. Kushki One
  • 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
    • 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
      • Balance inquiries
    • 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
    • Chargebacks
      • Query Chargebacks
      • Request Chargeback Export
  • 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
    • 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
    • TransactionResponse
    • PrintJobRequest
    • one-and-two-step-payment-2
    • networkToken
    • ChargebackItem
    • SubscriptionTransaction
    • extra_taxes
    • RawResponse
    • CommandText
    • currency
    • ErrorResponse400
    • ErrorResponse
    • SettlementResponse
    • SettlementRecord
    • webhooksItem
    • card
    • CardData
    • CommandColumns
    • Amount
    • Country
    • ErrorResponse401
    • card_details
    • LinkFailure
    • ColumnItem
    • extraTaxes
    • ErrorResponse403
    • enc_tlv
    • CommandDivider
    • TransactionEvent
    • Deferred
    • payment_method
    • ErrorResponse500
    • deferred
    • CommandFeed
    • TransactionStatus
    • pos_details
    • CommandSpace
    • ReadingType
    • ContactDetails
    • contact_details
    • sub_merchant
    • CommandCut
    • FailureReason
    • documentType
    • Subscription
    • metadata
    • CommandImage
    • EventTerminal
    • orderDetails
    • Language
    • TransactionSearchRequest
    • CommandQR
    • EventOperation
    • Shipping Address
    • payment_submethod
    • CommandBarcode
    • EventAmount
    • Billing-Address
    • SubscriptionUpdate
    • EventExtraTaxes
    • PrintJobAccepted
    • product
    • SubscriptionAdjustmentRequest
    • PrinterError
    • EventMetadata
    • threeDomainSecure
    • AmountWithTaxes
    • PrintJobStatus
    • PrintJobStatusRequest
    • webhooks
    • AmountCore
    • headers
    • ExtraTaxes
    • PrintWebhookPayload
    • Metadata
    • webhooksChargeback
    • citMit
    • AmountWithTip
    • network
    • TransactionSearchBody
    • TransactionSearchOnlineBody
    • binInfo
    • AmountWithOptionalTip
    • TransactionSearchLocalBody
    • messageFields
    • TransactionEvent_2
    • UnexpectedErrorResponse
    • FailureReason_2
    • transactionType
    • ExternalReferenceId
    • EventTerminal_2
    • ExternalSubscriptionId
    • EventOperation_2
    • EventAmount_2
    • EventExtraTaxes_2
    • EventMetadata_2
    • SettlementTicketRequest
BienvenidaPerú 🇵🇪México 🇲🇽
Ecuador 🇪🇨Colombia 🇨🇴Chile 🇨🇱
BienvenidaPerú 🇵🇪México 🇲🇽
Ecuador 🇪🇨Colombia 🇨🇴Chile 🇨🇱
  1. Kushki One

Release notes

Stay up to date with changes and updates to Kushki ONE Connect in Mexico 🇲🇽.
We use the ISO 8601 standard (YYYY-MM-DD) for dates, and Semantic Versioning (MAJOR.MINOR.PATCH) for version numbers, increasing the:
1.
MAJOR version when we make incompatible API changes,
2.
MINOR version when we add functionality in a backward-compatible manner, and
3.
PATCH version when we make backward-compatible bug fixes.
NEW for new features.
IMPROVEMENTS for changes in existing functionality.
DEPRECATED for soon-to-be removed features.
REMOVED for now removed features.
FIX for any bug fixes.
SECURITY in case of vulnerabilities.

Latest#

1.1.0 - 2026-08-05#

PRODUCT IN BETA VERSION

NEW

⚡ Asynchronous payment services#

Every terminal-mediated payment operation is now available in a non-blocking variant under the /async/ prefix, in both the Local Network and Cloud topologies.
A card-present payment depends on human interaction and routinely exceeds the ~15 s timeout budget of most POS architectures. Async operations return immediately, so your system is never blocked waiting for a cardholder.
Key capabilities:
Available for charge, authorization, capture, re_authorization, pos_tip and void. Local Network also exposes an async abort.
The response is an acknowledgement event with status: TERMINAL_ACKNOWLEDGED and previous_status: "", returned without waiting for the acquirer.
Request and response structures are otherwise identical to their sync counterparts.
WARNING
The async response is an acknowledgement, not a result. It confirms only that the terminal accepted the payment intent. To learn whether the transaction was approved you must consume the transaction webhook.

NEW

🔔 Transaction webhooks with a seven-state lifecycle#

Async operations now push a notification to your backend on every state change of the payment, through to the acquirer's final answer. See the Webhooks reference for the full contract.
Key capabilities:
Register the endpoint per transaction with events_webhook_url in the request body.
Seven transactional states: TERMINAL_ACKNOWLEDGED, TERMINAL_CANCELED, CARD_PRESENTED, TERMINAL_REJECTED, APPROVAL_REQUESTED, DECLINED and APPROVAL. Five originate in the terminal; only APPROVAL and DECLINED come from the acquirer.
A single TransactionEvent envelope serves both the async acknowledgement and every webhook delivery — write one deserializer for both.
failure_reason carries type, code and message on TERMINAL_REJECTED and DECLINED.
reading_type reports how the card was read: CHIP, CONTACTLESS or MAGNETIC_STRIPE.
Delivery is retried with exponential backoff and jitter — min(60s, 2s × 2^attempt) + random(0..2s) — stopping after 10 attempts or 15 minutes. If the terminal loses connectivity it queues events persistently and replays them, preserving per-transaction order.
WARNING
Build an idempotent consumer. Because events are retried and replayed, deduplicate by event_id and correlate by client_transaction_id. Use previous_status to detect missing or out-of-order events.
DANGER
APPROVAL_REQUESTED is the point of no return. Once the transaction reaches the acquirer it can no longer be aborted. Wait for APPROVAL or DECLINED, then reverse with void or refund.

NEW

📘 Transaction Examples guide#

A new Transaction Examples guide provides copy-ready requests for every operation in both topologies, including complete worked examples in MXN, a safe amount-conversion helper, and a table of the most common integration mistakes.

IMPROVEMENTS

💰 Amount format documented for MXN#

Amount fields are now explicitly typed as integers in the smallest unit of the currency, and the documentation covers the decimal handling of Mexico (MXN).
Key capabilities:
subtotal_iva0, subtotal_iva, iva, tip, cashback_amount and every member of extra_taxes are now declared as integer / int64 instead of floating-point numbers.
The API description documents the conversion rule for MXN — see Building the amount.
WARNING
MXN has two decimals and the payload carries no currency field. The last two digits of the integer you send are the fractional part: 12000 is 120.00 MXN, not 12.000. The currency comes from the terminal's DMS configuration, so the same integer means different money on a terminal provisioned for another market.
WARNING
Event payloads echo amounts as decimals (12000.0) while requests take integers. Do not reuse an amount from an event to build a new request.

IMPROVEMENTS

🧾 Optional fields on charge and re-authorization#

The async charge operation now documents three optional fields, and async re_authorization documents one.
New fields:
amount.tip — tip amount added to the total.
cashback_amount — cash withdrawal on top of the purchase.
query_deferred — when true, the terminal prompts the cardholder for installment options.
omit_card — on re_authorization, skips card presentation for the operation.
INFO
These fields require the matching capability enabled in the Device Management System (DMS). When a capability is disabled the terminal either ignores the field or returns a CONFIGURATION error (-4001 tip, -4002 cashback) — see the Error Catalog.

IMPROVEMENTS

🔍 Lifecycle status filter in local transaction search#

The Transaction Search — Local operation now filters by the full set of seven lifecycle states through the filters.status field, replacing the previous transaction_type filter.

IMPROVEMENTS

🔑 Authentication headers documented as required#

Authorization and timestamp are now declared as required headers on every operation of the Payment and Print APIs, in both topologies. Previously only the path parameters were documented.
Key capabilities:
Authorization — HMAC-SHA256 signature of the raw request body, Base64-encoded.
timestamp — Unix timestamp in milliseconds.

FIX

🔐 Corrected the HMAC signing key#

The documentation previously stated that the HMAC-SHA256 signature was computed with the Private-Credential-Id. The correct signing key is the Business-Code.
DANGER
These are two different values. The private_credential_id is a terminal configuration field inside the DMS and is never used to sign requests. Signing with it returns UNAUTHORIZED on every call.

FIX

🖨️ Corrected the Print API Cloud paths#

Two endpoints in the Print API (Cloud) were documented under paths that do not exist.
Documented beforeCorrect path
POST /terminal/v1/{terminalSerial}/sync/print/jobPOST /terminal/v1/{terminalSerial}/sync/print
POST /terminal/v1/{terminalSerial}/sync/print/job_statusPOST /terminal/v1/{terminalSerial}/sync/print_job

FIX

🖨️ Corrected how the print job status is queried in Cloud#

The Cloud status query documented print_job_id as a query parameter. It is sent in the request body.
{
  "print_job_id": "RECEIPT-20240317-001"
}
INFO
Local Network keeps its own convention: GET /terminal/v1/print_job?print_job_id={id}, with the identifier in the URL. The asymmetry between topologies is intentional — see Get Print Job Status — Local.

Previous release notes#

1.0.0 - 2026-04-29#

PRODUCT IN BETA VERSION
NEW

🎉 Kushki ONE Connect — initial release#

First public release of Kushki ONE Connect, the API integration layer that lets your point-of-sale software drive a Kushki ONE SmartPOS terminal (Sunmi P3, Sunmi P2 SE) operating in semi-integrated mode.
Payment API — synchronous operations:
charge, authorization, capture, re_authorization, pos_tip, void, refund, abort and transaction search.
Print API:
Full control over the terminal's built-in thermal printer through a commands array supporting text, columns, dividers, feeds, spacing, cut, images, QR codes and barcodes — with an asynchronous webhook reporting the final job status.
Integration topologies:
Local Network (LAN / Wi-Fi) for direct HTTP to the terminal's IP, and Cloud (Internet) routed through Kushki's servers using the terminal serial. The request and response structures are identical in both — only the base URL changes.
Unified error model:
A single structured JSON response for every failure, classified by type into PARAMETER, TERMINAL, AUTHENTICATION, NOT_FOUND, ACQUIRER, INTERNAL, CONFIGURATION, TERMINAL-PRINTER and MANUFACTURER, with per-category code catalogs. See the Error Catalog.

Got a suggestion on this documentation? Contact us.
Modified at 2026-08-24 16:29:02
Previous
Error Catalog
Next
Transaction Examples
Built with