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

CASH-OUT

Cash Out lets you send money that recipients collect in cash at thousands of physical locations across Colombia — no bank account needed. The recipient receives a PIN they present at any participating payment point to collect the funds.
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.
Pre-funded wallet required
Cash Out transactions are charged against your Kushki disbursement wallet balance. Make sure your wallet has sufficient funds before initiating a Cash Out.

Payment Flow#

A Cash Out disbursement consists of 3 steps: tokenization, initialization (PIN delivery), and confirmation.
Request a Cash Out Token
Your backend calls the token endpoint using your Public Merchant ID, passing the recipient's identification data and the disbursement amount.
Token rules: Tokens expire in 30 minutes and are single-use. Request a new one if the transaction fails or the token expires.
Required fields:
FieldDescription
nameRecipient's first name
lastNameRecipient's last name
documentNumberRecipient's document number
totalAmountAmount to disburse
currencyAlways COP for Colombia
Optional fields:
FieldDescription
documentTypeCC, NIT, CE, TI, or PP (defaults to CC)
emailRecipient's email address
phoneNumberRecipient's phone number (e.g. +573912345678)
descriptionInternal payment description
Document types accepted in Colombia:
ValueDocument
CCCédula de Ciudadanía 🇨🇴
NITNúmero de Identificación Tributaria 🇨🇴
CECédula de Extranjería 🇨🇴
TITarjeta de Identidad 🇨🇴
PPPassport 🇨🇴
Init Transaction
Using your Private Merchant ID, call the Init Transaction endpoint with the token and the amount object. Kushki validates the token, deducts the balance from your wallet, and returns:
A PIN (pin) — the cash pickup code to share with the recipient.
A PDF receipt URL (pdfUrl) — printable receipt.
A ticketNumber to track and manage the disbursement.
Required fields:
FieldDescription
tokenToken from the previous step
amountObject with subtotalIva, subtotalIva0, iva, and currency
Optional fields:
FieldDescription
expirationDatePIN expiry date (YYYY-MM-DD HH:mm:ss, UTC). If omitted, expires after 7 days.
metadataCustom key-value pairs for your internal records
webhooksReal-time notification configuration
Recipient Collects Cash
Share the PIN with the recipient. They go to any participating payment point, present their ID and the PIN, and collect the cash.
This step happens entirely on the recipient's side — no backend action is required.
Get Transaction Status
Call the Transaction Status endpoint using the ticketNumber to confirm whether the cash was collected.
Possible statuses:
StatusMeaning
initializedTransactionPIN generated — awaiting cash collection
approvedTransactionCash collected by recipient
expiredTransactionPIN expired without collection

Amount Object#

The amount object is required in the Init Transaction request.
Without taxes (IVA 0)
With IVA taxes
{
  "amount": {
    "subtotalIva": 0,
    "subtotalIva0": 50000,
    "iva": 0,
    "currency": "COP"
  }
}
Set the full amount in subtotalIva0. All amounts in COP.

Webhook Notifications#

Include the webhooks object in your Init Transaction request to receive real-time disbursement notifications:
{
  "webhooks": [
    {
      "events": ["approvedTransaction", "declinedTransaction"],
      "headers": [
        { "label": "Authorization", "value": "Bearer your-token" }
      ],
      "urls": [
        "https://merchant.example.com/webhooks/cash-out"
      ]
    }
  ]
}
If you already have a Webhook configured in the Console, adding the webhooks object in the API request will trigger both channels simultaneously.

Managing Disbursements#

After a Cash Out is initialized, you can modify or cancel it while it is still in initializedTransaction status:
ActionWhen to use
UpdateAdjust the disbursement amount before the recipient collects the cash
DeleteCancel the disbursement and return the funds to your wallet
Once the recipient collects the cash (approvedTransaction), the transaction can no longer be updated or deleted.

Authentication#

StepHeaderKey type
Request a TokenPublic-Merchant-IdPublic Key (from Kushki Console → Credentials)
Init TransactionPrivate-Merchant-IdPrivate Key
Get StatusPrivate-Merchant-IdPrivate Key
Update TransactionPrivate-Merchant-IdPrivate Key
Delete TransactionPrivate-Merchant-IdPrivate Key
Never expose your Private-Merchant-Id in client-side or frontend code. Token requests using the Public Key can be made from the frontend; all other calls must come from your backend.

Using the API#

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

Available Endpoints#

Request a Cash Out Token
Tokenizes the recipient's data and disbursement amount. Requires Public Merchant ID. Token is valid for 30 minutes and single-use.
Init Transaction
Initializes the cash disbursement and returns the PIN and PDF receipt. Deducts the amount from your wallet balance.
Transaction Status
Retrieves the current status of a Cash Out transaction using its ticketNumber.
Update a Transaction
Updates the disbursement amount of an initialized Cash Out transaction.
Delete a Transaction
Cancels a Cash Out transaction and returns the funds to your wallet.

Got a suggestion on this documentation? Contact us.
Modified at 2026-06-10 17:55:36
Previous
Update a cash in transaction
Next
Request a cash out token
Built with