1. Online Payments
Español
  • English
  • Español
  • Docs de API 🇵🇪
  • Online Payments
    • Errores ISO
    • Errores del API de Kushki
    • Notas de versión
    • Card Payments
      • Solicitar un token de tarjeta
      • Hacer un cargo o cargo diferido
      • Preautorización (sin token)
      • Crear pago (sin token)
      • Anular una transacción
      • Reembolsar una transacción
      • Verificar cuenta
      • Solicitar opciones de diferido
      • Autorizar pagos
      • Reautorizar pagos
      • Capturar un pago autorizado
      • 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
      • Actualizar los datos de la tarjeta del cargo recurrente
      • Hacer un pago One-click
      • 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
    • Card Out
      • Obtener token de Card Payout
      • Obtener token de suscripción
      • Push funds
      • Push Funds en suscripciones
      • Consultar estado de la transacción
      • Eliminar suscripción
    • Transfer In
      • Consultar lista de bancos
      • Solicitar un token de Transfer In
      • Iniciar transacción
      • Consultar estado
    • 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
    • Smartlinks V2
      • Crear un Smartlink
      • Actualizar un Smartlink
      • Consultar un Smartlink
      • Eliminar un Smartlink
    • Analytics
      • Consultar listado de transacciones v2
    • Chargebacks
      • Consultar chargebacks
      • Solicitar exportación de chargebacks
    • Gateway Status
      • Consultar estado del gateway
    • Payment Credentials
      • Crear una credencial
      • Buscar credenciales
      • Búsqueda avanzada
      • Activar o desactivar
      • Eliminar credencial
      • Actualizar credencial
      • Regenerar una credencial
    • Payment Button
      • Crear un Payment Button
    • Platform Status
      • Consultar estado de la plataforma
    • Subscription Transactions
      • Consultar transacciones de suscripción
    • Settlement
      • Consultar liquidación
    • Fraud Report
      • Consultar alertas de fraude
  • Card Present Payments (API Raw)
    • Notas de versión
    • Proceso de intercambio de llaves
    • Datos de prueba
    • Catálogo de errores de Kushki para transacciones POS
    • El objeto Amount
    • One-time Payments
      • Pago único
    • Two-step Payments
      • Autorización y captura
    • Voids & Refunds
      • Reembolsar una transacción
      • Anular y reversar
    • Card information
      • Consultar información de BIN
      • Información de BIN V2
      • Solicitar opciones de diferido
    • Query Transactions
      • Búsqueda de transacciones
    • Webhooks
      • Introducción
      • Buenas prácticas
      • Reembolsos
      • Pagos con tarjeta
      • Revisa tus webhooks
    • Chargebacks
      • Consultar chargebacks
      • Solicitar exportación de chargebacks
    • Fraud Report
      • Consultar alertas de fraude
  • Kushki One
    • Error Catalog
    • Release notes
    • Transaction Examples
    • Webhooks
    • Cloud Services
      • Payment Cloud
        • Sync
          • Charge
          • Authorization (Pre-auth)
          • Capture
          • Re-authorization
          • Post-tip
          • Refund
          • Abort
          • Void
        • Async
          • Charge (Async)
          • Authorization — Pre-auth (Async)
          • Capture (Async)
          • Re-authorization (Async)
          • Post-tip (Async)
          • Void (Async)
        • Search
          • Transaction Search
      • Print Cloud
        • Create Print Job
        • Get Print Job Status
    • Local Services
      • Payment Local
        • 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 Local
        • Create Print Job
        • Get Print Job Status
        • Print Job Webhook (inbound — implemented by your POS)
  • Appian - Submerchant Register
    • Release Notes
    • Submerchant Validation in Batch
    • Query submerchant status by requestId/submerchantId
    • Submerchant Document Upload
    • Get submerchantIds
    • Get credentials for submerchants
  • Schemas
    • Shared
      • ErrorResponse
      • BadRequestResponse
      • InvalidBinResponse
      • payment_method
      • payment_submethod
      • messageFields
      • Channel
    • Amount & Taxes
      • Amount-cash-in
      • GetConfigurationRequest
    • Identity & Contact
      • Shipping Address
    • Card & Payments
      • ChargesVoidCardResponse
      • Promotions
      • Submerchant
    • Subscriptions
      • SubscriptionUpdate
      • SubscriptionAdjustmentRequest
      • SubscriptionTransactionsResponse
    • Webhooks
    • Analytics
      • AnalyticsTransactionItem
      • AnalyticsListResponse
    • Settlement
      • SettlementDateRangeRequest
      • SettlementTicketRequest
      • SettlementResponse
    • Chargebacks
      • ChargebackListResponse
      • ChargebackSearchRequest
    • Cash
      • CashChargeInitRequest
      • CashStatusResponse
    • Transfer
      • TransferTokenRequest
      • TransferInitRequest
      • TransferStatusResponse
    • Payouts
      • PayoutsWebhooksItem
    • Smart Link
      • SmartLinkAmount
    • Terminal
      • TerminalContactDetails
      • TerminalCardDetails
      • TerminalPosDetails
      • TransactionSearchRequest
      • TerminalCardData
    • RequestBodies
      • one-and-two-step-payment
    • card-old
    • AmountWithTaxes-old
    • TransactionResponse
    • PrintJobRequest
    • one-and-two-step-payment
    • Card Present (CP)
    • one-and-two-step-payment1
    • Card
    • amount
    • FraudAlertRequest
    • SettlementDateRangeRequest
    • SubscriptionTransactionsResponse
    • Shipping Address
    • transactionType
    • ChargebackItem-old
    • SubscriptionTransaction
    • amount
    • AmountCore-old
    • CommandText-old
    • Language
    • extra_taxes
    • CommandText
    • RawResponse
    • Card Not Present (CNP)
    • Deferred
    • networkToken
    • FraudAlertResponse
    • ErrorResponse400-old
    • Deferred-old
    • SettlementResponse
    • extra_taxes-old
    • ExtraTaxes-old
    • CommandColumns-old
    • card
    • CommandColumns
    • CardData
    • FraudAlertRecord
    • currency
    • currency
    • ErrorResponse
    • webhooksItem
    • orderDetails-old
    • Country
    • ErrorResponse401-old
    • SettlementRecord
    • pos_details-old
    • ColumnItem-old
    • LinkFailure
    • ColumnItem
    • Amount
    • card_details
    • ValidationError
    • documentType
    • ErrorResponse403-old
    • card_details-old
    • TransactionResponse-old
    • CommandDivider-old
    • enc_tlv
    • CommandDivider
    • TransactionEvent
    • extraTaxes
    • extraTaxes-old
    • payment_method
    • ErrorResponse500-old
    • threeDomainSecure
    • enc_tlv
    • RawResponse-old
    • CommandFeed-old
    • CommandFeed
    • TransactionStatus
    • deferred
    • binInfo
    • contact_details-old
    • CardData-old
    • CommandSpace-old
    • CommandSpace
    • ReadingType
    • pos_details
    • Billing-Address-old
    • deferred-old
    • sub_merchant
    • AmountWithTip-old
    • CommandCut-old
    • metadata
    • sub_merchant
    • CommandCut
    • FailureReason
    • contact_details
    • headers
    • metadata
    • LinkFailure-old
    • CommandImage-old
    • CommandImage
    • EventTerminal
    • Amount-old
    • ContactDetails-old
    • SubscriptionUpdate
    • TransactionSearchRequest-old
    • CommandQR-old
    • orderDetails
    • CommandQR
    • EventOperation
    • Subscription
    • payment_submethod
    • citMit
    • SubscriptionAdjustmentRequest
    • CommandBarcode-old
    • Shipping Address
    • CommandBarcode
    • EventAmount
    • messageFields
    • PrinterError-old
    • Billing Address
    • EventExtraTaxes
    • PrintJobAccepted
    • webhooksChargeback
    • Language
    • PrintJobStatus-old
    • PrinterError
    • EventMetadata
    • networkToken-old
    • PrintWebhookPayload-old
    • AmountWithTaxes
    • PrintJobStatus
    • PrintJobStatusRequest
    • threeDomainSecure
    • webhooks
    • AmountCore
    • webhooks
    • product-old
    • headers
    • PrintWebhookPayload
    • ExtraTaxes
    • Metadata
    • webhooksChargeback
    • UnexpectedErrorResponse-old
    • AmountWithTip
    • citMit
    • TransactionSearchBody
    • TransactionSearchOnlineBody
    • network
    • Card-old-old
    • binInfo
    • AmountWithOptionalTip
    • TransactionSearchLocalBody
    • TransactionEvent_2
    • messageFields
    • Promotions-old
    • UnexpectedErrorResponse
    • FailureReason_2
    • transactionType
    • EventTerminal_2
    • EventOperation_2
    • InvalidBinResponse-old
    • EventAmount_2
    • EventExtraTaxes_2
    • EventMetadata_2
    • currency
    • Amount-CL-old
    • SettlementTicketRequest
    • metadata
    • payment_method
    • currency
    • currency
    • Submerchant
    • Shipping Address
    • GetConfigurationRequest-old
    • BadRequestResponse
    • ContactDetails
    • product
    • TransactionEvent_21
    • TransactionStatus2
    • ReadingType3
    • FailureReason_24
    • EventTerminal_25
    • EventOperation_26
    • EventAmount_27
    • EventMetadata_28
    • EventExtraTaxes_29
    • PrintWebhookPayload10
    • TransactionEvent11
    • FailureReason12
    • EventTerminal13
    • EventOperation14
    • EventAmount15
    • EventMetadata16
    • EventExtraTaxes17
HomePerú 🇵🇪
México 🇲🇽Ecuador 🇪🇨Colombia 🇨🇴Chile 🇨🇱
HomePerú 🇵🇪
México 🇲🇽Ecuador 🇪🇨Colombia 🇨🇴Chile 🇨🇱
  1. Online Payments

Transfer Out

Transfer Out te permite enviar fondos desde tu wallet de Kushki a la cuenta bancaria de un destinatario. Úsalo para dispersiones, pagos a proveedores, reembolsos o cualquier flujo de payout en el que necesites sacar dinero.
¡Ten en cuenta!
La generación del token requiere tu Private Key (Private-Merchant-Id). Nunca la expongas en código de cliente o de frontend: llama siempre al endpoint de token desde tu backend.

Flujo de pago#

1
Obtén la lista de bancos
Llama a GET /payouts/transfer/v1/bankList (o a v2 para metadata extendida) para obtener los bancos de destino disponibles. Usa el valor code como bankId en la solicitud de token.
2
Solicita un token de Transfer Out
Llama a POST /payouts/transfer/v1/tokens con los datos de la cuenta del destinatario y la información del pago. Devuelve un token de un solo uso.
{
  "bankId": "002",
  "accountType": "CC",
  "accountNumber": "1234567890123",
  "currency": "PEN",
  "totalAmount": 500.00,
  "documentType": "DNI",
  "documentNumber": "12345678",
  "name": "Carlos Ramirez",
  "mail": "user@example.com",
  "paymentDescription": "Supplier payment #789"
}
3
Inicia la dispersión
Llama a POST /payouts/transfer/v1/init con el token. La respuesta devuelve un ticketNumber y un transactionReference.
{
  "token": "V0OzRB100000xhxQB8035251pHLBQsq5",
  "fullResponse": "v2"
}
Respuesta:
{
  "status": "INITIALIZED",
  "ticketNumber": "1574298975417951",
  "transactionReference": "aef8884f-cd4d-4b9b-9efa-ad582629e4f2"
}
4
Consulta el estado de la transacción
Llama a GET /payouts/transfer/v1/transaction/{ticketNumber} para verificar que la dispersión se procesó.
Revisa el campo status:
ValorSignificado
INITIALIZEDTransferencia aceptada y en cola para procesarse
APPROVALFondos enviados correctamente al destinatario
DECLINEDTransferencia rechazada
VOIDEDTransferencia anulada antes de procesarse

Monedas#

MonedaCódigo
Sol peruanoPEN
Dólar estadounidenseUSD

Tipos de documento#

ValorDescripción
DNIDocumento Nacional de Identidad 🇵🇪
CECarné de Extranjería 🇵🇪
PASPasaporte 🇵🇪
RUCRegistro Único de Contribuyentes 🇵🇪

Tipos de cuenta#

Perú admite los siguientes tipos de cuenta bancaria para transferencias ACH:
ValorDescripción
CCCuenta Corriente
CACuenta Ahorros
CMCuenta maestra (solo Perú)

Formato del número de cuenta#

CondiciónFormato
BCP (bankId: "002") con CCExactamente 13 dígitos
BCP (bankId: "002") con CAExactamente 14 dígitos
Cualquier otro bancoCCI (Código de Cuenta Interbancaria): exactamente 20 dígitos, sin espacios, guiones ni caracteres especiales

Campos de la solicitud de token#

CampoRequeridoDescripción
bankIdSíCódigo del banco de destino, obtenido del endpoint de lista de bancos.
accountTypeSíTipo de cuenta bancaria: CC, CA o CM.
accountNumberSíNúmero de cuenta bancaria del destinatario. Revisa las reglas de formato de arriba.
currencySíPEN o USD.
totalAmountSíMonto total a dispersar.
documentTypeSíTipo de documento del destinatario.
documentNumberSíNúmero de documento del destinatario.
nameSíNombre completo del destinatario. En Perú no se permiten caracteres especiales.
mailNoCorreo electrónico del destinatario.
paymentDescriptionNoDescripción del pago, que se muestra en el estado de cuenta bancario.

Anular una transferencia#

Para cancelar una transacción de Transfer Out antes de que se procese, llama a:
DELETE /payouts/transfer/v1/transaction/{ticketNumber}
Envía el ticketNumber que devuelve el endpoint de estado. Las anulaciones solo son posibles mientras la transacción está en estado INITIALIZED.

Consulta el saldo del wallet#

Antes de iniciar una dispersión, verifica que tu wallet de Kushki tenga fondos suficientes:
GET /wallet/v1/merchant/balance
Respuesta:
{
  "balanceDate": 1687371952224,
  "currency": "PEN",
  "currentBalance": 717169.22
}

Webhooks#

Incluye un array webhooks en tu solicitud init para recibir notificaciones de estado en tiempo real:
{
  "webhooks": ["https://yoursite.com/kushki/notify"]
}

Lista de bancos: v1 vs v2#

EndpointDescripción
GET /payouts/transfer/v1/bankListDevuelve el code y el name del banco. Úsalo para transferencias ACH estándar.
GET /payouts/transfer/v2/bankListRespuesta extendida con internationalCodes y metadata adicional.

Autenticación#


Uso de la API#

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

Endpoints disponibles#

Obtener lista de bancos
Devuelve la lista de bancos de destino soportados con su code y name.
Obtener lista de bancos V2
Lista de bancos extendida con códigos internacionales y metadata adicional.
Solicitar un token de Transfer Out
Tokeniza la dispersión con los datos de la cuenta del destinatario. Devuelve un token de un solo uso.
Iniciar transacción
Inicia la dispersión por transferencia bancaria. Devuelve un ticket number para el seguimiento.
Consultar estado
Consulta el estado actual de una transacción de Transfer Out por ticket number.
Anular una transacción
Cancela una transacción de Transfer Out antes de que se procese.
Saldo de la wallet
Obtén el saldo disponible actual en tu wallet de payouts de Kushki.

¿Tienes una sugerencia sobre esta documentación? Escríbenos.
Modified at 2026-09-10 20:00:47
Previous
Consultar estado
Next
Consultar lista de bancos
Built with