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

Transfer Out

Transfer Out te permite dispersar fondos de forma programática, enviando dinero directamente a la cuenta bancaria de un destinatario con el saldo de tu wallet de Kushki. En Colombia 🇨🇴 se soportan dos modos de transferencia: ACH (transferencias estándar a cuenta bancaria) y Bre-B (transferencias instantáneas por llave de pago).
¡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 completes la afiliación. Te indicaremos cómo proceder si este proceso aplica a tu comercio.

Modos de transferencia#

ACH (cuenta bancaria)
Bre-B (llave de pago)
Transferencias bancarias estándar. Requiere el número de cuenta bancaria del destinatario (accountNumber), el tipo de cuenta (CC o CA) y el bankId. Usa el endpoint Get Bank List para obtener los bancos disponibles.

Flujo de pago#

Un Transfer Out en Colombia consta de 4 pasos secuenciales: obtener la lista de bancos (solo ACH), tokenización, inicialización y confirmación del estado.
Obtén la lista de bancos
Obligatorio solo para las transferencias ACH. Llama al endpoint Get Bank List con tu Public Merchant ID para obtener la lista de bancos de destino disponibles.
Muéstrale la lista al operador y guarda el code que elija: lo enviarás como bankId en la solicitud del token.
En las transferencias Bre-B este paso no es necesario: no existe el campo bankId.
Hay dos versiones disponibles:
EndpointNotas
Get Bank List v1Lista de bancos básica
Get Bank List v2Lista de bancos ampliada: recomendada
Solicita un token de Transfer Out
Llama al endpoint del token con tu Public Merchant ID. Incluye los datos del destinatario, el monto y los campos del modo de transferencia.
Reglas del token: los tokens expiran en 30 minutos y son de un solo uso. Si la transacción falla o el token expira, solicita uno nuevo.
Campos obligatorios para Colombia:
CampoACH (CC/CA)Bre-B (KI/KP/KE/KA/KM)
accountType✅ Obligatorio✅ Obligatorio
accountNumber✅ Obligatorio✅ Obligatorio
totalAmount✅ Obligatorio✅ Obligatorio
currency✅ Obligatorio (COP)✅ Obligatorio (COP)
documentType✅ ObligatorioOpcional
documentNumber✅ ObligatorioOpcional
bankId✅ ObligatorioNo se requiere
name✅ ObligatorioOpcional
Tipos de cuenta para Colombia:
ValorModoDescripción
CCACHCuenta Corriente
CAACHCuenta Ahorros
KIBre-BNúmero de identificación nacional
KPBre-BNúmero de celular
KEBre-BCorreo electrónico
KABre-BAlias alfanumérico
KMBre-BCódigo de comercio
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 🇨🇴
Inicia la transacción
Con tu Private Merchant ID, llama al endpoint Init Transaction con el token del paso anterior. Kushki valida el token y devuelve un ticketNumber junto con el estado de la transacción.
Opcionalmente puedes incluir un objeto webhooks en esta solicitud para recibir notificaciones en tiempo real: revisa la sección Webhook Notifications de más abajo.
Campos de la respuesta:
CampoDescripción
ticketNumberIdentificador único de la transacción. Úsalo para consultar el estado y para las anulaciones.
statusEstado inicial de la transacción
detailsDetalles de la transacción, incluido keyResolution en las transferencias Bre-B
keyResolutionSolo Bre-B: datos del destinatario resueltos (nombre del titular, banco, tipo de cuenta)
Consulta el estado de la transacción
Llama al endpoint Get Status usando el ticketNumber como parámetro de ruta para confirmar el resultado final.
Estados posibles:
EstadoSignificado
INITIALIZEDLa transacción se creó pero aún no se procesa
APPROVALLa transferencia se completó con éxito
DECLINEDLa transferencia fue rechazada
Una transacción en estado INITIALIZED se puede anular con el endpoint Void.

Notificaciones por webhook#

Incluye el objeto webhooks en tu solicitud de Init Transaction para recibir notificaciones en tiempo real:
{
  "webhooks": [
    {
      "events": ["approvedTransaction", "declinedTransaction"],
      "headers": [
        { "label": "Authorization", "value": "Bearer your-token" }
      ],
      "urls": [
        "https://merchant.example.com/webhooks/transfer-out"
      ]
    }
  ]
}
Si ya tienes un webhook configurado en la Console, agregar el objeto webhooks en la solicitud de la API dispara los dos canales al mismo tiempo.

Saldo del wallet#

Antes de iniciar dispersiones, puedes consultar el saldo actual de tu wallet de Kushki con el endpoint Balance for Payouts.
La respuesta devuelve tu currentBalance (en COP) y el timestamp balanceDate de la última actualización.

Autenticación#

Cada paso usa una credencial distinta:
PasoCabeceraTipo de llave
Get Bank ListPublic-Merchant-IdPublic Key
Solicitar un tokenPublic-Merchant-IdPublic Key
Init TransactionPrivate-Merchant-IdPrivate Key
Get StatusPrivate-Merchant-IdPrivate Key
VoidPrivate-Merchant-IdPrivate Key
Balance for PayoutsPrivate-Merchant-IdPrivate Key
Nunca expongas tu Private-Merchant-Id en código del cliente ni del frontend. Las solicitudes de token y las llamadas a la lista de bancos que usan la Public Key se pueden hacer desde el frontend; todas las demás deben salir de tu backend.

Uso de la API#

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

Endpoints disponibles#

Obtener lista de bancos
Obtén la lista de bancos de destino disponibles. Obligatorio para las transferencias ACH. Usa v2 para la mejor experiencia.
Obtener lista de bancos V2
Endpoint de lista de bancos ampliada. Recomendado.
Solicitar un token de Transfer Out
Tokeniza los datos del destinatario y el monto. Soporta los modos ACH y Bre-B. El token es válido 30 minutos y de un solo uso.
Iniciar transacción
Inicia la dispersión con el token. Devuelve un ticketNumber para hacer seguimiento del estado.
Consultar estado
Consulta el estado actual de una transacción de Transfer Out con su ticketNumber.
Saldo para dispersiones
Devuelve el saldo disponible actual en tu wallet de dispersión de Kushki.

¿Tienes una sugerencia sobre esta documentación? Contáctanos.
Modified at 2026-09-11 14:48:31
Previous
Cancelar transacción
Next
Consultar lista de bancos
Built with