1. Online Payments
  • 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
  • API Raw Card Present Payments
    • Release Notes
    • Error Catalog
    • Test Data
    • Key Exchange Process
    • 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
    • Webhooks
      • Introduction
      • Good practices
      • Refunds
      • Card Payments
      • 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
      • Payment
        • Charge
        • Authorization (Pre-auth)
        • Capture
        • Re-authorization
        • Post-tip
        • Void
        • Refund
        • Abort
      • 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
    • Get submerchantIds
    • Get credentials for submerchants
  • Schemas
    • RequestBodies
      • one-and-two-step-payment
    • documentType
    • Amount-cash-in
    • amount
    • Card
    • ChargebackListResponse
    • Channel
    • StatusComponent
    • SubscriptionTransactionsResponse
    • SettlementDateRangeRequest
    • AmountWithTaxes
    • PrintJobRequest
    • networkToken
    • extra_taxes
    • ChargebackItem
    • SubscriptionTransaction
    • SettlementTicketRequest
    • AmountCore
    • CommandText
    • webhooks
    • card
    • Amount-CL
    • webhooksItem
    • ErrorResponse400
    • SettlementResponse
    • ExtraTaxes
    • CommandColumns
    • headers
    • currency
    • Amount
    • card_details
    • ErrorResponse401
    • SettlementRecord
    • ColumnItem
    • Metadata
    • transactionType
    • enc_tlv
    • ErrorResponse403
    • ErrorResponse
    • TransactionResponse
    • CommandDivider
    • extraTaxes
    • Country
    • binInfo
    • Deferred
    • deferred
    • ErrorResponse500
    • payment_method
    • RawResponse
    • CommandFeed
    • SubscriptionUpdate
    • pos_details
    • CardData
    • CommandSpace
    • ContactDetails
    • Language
    • contact_details
    • sub_merchant
    • AmountWithTip
    • CommandCut
    • Subscription
    • metadata
    • LinkFailure
    • CommandImage
    • orderDetails
    • TransactionSearchRequest
    • CommandQR
    • Shipping Address
    • payment_submethod
    • CommandBarcode
    • Billing-Address
    • PrinterError
    • product
    • PrintJobStatus
    • threeDomainSecure
    • SubscriptionAdjustmentRequest
    • PrintWebhookPayload
    • webhooksChargeback
    • citMit
    • network
    • messageFields
    • UnexpectedErrorResponse
    • ExternalReferenceId
    • ExternalSubscriptionId
BienvenidaPerú 🇵🇪México 🇲🇽Ecuador 🇪🇨Colombia 🇨🇴Chile 🇨🇱
BienvenidaPerú 🇵🇪México 🇲🇽Ecuador 🇪🇨Colombia 🇨🇴Chile 🇨🇱
  1. Online Payments

Card Async

Card Async is a Chile-exclusive payment method that processes card transactions through Transbank's Webpay portal. Unlike the standard card flow, the customer is redirected to the Transbank portal to authenticate and complete the payment — your server receives the result asynchronously.
Chile only 🇨🇱
This service is available exclusively in Chile. It requires an active Transbank/Webpay integration enabled on your Kushki account.

How it works#

1
Request a card async token
Call POST /card-async/v1/tokens with the total amount, return URL, and currency. Returns a one-time token.
{
  "totalAmount": 10000,
  "returnUrl": "https://yoursite.com/payment/return",
  "currency": "CLP",
  "email": "user@example.com",
  "description": "Compra en Mi Comercio Chile"
}
⚠️ Token expiry: Tokens expire in 30 minutes and can only be used for a single transaction. Request a new token if it expires.
2
Init the transaction
Call POST /card-async/v1/init with the token and amount. The response returns a redirectUrl — send your customer there to complete the payment on Transbank's Webpay portal.
{
  "token": "AbCDef123456Z7Ghi8901234jkLMNopQ",
  "amount": {
    "subtotalIva": 0,
    "subtotalIva0": 10000,
    "iva": 0,
    "ice": 0,
    "currency": "CLP"
  },
  "webhooks": ["https://yoursite.com/kushki/notify"],
  "fullResponse": "v2"
}
Response:
{
  "redirectUrl": "https://webpay.transbank.cl/...",
  "transactionReference": "6f16659e-b711-4995-a9ae-161aecbd6521"
}
3
Customer completes payment on Webpay
The customer authenticates and confirms the payment on the Transbank portal. Transbank redirects the customer back to your returnUrl when done.
4
Check the transaction status
Call GET /card-async/v1/status/{token} to retrieve the final result. Use the token from Step 1 as the path parameter.
A successful response includes:
{
  "status": "approvedTransaction",
  "ticketNumber": "319228478889680318",
  "transactionReference": "6f16659e-b711-4995-a9ae-161aecbd6521",
  "approvedTransactionAmount": 10000,
  "lastFourDigits": "1234",
  "cardType": "CREDIT"
}

Pre-authorization flow#

Use pre-authorization to reserve funds without capturing immediately — for hotel, rental, or marketplace flows.
7-day capture limit
There is a maximum of 7 calendar days to capture after a pre-authorization. After that, Transbank automatically releases the reserved funds. This limit cannot be extended.
1
Request a token
Same as a regular charge — call POST /card-async/v1/tokens with the amount to reserve.
2
Pre-authorize
POST /card-async/v1/preAuthorization — Returns a redirectUrl to redirect the customer to Transbank.
{
  "token": "AbCDef123456Z7Ghi8901234jkLMNopQ",
  "amount": {
    "subtotalIva": 0,
    "subtotalIva0": 30000,
    "iva": 0
  }
}
3
Customer authenticates on Webpay
Customer is redirected to the Transbank portal and confirms the hold.
4
Get status and ticketNumber
GET /card-async/v1/status/{token} — Once the customer returns, poll this endpoint to confirm the authorization and obtain the ticketNumber needed for capture.
5
Capture
POST /card-async/v1/capture — Collect the reserved funds using the ticketNumber from the status response. Must be done within 7 calendar days.
{
  "ticketNumber": "319228478889680318",
  "amount": {
    "subtotalIva": 0,
    "subtotalIva0": 30000,
    "iva": 0,
    "ice": 0,
    "currency": "CLP"
  },
  "fullResponse": "v2"
}

Currency#

CurrencyCodeNotes
Chilean PesoCLPInteger amounts only — no decimal places
Unidad de FomentoUFIndexed currency unit
No decimals for CLP
Always send amounts as whole integers (e.g., 10000). Sending 10000.50 returns 400 Bad Request.

Transaction status values#

StatusDescription
requestedTokenToken created — the transaction has not been initialized yet
initializedTransactionTransaction initialized — awaiting customer action on Webpay
approvedTransactionPayment approved
declinedTransactionPayment declined by the issuer or processor

Authentication#


Using the API#

🟢 Production
🧪 Sandbox (UAT)
https://api.kushkipagos.com/

Available Endpoints#

Request a Card Async Token
Request a token with the payment amount and return URL. Valid for 30 minutes, single use.
Init Transaction
Initialize the transaction. Returns a Webpay redirect URL for the customer.
Pre-Authorization
Reserve funds without capturing immediately. Returns a Webpay redirect URL. 7-day capture window.
Capture
Capture a previously authorized amount using the ticketNumber from the status response.
Get Status
Poll for the final transaction result using the token from the token request step.

Got a suggestion on this documentation? Contact us.
Modified at 2026-07-28 22:32:16
Previous
Get recurring charge Info
Next
Request a card async token
Built with