1. Kushki One
  • API Docs Chile 🇨🇱
  • Online Payments
    • Release Notes
    • Card Payments
      • Request a card token
      • Create payment (tokenless)
      • Make a charge or deferred charge
      • Void a transaction
      • Refund a transaction
      • Request deferred options
      • Authorize payments
      • Preauthorization (tokenless)
      • Reauthorize payments
      • Capture an authorized payment
      • Verify Account
      • Validate OTP
      • Bin Info V2
      • Bin Info
      • Voucher
    • One-Click & Scheduled Payments
      • Request a recurring charge token
      • Create a recurring charge
      • Update recurring charge card data
      • Make an One-click payment
      • Cancel a recurring charge
      • Update a recurring charge
      • Add a temporary charge or discount
      • Authorize payments
      • Capture an authorized payment
      • Get recurring charge Info
    • Card Async
      • Request a card async token
      • Init Transaction
      • Authorize payments
      • Capture an authorized payment
      • Get Status
    • Async Card Recurring Charges
      • Request an async card recurring charge token
      • Init an async card recurring charge
      • Authorize payments
      • Capture an authorized payment
    • Chargebacks
      • Query chargebacks
      • Request chargeback export
    • 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
    • Cash In
      • Request a cash in token
      • Init Transaction
      • Transaction Status
    • Smartlinks V2
      • 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
    • Status
      • Get platform status
      • Get gateway status
    • Subscription Transactions
      • Get subscription transactions
    • Payment Credentials
      • Create a credential
      • Search credentials
      • Update credential
      • Regenerate a credential
      • Delete credential
      • Activate or deactivate
      • Advanced search
    • Settlement
      • Query settlement
    • Fraud Report
      • Consultar alertas de fraude
  • API Raw Card Present Payments
    • Release Notes
    • Error Catalog
    • Test Data
    • Key Exchange Process
    • The Amount Object
    • One-time payments
      • Single payment
    • Two-step-payments
      • Authorization and capture
    • Voids & Refunds
      • Refund a transaction
      • Void & Reverse
    • Card information
      • Get BIN Info
      • Bin Info V2
      • Request deferred options
    • Query Transactions
      • Transaction Search
    • Chargebacks
      • Query Chargebacks
      • Request Chargeback Export
    • Webhooks
      • Introduction
      • Good practices
      • Refunds
      • Card Payments
      • Check your webhooks
  • Kushki One
    • Error Catalog
    • Release notes
    • Transaction Examples
    • Webhooks
    • Cloud Services
      • Payment
        • Search
          • Transaction Search
        • 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)
      • Print
        • Create Print Job
        • Get Print Job Status
    • Local Services
      • Payment
        • Sync
          • Charge
          • Authorization (Pre-auth)
          • Capture
          • Re-authorization
          • Post-tip
          • Void
          • Refund
          • Abort
        • Search
          • Transaction Search — Online
          • Transaction Search — Local
        • Async
          • Charge (Async)
          • Authorization — Pre-auth (Async)
          • Capture (Async)
          • Re-authorization (Async)
          • Post-tip (Async)
          • Void (Async)
          • Abort (Async)
      • 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
    • Get submerchantIds
    • Get credentials for submerchants
  • Schemas
    • RequestBodies
      • one-and-two-step-payment
    • documentType
    • Amount-cash-in
    • amount
    • Card
    • ChargebackListResponse
    • Channel
    • StatusComponent
    • SubscriptionTransactionsResponse
    • SettlementDateRangeRequest
    • TransactionResponse
    • PrintJobRequest
    • FraudAlertRequest
    • networkToken
    • extra_taxes
    • ChargebackItem
    • SubscriptionTransaction
    • SettlementTicketRequest
    • RawResponse
    • CommandText
    • FraudAlertResponse
    • webhooks
    • card
    • Amount-CL
    • webhooksItem
    • ErrorResponse400
    • SettlementResponse
    • CardData
    • CommandColumns
    • FraudAlertRecord
    • headers
    • currency
    • Amount
    • card_details
    • ErrorResponse401
    • SettlementRecord
    • LinkFailure
    • ColumnItem
    • ValidationError
    • transactionType
    • enc_tlv
    • ErrorResponse403
    • ErrorResponse
    • CommandDivider
    • TransactionEvent
    • extraTaxes
    • Country
    • binInfo
    • Deferred
    • deferred
    • ErrorResponse500
    • payment_method
    • CommandFeed
    • TransactionStatus
    • SubscriptionUpdate
    • pos_details
    • CommandSpace
    • ReadingType
    • ContactDetails
    • Language
    • contact_details
    • sub_merchant
    • CommandCut
    • FailureReason
    • Subscription
    • metadata
    • CommandImage
    • EventTerminal
    • orderDetails
    • TransactionSearchRequest
    • CommandQR
    • EventOperation
    • Shipping Address
    • payment_submethod
    • CommandBarcode
    • EventAmount
    • Billing-Address
    • EventExtraTaxes
    • PrintJobAccepted
    • product
    • PrinterError
    • EventMetadata
    • threeDomainSecure
    • SubscriptionAdjustmentRequest
    • AmountWithTaxes
    • PrintJobStatus
    • PrintJobStatusRequest
    • webhooksChargeback
    • AmountCore
    • ExtraTaxes
    • PrintWebhookPayload
    • Metadata
    • citMit
    • AmountWithTip
    • network
    • TransactionSearchBody
    • TransactionSearchOnlineBody
    • AmountWithOptionalTip
    • TransactionSearchLocalBody
    • messageFields
    • TransactionEvent_2
    • UnexpectedErrorResponse
    • FailureReason_2
    • EventTerminal_2
    • ExternalReferenceId
    • EventOperation_2
    • ExternalSubscriptionId
    • EventAmount_2
    • EventExtraTaxes_2
    • EventMetadata_2
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 Chile 🇨🇱.
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 CLP, a safe amount-conversion helper, and a table of the most common integration mistakes.

IMPROVEMENTS

💰 Amount format documented for CLP#

Amount fields are now explicitly typed as integers in the smallest unit of the currency, and the documentation covers the decimal handling of Chile (CLP).
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 CLP — see Building the amount.
WARNING
CLP has no decimals and is never padded. 12000 is 12.000 CLP. The payload carries no currency field — it comes from the terminal's DMS configuration, so padding an amount the way a two-decimal market would charges 100× too much.
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:33:09
Previous
Error Catalog
Next
Transaction Examples
Built with