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

Cash In

Cash In permite que tus clientes paguen en efectivo en un punto de una red de recaudo física (por ejemplo, Payvalida). Kushki genera un código PIN que el cliente presenta en el punto de recaudo. Una vez pagado, recibes una notificación por webhook y puedes confirmar el estado con el endpoint Transaction Status.
¡Ten en cuenta!
La generación del token requiere tu Private Key (Private-Merchant-Id). Nunca la expongas en código de cliente o frontend: llama siempre al endpoint del token desde tu backend.

Cómo funciona#

1
Solicita un token de Cash In
Llama a POST /cash/v1/tokens con los datos personales del cliente y el monto total. Kushki devuelve un token de un solo uso que expira en 30 minutos.
{
  "name": "Carlos",
  "lastName": "Ramirez",
  "identification": "12345678",
  "documentType": "DNI",
  "email": "user@example.com",
  "totalAmount": 500,
  "currency": "PEN",
  "description": "Order #1234"
}
Respuesta:
{
  "token": "b209ff69ae02be9bc0e58dee225fd8f5"
}
2
Inicializa la transacción
Llama a POST /cash/v1/charges/init con el token y el desglose del monto. Kushki devuelve un PIN que el cliente usa para pagar en el punto de recaudo, además de la URL del comprobante.
{
  "token": "b209ff69ae02be9bc0e58dee225fd8f5",
  "amount": {
    "currency": "PEN",
    "subtotalIva": 0,
    "subtotalIva0": 500,
    "iva": 0,
    "ice": 0
  },
  "expirationDate": "2026-06-10 00:00:00",
  "fullResponse": "v2"
}
Respuesta:
{
  "pin": "7929926379",
  "ticketNumber": "193222411482",
  "transactionReference": "fa3cb92f-f53f-46e8-a9f9-0c40e9ae2df2",
  "pdfUrl": "https://api.kushkipagos.com/cash/v1/charges/193222411482/receipt"
}
Comparte el pin y el pdfUrl (comprobante) con tu cliente. El PIN es válido hasta expirationDate (7 días por defecto; máximo 15 días en Perú).
3
El cliente paga en el punto de recaudo
El cliente visita un punto de la red de recaudo participante y paga con el PIN. No necesitas hacer nada de tu lado: Kushki te notifica por webhook cuando el pago se confirma.
4
Verifica el estado de la transacción
Llama a GET /cash/v1/status/{ticketNumber} para confirmar el estado final de la transacción.
{
  "ticketNumber": "2347529752172881",
  "status": "approvedTransaction",
  "totalAmount": 500,
  "currency": "PEN",
  "merchantName": "Mi Comercio Perú",
  "name": "Carlos",
  "lastName": "Ramirez",
  "documentType": "DNI",
  "identification": "12345678",
  "pin": "7929926379"
}

Campos de la solicitud del token#

CampoRequeridoDescripción
nameSíNombre del cliente.
lastNameSíApellido del cliente.
identificationSíNúmero de documento del cliente.
documentTypeSíDNI, CE, PAS o RUC.
totalAmountSíMonto total a recaudar.
currencySíPEN o USD.
emailNoCorreo electrónico del cliente.
descriptionNoDescripción del pago.

Campos de la solicitud de Init Transaction#

CampoRequeridoDescripción
tokenSíToken de un solo uso devuelto por el endpoint del token.
amountSíObjeto de monto: consulta Desglose del monto.
expirationDateNoFecha de expiración del PIN en YYYY-MM-DD HH:mm:ss (UTC). Debe ser al menos un día después de la creación. Por defecto: 7 días; máximo 15 días en Perú.
webhooksNoArreglo de URLs a notificar cuando el cliente pague.
fullResponseNoEnvía "v2" para obtener el detalle completo de la transacción en la respuesta.
metadataNoPares clave-valor personalizados para tu propio seguimiento.

Desglose del monto#

{
  "currency": "PEN",
  "subtotalIva": 0,
  "subtotalIva0": 500,
  "iva": 0,
  "ice": 0
}
CampoRequeridoDescripción
currencySíPEN o USD.
subtotalIvaSíSubtotal afecto a IGV. Envía 0 si no aplican impuestos.
subtotalIva0SíSubtotal no afecto a IGV (monto exonerado).
ivaSíMonto de IGV. Envía 0 si no aplican impuestos.
iceSíICE (Impuesto a Consumos Especiales). Envía 0 si no aplica.

Tipos de documento#

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

Webhooks#

Incluye un arreglo webhooks en tu solicitud de init para recibir una notificación cuando el cliente complete el pago:
{
  "webhooks": ["https://yoursite.com/kushki/notify"]
}

Pruebas en Sandbox#

Usa los siguientes valores de identification para simular distintos resultados de transacción:
identificationResultado simulado
Cualquier valor válidoTransacción exitosa
9999999999Inicializada (pago pendiente)
1000000000Transacción declinada

Autenticación#


Uso de la API#

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

Endpoints disponibles#

Solicitar un token de Cash In
Genera un token de un solo uso con los datos del cliente y el monto total. El token expira en 30 minutos.
Iniciar transacción
Inicia la transacción en efectivo. Devuelve el PIN para que el cliente pague en el punto de recaudo y la URL del comprobante en PDF.
Consultar el estado de la transacción
Consulta el estado actual de una transacción en efectivo por número de ticket.

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