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 in

Cash in permite que tus clientes paguen en efectivo en miles de puntos físicos de toda Colombia, sin necesidad de cuenta bancaria ni tarjeta. El cliente recibe un PIN (número de referencia de pago) que presenta en cualquier punto de pago afiliado para completar la transacción.
¡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.

Flujo de pago#

Un pago con Cash in tiene 3 pasos: tokenización, inicialización (entrega del PIN) y confirmación.
Solicitar un token de Cash In
Tu backend llama al endpoint de token con tu Public Merchant ID y envía los datos de identificación del cliente y el monto del pago.
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 cliente
lastNameApellido del cliente
identificationNúmero de documento del cliente
documentTypeVer los tipos de documento más abajo
totalAmountMonto total a cobrar
currencySiempre COP para Colombia
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. Kushki valida el token y devuelve:
Un PIN (pin): el número de referencia que el cliente presenta en el punto de pago.
La URL del comprobante en PDF (pdfUrl): comprobante imprimible para entregar al cliente.
Un objeto agreementDetails con todos los puntos de pago disponibles y sus números de convenio.
Un ticketNumber para hacer seguimiento a la transacción.
Campos opcionales:
CampoDescripción
expirationDateFecha de expiración del PIN (YYYY-MM-DD HH:mm:ss, UTC). Debe ser al menos 1 día después de la creación. Por defecto, 7 días.
amountDesglose con subtotalIva, subtotalIva0, iva y, opcionalmente, extraTaxes
webhooksConfiguración de notificaciones en tiempo real
fullResponseEnvíalo en "v2" para recibir el objeto details completo en la respuesta
metadataPares clave-valor propios para tu uso interno
Puntos de pago disponibles en Colombia:
El objeto agreementDetails de la respuesta lista las redes de recaudo activas. Las redes típicas en Colombia son:
RedProcesador
BalotoBancoBogota
CarullaBancoBogota
EfectyPayvalida
BancolombiaPayvalida
El cliente paga en un punto de pago
Comparte el PIN y el comprobante con tu cliente. Va a cualquier punto de pago afiliado y presenta el PIN para completar el pago en efectivo.
Este paso ocurre por completo del lado del cliente: 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 pago se completó.
Estados posibles:
EstadoSignificado
initializedTransactionPIN generado: en espera del pago en el punto de recaudo
approvedTransactionPago en efectivo recibido y confirmado
expiredTransactionPIN expirado sin pago

Objeto amount#

El objeto amount es opcional en la solicitud de Init Transaction. Si lo omites, se usa el monto de la solicitud del token.
Con IVA
Sin impuestos (IVA 0)
Con impuestos adicionales
{
  "amount": {
    "subtotalIva": 42017,
    "subtotalIva0": 0,
    "iva": 7983
  }
}
Envía en subtotalIva la base gravable y en iva el valor del impuesto. Todos los montos en COP.

Notificaciones por Webhook#

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

Pruebas en Sandbox#

En el ambiente UAT puedes simular el flujo completo de Cash in con números de identificación específicos:
EscenarioValor de identification
✅ Transacción exitosaCualquier número válido
⏳ Inicializada (pendiente)9999999999
❌ Transacción declinada1000000000

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 In
Tokeniza los datos del cliente y el monto del pago. Requiere Public Merchant ID. El token vale 30 minutos y es de un solo uso.
Iniciar transacción
Inicializa el pago en efectivo y devuelve el PIN, la URL del comprobante en PDF y los puntos de pago disponibles.
Estado de la transacción
Consulta el estado actual de una transacción de Cash in con su ticketNumber.
Actualizar una transacción
Actualiza el monto de una transacción de Cash in existente antes de que el cliente pague.
Eliminar una transacción
Cancela una transacción de Cash in e invalida el PIN.

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