1. Card 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
        POST
      • Hacer un cargo o cargo diferido
        POST
      • Preautorización (sin token)
        POST
      • Crear pago (sin token)
        POST
      • Anular una transacción
        DELETE
      • Reembolsar una transacción
        DELETE
      • Verificar cuenta
        POST
      • Solicitar opciones de diferido
        GET
      • Autorizar pagos
        POST
      • Reautorizar pagos
        POST
      • Capturar un pago autorizado
        POST
      • Validar OTP
        POST
      • Información de BIN
        GET
      • Información de BIN V2
        GET
    • 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. Card Payments

Solicitar un token de tarjeta

https://api-uat.kushkipagos.com
https://api-uat.kushkipagos.com
POST
/card/v1/tokens
Solicita un token de tarjeta que luego puedes usar para hacer un cargo a un cliente con el endpoint charge.
Importante a considerar: Si usas esta opción para solicitar el token, asegúrate de cumplir con todos los requisitos PCI para manejar datos de tarjeta en tus servidores.

Expiración del token#

Los tokens expiran en 30 minutos y solo pueden usarse para una única transacción (incluso si la transacción salió mal). Cuando expire, deberás solicitar uno nuevo.
Nota: El token que entrega Kushki solo cifra y envía información. Si quieres guardar la información de la tarjeta para compras futuras, ve a la sección One-Click & Scheduled Payments.

Transacciones recurrentes*#

Envía el parámetro transactionMode para solicitar un token de cargo recurrente que luego puedas usar para crear un cargo recurrente, así:
initialRecurrence: El comercio debe generar un token enviando la información completa de la tarjeta (número, fecha de expiración, cvv, etc.) para registrarla. Se devolverá un token para continuar con el pago.
subsequentRecurrence: El comercio puede generar un token enviando los datos de la tarjeta que ya envió con un initialRecurrence; así puede omitir el ingreso del CVV y hacer un cargo después con el flujo actual.
NOTA: Si quieres procesar un cargo recurrente con un motor externo, debes omitir el envío del CVV.

¿Quieres validar una cuenta?*#

Envía el parámetro transactionMode con el valor accountValidation para solicitar un token de validación de cuenta que luego puedas usar para verificar una cuenta con el endpoint card/v1/validation. Asegúrate de poner totalAmount en 0.

Autenticación 3D Secure (3DS)*#

Para autenticar una tarjeta con 3D Secure, además de la información necesaria para generar un token, debes enviar los campos que se listan abajo
PROPIEDADVALORES POSIBLESDESCRIPCIÓN
authValidationurl iframeDefine el tipo de integración que quieres para la autenticación 3DS. Usa url para redirección o iframe para incrustarla.
callbackUrlstringCallback donde se enviará la respuesta de la autenticación 3D Secure.
Si la transacción activa una regla de autenticación 3D Secure en el comercio, además del token se devolverán los campos que se listan abajo
PROPIEDADVALORES POSIBLESDESCRIPCIÓN
urlstringURL que se debe usar para la autenticación 3D Secure.
secureService3dsecureIndica el servicio de autenticación de la transacción.
secureIdstringID de seguridad de la transacción.
Ejemplo
{
    "token": "sBkQ7F110000tI1HVq116862fd5Ah3mG",
    "url": "https://uat-auth.kushkipagos.com?token=sBkQ7F110000tI1HVq116862fd5Ah3mG&merchantId=306cb10581bb4acb9a2bfc77e163c482&bin=NDM0OTAwMzA=&callbackUrl=https://www.kushkipagos.com/callback/&isSandbox=false",
    "secureService": "3dsecure",
    "secureId": "1f5584db-0c5b-c729-a19c-6eb0283ca448"
}
En el campo url vendrá la url que deberás mostrar al tarjetahabiente para la autenticación 3D Secure, si es necesario. Para más detalle, revisa la guía 3D Secure API authentication.
Para más información sobre 3D Secure, revisa Accept payments with 3DS.
NOTA: Para habilitar 3DS en modo de pruebas en tu comercio, se requiere una configuración adicional por parte de Kushki.

callbackUrl#

La función de callback te indicará si la autenticación 3D Secure fue exitosa o si hubo algún problema durante el proceso. Esta url se llamará automáticamente después de autenticar, mediante una redirección 301 y una petición GET a la url enviada en el campo callbackUrl, enviando los parámetros de la respuesta en la url (path parameters).
Nota: El parámetro booleano success indica si la transacción se autenticó correctamente (true) o si hubo un problema con la autenticación 3D Secure (false). Si es true, puedes continuar con el cargo. Si es false, el tarjetahabiente tendrá hasta 3 intentos para reintentar la autenticación antes de que la transacción sea declinada.
PROPIEDADTIPODESCRIPCIÓN
successbooleanIndica si la autenticación 3D Secure fue exitosa o no.
tokenstringToken que devuelve Kushki para usarlo al hacer el cargo si la autenticación 3D Secure fue exitosa.
messagestringSi hay un problema durante la autenticación, aquí se devolverá el motivo.
Ejemplo de callback con autenticación exitosa#
https://www.tutienda.com/?success=true&token=cfa0bfec88324bd7a5c6c1ad9135a846
Ejemplo de callback con problema de autenticación#
https://www.tutienda.com/?success=false&message=Error%20en%20la%20validación%20de%203DS&token=cfa0bfec88324bd7a5c6c1ad9135a846

Request

Header Params

Body Params application/json

Examples

Responses

🟢201Created
application/json
TokenCreated
Bodyapplication/json

🟠400Bad Request
🟠402
🔴500Server Error
Request Request Example
Shell
JavaScript
Java
Swift
cURL
curl --location '/card/v1/tokens' \
--header 'Public-Merchant-Id;' \
--header 'Content-Type: application/json' \
--data '{
    "card": {
        "name": "John Doe",
        "number": "5451951574925480",
        "expiryMonth": "08",
        "expiryYear": "28",
        "cvv": "121"
    },
    "totalAmount": 16.98,
    "currency": "PEN"
}'
Response Response Example
201 - Successful request
{
    "token": "3c1518cf6f844e248880aad6187cf8d7"
}
Modified at 2026-09-11 14:52:43
Previous
Card Payments
Next
Hacer un cargo o cargo diferido
Built with