1. Online Payments
Español
  • English
  • Español
  • Docs de API 🇨🇴
  • Online Payments
    • Errores del API de Kushki
    • Errores ISO
    • Notas de versión
    • Card Payments
      • Solicitar un token de tarjeta
      • Hacer un cargo o cargo diferido
      • Crear pago (sin token)
      • Anular una transacción
      • Reembolsar una transacción
      • Solicitar opciones de diferido
      • Autorizar pagos
      • Preautorización (sin token)
      • Reautorizar pagos
      • Capturar un pago autorizado
      • Verificar cuenta
      • Validar OTP
      • Información de BIN
      • Información de BIN V2
    • One-Click & Scheduled Payments
      • Solicitar un token de cargo recurrente
      • Crear un cargo recurrente
      • Hacer un pago One-click
      • Actualizar los datos de la tarjeta del cargo recurrente
      • Cancelar un cargo recurrente
      • Actualizar un cargo recurrente
      • Agregar un cargo o descuento temporal
      • Autorizar pagos
      • Capturar un pago autorizado
      • Consultar información del cargo recurrente
    • Chargebacks
      • Consultar chargebacks
      • Solicitar exportación de chargebacks
    • Transfer in
      • Consultar lista de bancos
      • Solicitar un token de Transfer In
      • Iniciar transacción
      • Consultar estado
      • Cancelar transacción
    • Transfer out
      • Consultar lista de bancos
      • Consultar lista de bancos V2
      • Solicitar un token de Transfer Out
      • Iniciar transacción
      • Consultar estado
      • Saldo para payouts
    • Cash in
      • Solicitar un token de Cash In
      • Iniciar transacción
      • Estado de la transacción
      • Eliminar una transacción de Cash In
      • Actualizar una transacción de Cash In
    • Cash-out
      • Solicitar un token de Cash Out
      • Iniciar transacción
      • Estado de la transacción
      • Actualizar una transacción de Cash Out
      • Eliminar una transacción de Cash Out
    • Smartlinks-v2
      • Crear un Smartlink
      • Consultar un Smartlink
      • Actualizar un Smartlink
      • Eliminar un Smartlink
    • Analytics
      • Consultar listado de transacciones v2
    • Gateway-status
      • Consultar estado del gateway
      • Consultar estado de la plataforma
    • Payment Credentials
      • Crear una credencial
      • Buscar credenciales
      • Búsqueda avanzada
      • Eliminar credencial
      • Regenerar una credencial
      • Activar o desactivar
      • Actualizar credencial
    • Payment Button
      • Crear un Payment Button
    • Settlement
      • Consultar liquidación
    • Subscription Transactions
      • Consultar transacciones de suscripción
    • Fraud Report
      • Consultar alertas de fraude
  • Kushki One
    • Error Catalog
    • Release notes
    • Transaction Examples
    • Webhooks
    • Cloud Services
      • Payment
        • 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)
        • Search
          • Transaction Search
      • Print
        • Create Print Job
        • Get Print Job Status
    • Local Services
      • Payment
        • 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)
          • Abort (Async)
        • Search
          • 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
    • Notas de versión
    • Catálogo de errores
    • El objeto Amount
    • Proceso de intercambio de llaves
    • Datos de prueba
    • One-time Payments
      • Pago único
    • Two-step Payments
      • Autorización y captura
    • Card Information
      • Consultar información de BIN
      • Información de BIN V2
      • Solicitar opciones de diferido
    • Voids & Refunds
      • Anular y reversar
      • Reembolsar una transacción
    • Query Transactions
      • Búsqueda de transacciones
    • Webhooks
      • Introducción
      • Buenas prácticas
      • Webhooks-Pagos con tarjeta
      • Webhooks-Reembolsos
      • Revisa tus webhooks
    • Chargebacks
      • Consultar chargebacks
      • Solicitar exportación de chargebacks
    • Fraud Report
      • Consultar alertas de fraude
  • Appian - Submerchant Register
    • Release Notes
    • Submerchant Validation in Batch
    • Query submerchant status by requestId/submerchantId
    • Get submerchantIds
    • Get credentials for submerchants
  • Schemas
    • RequestBodies
      • one-and-two-step-payment
    • Card
    • Channel
    • ChargebackListResponse
    • TransactionResponse
    • PrintJobRequest
    • card
    • one-and-two-step-payment-3
    • Card Present (CP)
    • one-and-two-step-payment-3
    • SubscriptionTransactionsResponse
    • Amount-cash-in
    • SettlementDateRangeRequest
    • amount
    • FraudAlertRequest
    • SubscriptionTransaction
    • ChargebackItem
    • SettlementRecord
    • RawResponse
    • CommandText
    • Card Not Present (CNP)
    • networkToken
    • FraudAlertResponse
    • ErrorResponse400
    • CardData
    • CommandColumns
    • extra_taxes
    • FraudAlertRecord
    • ErrorResponse
    • currency
    • Deferred
    • webhooksItem
    • SettlementResponse
    • ErrorResponse401
    • LinkFailure
    • ColumnItem
    • Amount
    • ValidationError
    • pos_details
    • ErrorResponse403
    • CommandDivider
    • enc_tlv
    • TransactionEvent
    • extraTaxes
    • card_details
    • Country
    • payment_method
    • ErrorResponse500
    • CommandFeed
    • TransactionStatus
    • deferred
    • CommandSpace
    • ReadingType
    • contact_details
    • ContactDetails
    • CommandCut
    • sub_merchant
    • FailureReason
    • CommandImage
    • metadata
    • EventTerminal
    • documentType
    • Subscription
    • orderDetails
    • Language
    • TransactionSearchRequest
    • CommandQR
    • EventOperation
    • Shipping Address
    • payment_submethod
    • CommandBarcode
    • EventAmount
    • Billing-Address
    • EventExtraTaxes
    • PrintJobAccepted
    • PrinterError
    • EventMetadata
    • SubscriptionUpdate
    • AmountWithTaxes
    • PrintJobStatus
    • PrintJobStatusRequest
    • threeDomainSecure
    • SubscriptionAdjustmentRequest
    • AmountCore
    • product
    • webhooks
    • headers
    • ExtraTaxes
    • PrintWebhookPayload
    • Metadata
    • webhooksChargeback
    • AmountWithTip
    • citMit
    • TransactionSearchBody
    • TransactionSearchOnlineBody
    • network
    • binInfo
    • AmountWithOptionalTip
    • TransactionSearchLocalBody
    • TransactionEvent_2
    • messageFields
    • UnexpectedErrorResponse
    • FailureReason_2
    • transactionType
    • ExternalReferenceId
    • EventTerminal_2
    • ExternalSubscriptionId
    • EventOperation_2
    • EventAmount_2
    • EventExtraTaxes_2
    • EventMetadata_2
    • SettlementTicketRequest
    • ErrorResponse
    • TransactionEvent_23
    • TransactionStatus4
    • ReadingType5
    • FailureReason_26
    • EventTerminal_27
    • EventOperation_28
    • EventAmount_29
    • EventMetadata_210
    • EventExtraTaxes_211
    • PrintWebhookPayload12
    • TransactionEvent13
    • FailureReason14
    • EventTerminal15
    • EventOperation16
    • EventAmount17
    • EventMetadata18
    • EventExtraTaxes19
HomePerú 🇵🇪México 🇲🇽Ecuador 🇪🇨Colombia 🇨🇴
Chile 🇨🇱
HomePerú 🇵🇪México 🇲🇽Ecuador 🇪🇨Colombia 🇨🇴
Chile 🇨🇱
  1. Online Payments

Cash-out

Cash-out te permite enviar dinero que los destinatarios retiran en efectivo en miles de puntos físicos de toda Colombia, sin necesidad de cuenta bancaria. El destinatario recibe un PIN que presenta en cualquier punto de pago afiliado para retirar los fondos.
¡Ten en cuenta!
Por nuestras políticas de riesgo, los métodos de pago disponibles y el tipo de integración pueden variar una vez que completes la afiliación. Te indicaremos cómo proceder si este proceso aplica a tu comercio.
Necesitas saldo en tu wallet
Las transacciones de Cash-out se debitan del saldo de tu wallet de dispersión de Kushki. Asegúrate de tener saldo suficiente antes de iniciar un Cash-out.

Flujo de pago#

Una dispersión con Cash-out tiene 3 pasos: tokenización, inicialización (entrega del PIN) y confirmación.
Solicitar un token de Cash Out
Tu backend llama al endpoint de token con tu Public Merchant ID y envía los datos de identificación del destinatario y el monto de la dispersión.
Reglas del token: los tokens expiran en 30 minutos y son de un solo uso. Solicita uno nuevo si la transacción falla o si el token expira.
Campos obligatorios:
CampoDescripción
nameNombre del destinatario
lastNameApellido del destinatario
documentNumberNúmero de documento del destinatario
totalAmountMonto a dispersar
currencySiempre COP para Colombia
Campos opcionales:
CampoDescripción
documentTypeCC, NIT, CE, TI o PP (por defecto, CC)
emailCorreo electrónico del destinatario
phoneNumberTeléfono del destinatario (por ejemplo, +573912345678)
descriptionDescripción interna del pago
Tipos de documento aceptados en Colombia:
ValorDocumento
CCCédula de Ciudadanía 🇨🇴
NITNúmero de Identificación Tributaria 🇨🇴
CECédula de Extranjería 🇨🇴
TITarjeta de Identidad 🇨🇴
PPPasaporte 🇨🇴
Init Transaction
Con tu Private Merchant ID, llama al endpoint Init Transaction con el token y el objeto amount. Kushki valida el token, debita el saldo de tu wallet y devuelve:
Un PIN (pin): el código de retiro en efectivo que compartes con el destinatario.
La URL del comprobante en PDF (pdfUrl): comprobante imprimible.
Un ticketNumber para hacer seguimiento y gestionar la dispersión.
Campos obligatorios:
CampoDescripción
tokenToken del paso anterior
amountObjeto con subtotalIva, subtotalIva0, iva y currency
Campos opcionales:
CampoDescripción
expirationDateFecha de expiración del PIN (YYYY-MM-DD HH:mm:ss, UTC). Si la omites, expira a los 7 días.
metadataPares clave-valor propios para tus registros internos
webhooksConfiguración de notificaciones en tiempo real
El destinatario retira el efectivo
Comparte el PIN con el destinatario. Va a cualquier punto de pago afiliado, presenta su documento y el PIN, y retira el efectivo.
Este paso ocurre por completo del lado del destinatario: no requiere ninguna acción en tu backend.
Consulta el estado de la transacción
Llama al endpoint Transaction Status con el ticketNumber para confirmar si el efectivo se retiró.
Estados posibles:
EstadoSignificado
initializedTransactionPIN generado: en espera del retiro en efectivo
approvedTransactionEfectivo retirado por el destinatario
expiredTransactionPIN expirado sin retiro

Objeto amount#

El objeto amount es obligatorio en la solicitud de Init Transaction.
Sin impuestos (IVA 0)
Con IVA
{
  "amount": {
    "subtotalIva": 0,
    "subtotalIva0": 50000,
    "iva": 0,
    "currency": "COP"
  }
}
Envía el monto completo en subtotalIva0. Todos los montos en COP.

Notificaciones por Webhook#

Incluye el objeto webhooks en tu solicitud de Init Transaction para recibir notificaciones de dispersión en tiempo real:
{
  "webhooks": [
    {
      "events": ["approvedTransaction", "declinedTransaction"],
      "headers": [
        { "label": "Authorization", "value": "Bearer your-token" }
      ],
      "urls": [
        "https://merchant.example.com/webhooks/cash-out"
      ]
    }
  ]
}
Si ya tienes un Webhook configurado en la Console, agregar el objeto webhooks en la solicitud del API dispara ambos canales a la vez.

Gestión de dispersiones#

Una vez inicializado un Cash-out, puedes modificarlo o cancelarlo mientras siga en estado initializedTransaction:
AcciónCuándo usarla
UpdateAjusta el monto de la dispersión antes de que el destinatario retire el efectivo
DeleteCancela la dispersión y devuelve los fondos a tu wallet
Una vez que el destinatario retira el efectivo (approvedTransaction), la transacción ya no se puede actualizar ni eliminar.

Autenticación#

PasoCabeceraTipo de llave
Request a TokenPublic-Merchant-IdPublic Key (desde Kushki Console → Credentials)
Init TransactionPrivate-Merchant-IdPrivate Key
Get StatusPrivate-Merchant-IdPrivate Key
Update TransactionPrivate-Merchant-IdPrivate Key
Delete TransactionPrivate-Merchant-IdPrivate Key
Nunca expongas tu Private-Merchant-Id en código de cliente o frontend. Las solicitudes de token con la Public Key se pueden hacer desde el frontend; todas las demás llamadas deben salir de tu backend.

Uso del API#

🟢 Producción
🧪 Sandbox (UAT)
https://api.kushkipagos.com/

Endpoints disponibles#

Solicitar un token de Cash Out
Tokeniza los datos del destinatario y el monto de la dispersión. Requiere Public Merchant ID. El token vale 30 minutos y es de un solo uso.
Iniciar transacción
Inicializa la dispersión en efectivo y devuelve el PIN y el comprobante en PDF. Debita el monto del saldo de tu wallet.
Estado de la transacción
Consulta el estado actual de una transacción de Cash-out con su ticketNumber.
Actualizar una transacción
Actualiza el monto de la dispersión de una transacción de Cash-out ya inicializada.
Eliminar una transacción
Cancela una transacción de Cash-out y devuelve los fondos a tu wallet.

¿Tienes una sugerencia sobre esta documentación? Contáctanos.
Modified at 2026-09-11 14:48:40
Previous
Actualizar una transacción de Cash In
Next
Solicitar un token de Cash Out
Built with