Accept credit and debit card payments in Chile 🇨🇱 — single charges, Cuotas Comercio, Cuotas Emisor, pre-authorization flows, and network tokens.The Card API lets you tokenize card data and process payments securely. All sensitive card information is handled by Kushki — your server only works with tokens.
Private Key required
Token generation requires your Private Key (Private-Merchant-Id). Never expose it in client-side or frontend code — always call the token endpoint from your backend.
⚠️ Token expiry: Tokens expire after a short window. Use them immediately — do not store them for later use.
2
Make a charge
Call POST /card/v1/charges with the token and amount breakdown. Include contactDetails and, optionally, orderDetails and productDetails for fraud scoring.
Chile supports two installment types. Always call the deferred options endpoint first to verify the card BIN supports installments and to retrieve the valid month options.
⚠️ Beta: Cuotas Comercio (creditType03) is currently in Beta phase for Chile. The data structure and logic may change without prior notice. Contact the Kushki team to enable this feature.
The merchant absorbs the installment cost. Send the deferred object with creditType: "03". Available from 2 to 12 months. All three fields — graceMonths, creditType and months — are required.
Use pre-authorization to reserve funds without capturing them immediately — ideal for hotel, car rental, or marketplace flows.
1
Authorize
POST /card/v1/preAuthorization — Reserves funds on the card. Returns a ticketNumber.In Chile the authorization expires after:
28 days for credit cards
7 days for debit cards
2
Reauthorize (optional)
POST /card/v1/reauthorization — Extends the amount or effect of the original authorization. Pass the original ticketNumber. The currency must match the original authorization.
If the payment is not captured within 7 days (debit) or 28 days (credit), the issuing bank may return the withheld funds to the cardholder.
3
Capture
POST /card/v1/capture — Captures the reserved funds (full or partial amount). Use the ticketNumberof the authorization, not of a reauthorization.
The maximum amount to capture may be up to 10% higher than the initial authorization plus any reauthorizations that have not been cancelled.
4
Void (if not capturing)
DELETE /v1/charges/{ticketNumber} — Cancels the authorization and releases the reserved funds. Once cancelled, no reauthorizations can be made on that transaction.
If you run your own subscriptions engine (PCI-compliant merchants only), process recurring charges as follows:
1
Register the card
Request a token with transactionMode: "initialRecurrence".
2
Make the initial charge
Charge with that token, and save the transactionReference from the response.
3
Tokenize for subsequent charges
Request a token with transactionMode: "subsequentRecurrence".
4
Charge subsequent transactions
Send the saved transactionReference in the initialRecurrenceReference field of the charge request.
For Mastercard, include citMit as an informative field when processing external subscriptions. Values are C101–C104 for customer-initiated transactions and M101–M104, M205–M208 for merchant-initiated ones.
POST /card/v2/charges accepts card data directly in the request body — no prior token call required. For server-to-server integrations where you already hold the card data.
On-demand service — PCI DSS required
Tokenless endpoints are available only to PCI DSS compliant companies, under the Acquirer model. Contact Kushki before enabling.
Limitations:
Only available for Visa and Mastercard.
Not compatible with Siftscience or TransUnion antifraud tools.
Not compatible with Kushki's 3DS authentication tool — use your own 3DS engine instead.
BETAChile supports processing transactions with network-tokenized cards (tokens provisioned by Visa or Mastercard through digital wallets such as Apple Pay).Set isNetworkToken: true and include the networkToken object:
Field
Description
deviceType
Type of device originating the tokenized transaction
requestorId
Unique ID assigned to the token requestor by the card network
source
Source of the token
walletId
Digital wallet identifier — "01" for Apple Pay, "04" for other wallets
authenticationLevel
Authentication level performed during token provisioning
mvv
10-digit Merchant Verification Value (Visa only)
Also include cryptogram on the card object when the network token carries a cryptogram from the wallet or issuer token service. The value must be 20 to 28 alphanumeric characters.
⚠️ Beta: Contact your Kushki account manager before enabling this feature.
GET /webhook/v1/transaction/receipt/{transactionReference} returns a PDF of the purchase receipt, Base64-encoded, with the value of the sales and service ticket.
GET /card/v1/bin/{bin} and GET /deferred/v2/bin/{bin} return card metadata (bank, brand, card type, issuing country) for a given BIN — accepting the first 8 or 10 digits.For Chilean merchants the response helps decide whether to continue with a card token request (when cardType is CREDIT) and which installment options to offer. Use it also to display the card brand logo at checkout.
POST /rules/v1/secureValidation validates the OTP entered by the customer, using the secureId returned by the token request. The customer has 5 minutes and 3 attempts with the same secureId.
Sandbox
To simulate an approved OTP validation in sandbox, use 150 for CLP. Any other value results in a declined validation.
Include the Idempotency-Key header to safely retry operations without creating duplicates:
Rule
Detail
Validity window
24 hours — after that, the same key generates a new transaction
Maximum length
56 characters
Uniqueness
Must be unique per transaction type
Format
UUIDv4 or another generator with sufficient entropy
Supported on Void a transaction, Refund a transaction (both for one-time charges, pre-authorizations and subscription charges), and subscription pre-authorizations.Kushki stores the status code and response body only if the original request succeeds. If the request failed with a 4XX or 5XX, no idempotency record is stored and you can safely retry with the same key.