1. Online Payments
  • API Docs Colombia 🇨🇴
  • Online Payments
    • Release Notes
    • Card Payments
      • Request a card token
      • Make a charge or deferred charge
      • Create payment (tokenless)
      • 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
      • BIN info V2
    • One-Click & 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
    • 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
      • Delete a cash in transaction
      • Update a cash in transaction
    • Cash-out
      • Request a cash out token
      • Init Transaction
      • Transaction Status
      • Update a cash out transaction
      • Delete a cash out transaction
    • Smartlinks-v2
      • Create a Smartlink
      • Get a Smartlink
      • Update a Smartlink
      • Delete a smartlink
    • Analytics
      • Get transactions list v1
      • Get transactions list v2
    • Gateway-status
      • Get gateway status
      • Get platform status
    • Payment Credentials
      • Create a credential
      • Search credentials
      • Advanced search
      • Delete credential
      • Regenerate a credential
      • Activate or deactivate
      • Update credential
    • Payment Button
      • Create a payment button
    • Settlement
      • Query settlement
    • Subscription Transactions
      • Get subscription transactions
  • Kushki One
    • Cloud Services
      • Payment
        • Charge
        • Authorization (Pre-auth)
        • Capture
        • Re-authorization
        • Post-tip
        • Void
        • Refund
        • Abort
        • 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
        • Transaction Search — Online
        • Transaction Search — Local
      • Print
        • Create Print Job
        • Get Print Job Status
        • Print Job Webhook (inbound — implemented by your POS)
  • API RAW CARD PRESENT PAYMENTS
    • Release Notes
    • Error Catalog
    • The Amount Object
    • Key Exchange Process
    • Test data
    • Card Information
      • Get BIN Info
      • Balance inquiries
      • BIN info V2
      • Request deferred options
    • One-time Payments
      • Single payment
    • Two-step Payments
      • Authorization and capture
    • Voids & Refunds
      • Void & Reverse
      • Refund a transaction
    • Query Transactions
      • Transaction Search
    • Webhooks
      • Introduction
      • Good Practices
      • Webhooks-Card Payments
      • Webhooks-Refunds
      • Check your webhooks
  • 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
    • SubscriptionTransactionsResponse
    • Card
    • Channel
    • Amount-cash-in
    • ChargebackListResponse
    • SettlementDateRangeRequest
    • AmountWithTaxes
    • PrintJobRequest
    • card
    • SubscriptionTransaction
    • networkToken
    • ChargebackItem
    • SettlementTicketRequest
    • AmountCore
    • CommandText
    • amount
    • ErrorResponse
    • currency
    • webhooksItem
    • ErrorResponse400
    • SettlementResponse
    • ExtraTaxes
    • CommandColumns
    • extra_taxes
    • Amount
    • ErrorResponse401
    • SettlementRecord
    • ColumnItem
    • pos_details
    • extraTaxes
    • ErrorResponse403
    • TransactionResponse
    • CommandDivider
    • card_details
    • Deferred
    • Country
    • payment_method
    • ErrorResponse500
    • RawResponse
    • CommandFeed
    • enc_tlv
    • Metadata
    • CardData
    • CommandSpace
    • contact_details
    • ContactDetails
    • AmountWithTip
    • CommandCut
    • deferred
    • sub_merchant
    • documentType
    • Subscription
    • LinkFailure
    • CommandImage
    • metadata
    • orderDetails
    • Language
    • TransactionSearchRequest
    • CommandQR
    • Shipping Address
    • payment_submethod
    • CommandBarcode
    • Billing-Address
    • PrinterError
    • product
    • SubscriptionUpdate
    • PrintJobStatus
    • threeDomainSecure
    • SubscriptionAdjustmentRequest
    • 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

PAYMENT-BUTTON

The Payment Button (Webcheckout) lets you create a hosted payment page with a single API call. Instead of building and maintaining your own payment form, Kushki generates a URL you redirect your customer to — they select their preferred payment method and complete the transaction on a Kushki-hosted page.
Keep in mind!
Due to our risk policies, the available payment methods and the integration type may vary once you complete the affiliation. We will tell you how to proceed if this process applies to your merchant.

How It Works#

Create a Webcheckout
Call the Create a payment button endpoint from your backend using your Private Merchant ID. Pass the order details — products, amount, accepted payment methods, and a redirect URL.
Kushki returns a webcheckoutUrl — a unique, ready-to-use hosted checkout page.
Redirect the Customer
Redirect your customer to the webcheckoutUrl. They will see a Kushki-hosted checkout page pre-loaded with your order summary, and can pay using any of the payment methods you configured.
Accepted payment methods in Colombia 🇨🇴:
ValueMethod
credit-cardCredit and debit card
cashCash at payment points (Baloto, Efecty, Bancolombia, etc.)
transferPSE bank transfer
Customer Completes Payment
After the customer finishes (or abandons) the checkout, Kushki redirects them to your redirectURL. Use the webcheckoutId returned at creation to query the transaction status if needed.

Request Fields#

FieldRequiredDescription
kind✅Always "webcheckout"
redirectURL✅URL where the customer is sent after completing or abandoning checkout
products✅Array of product objects — shown in the order summary
paymentConfig✅Payment configuration including amount and accepted methods
contactDetailCustomer's name and email — pre-fills the checkout form
transactionTypeSet to "PRE_AUTH" to create a pre-authorization (authorization and capture flow)
additionalInformationExtra key-value fields shown in the purchase summary on the checkout page

products array#

Each item in products describes a line item shown in the checkout summary:
FieldRequiredDescription
name✅Product name
description✅Product description
quantity✅Quantity
unitPrice✅Unit price in COP

paymentConfig object#

FieldRequiredDescription
amount✅Amount breakdown — see Amount Object below
paymentMethodArray of accepted payment methods. If omitted, all methods available to your merchant are shown.

Amount Object#

{
  "paymentConfig": {
    "amount": {
      "subtotalIva": 42017,
      "subtotalIva0": 0,
      "iva": 7983,
      "currency": "COP"
    }
  }
}
FieldDescription
subtotalIvaTaxable base amount (before IVA)
subtotalIva0Non-taxable amount (IVA = 0)
ivaIVA tax value
currencyAlways COP for Colombia
The total displayed on the checkout page is subtotalIva + subtotalIva0 + iva.

Example Request#

{
  "kind": "webcheckout",
  "contactDetail": {
    "email": "user@example.com",
    "name": "Andrés Martínez"
  },
  "redirectURL": "https://www.micomercio.com/gracias",
  "products": [
    {
      "name": "Tenis Trekking Pro",
      "description": "Talla 42, color negro",
      "quantity": 1,
      "unitPrice": 250000
    }
  ],
  "paymentConfig": {
    "amount": {
      "subtotalIva": 0,
      "subtotalIva0": 250000,
      "iva": 0,
      "currency": "COP"
    },
    "paymentMethod": ["credit-card", "cash", "transfer"]
  }
}

Example Response#

{
  "webcheckoutId": "T3iDy0G4I",
  "webcheckoutUrl": "https://webcheckout.kushkipagos.com/webcheckout/T3iDy0G4I"
}
Redirect the customer immediately to webcheckoutUrl — links are single-use and expire after the session.

Pre-Authorization Flow#

To create a pre-authorization (reserve funds without capturing), set transactionType: "PRE_AUTH" in paymentConfig. After the customer authorizes the payment on the checkout page, you capture the funds separately via the Card API.
{
  "paymentConfig": {
    "transactionType": "PRE_AUTH",
    "amount": { ... }
  }
}

Authentication#

This endpoint requires your Private Key. Never expose it in client-side or frontend code.

Using the API#

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

Available Endpoints#

Create a Payment Button
Generates a hosted Webcheckout URL pre-loaded with your order details and accepted payment methods. Returns a webcheckoutUrl to redirect the customer to.

Got a suggestion on this documentation? Contact us.
Modified at 2026-07-11 00:04:31
Previous
Update credential
Next
Create a payment button
Built with