1. Card Present Payments (API Raw)
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. Card Present Payments (API Raw)

Proceso de intercambio de llaves

Beta
Producto en versión beta 🔐
Estamos trabajando en nuestra versión beta. ¡Mantente al tanto de su lanzamiento oficial! También puedes contactar a tu ejecutivo de cuenta para más información.
Para obtener las llaves criptográficas de trabajo que se usarán en el proceso derived unique key per transaction (DUKPT), Kushki y el cliente realizan las actividades que se detallan a continuación:

Acuerdos y condiciones iniciales#

Existe una sesión entre Kushki y el comercio donde se revisan las condiciones para el intercambio de llaves con terceros. Este proceso requiere que el proveedor de HSM del comercio acepte los términos de la ceremonia de intercambio de llaves. Si hay acuerdo, se establecen los mecanismos de trabajo y los canales seguros para intercambiar información sensible entre Kushki y el comercio, además de definir al menos dos security officers (SOs) por parte del comercio.
NOTA: El comercio debe contar con un hardware security module (HSM) debido al proceso de intercambio de llaves criptográficas.

Condiciones de terceros:#

El comercio debe estar preparado para intercambiar componentes con el proveedor de HSM en representación de Kushki. Estos son los pasos a seguir:
Firmar el NDA del proveedor de HSM de Kushki y tener acceso al portal;
Crear y mantener los SOs con datos de contacto correctos y los grupos de SOs en el portal;
Estar preparado para seguir el proceso de intercambio de llaves definido en esta documentación.

Solicitud y validación de la documentación requerida#

Kushki solicita la documentación requerida para registrar al comercio en el servicio de HSM en nombre de Kushki y para registrarlo en la Kushki Console. Una vez obtenida la documentación solicitada, el proceso continúa.
Kushki recibe y valida la documentación solicitada.

Generación y envío de los componentes de una Key Encryption Key (KEK)#

Kushki genera y envía tres componentes de llave para la key encryption key (KEK), junto con su respectivo Key Checksum Value (KCV) para la suma de verificación de cada llave criptográfica, por los medios seguros establecidos arriba a los security officers definidos previamente. Al solicitar el envío de los componentes, los SOs que reciben los componentes recibirán un correo con lo siguiente:
Información de referencia de la llave
Datos de contacto (sin incluir la dirección) del SO remitente correspondiente
Los detalles del envío y el número de serie de la bolsa tamper-evident
Un link a la página del Portal donde se debe completar el checklist tras la recepción
NOTA: Según el ambiente de trabajo, Kushki puede enviar las KEK de forma electrónica o física.
Para que Kushki realice el intercambio de llaves, los custodios de seguridad (SOs) deben:
Estar registrados en el portal del servicio de HSM de Kushki.
Cada uno de los SOs que participa en el intercambio debe tener una cuenta activa en el portal del servicio de HSM de Kushki.
Deben estar asignados a los grupos de SO correctos (1, 2 o 3).
Deben mantener actualizada la dirección de envío de los componentes físicos.
Al registrar al SO en el portal, recibirá información sobre su cuenta en el portal del proveedor de HSM de Kushki, que será útil más adelante.

Ambiente de pruebas#

Kushki puede enviar los componentes de la KEK por medios electrónicos seguros (correo, bóveda de seguridad, SFTP). Un ejemplo puede ser mediante correo cifrado. El comercio recibirá la información en una tabla como la siguiente:
KEY IDDESCRIPCIÓNALGORITMOLONGITUDLLAVE/COMPONENTE EN CLAROKCV
ZMKComponente 13DESdoubleA2F2 9E20 4515 D531 6B2C 32BC 3E58 612FEF0F99
Double-lenComponente 23DESdoubleBA1F 23CD 8529 2C7A 51EC 07A2 EA8A C11FF23EFF
Componente 33DESdoubleF70D 38D6 E557 A176 BC4F 1002 3D4C 01E9C41DBB

Ambiente productivo#

Kushki enviará tres sobres de seguridad, con un componente de llave impreso en papel por sobre, a por lo menos dos custodios de seguridad que no reporten a la misma persona.
NOTA: El envío de los componentes suele tomar aproximadamente dos semanas, según la ubicación de los SOs.
El comercio recibe los componentes y las sumas de verificación de cada llave para poder cargarlas y validarlas en su HSM. Si la verificación fue exitosa, el comercio debe:
Informar a Kushki que la carga fue exitosa enviando un correo a la dirección seguridad@kushkipagos.com con "KEK component check successful - [MERCHANT_NAME]" en el asunto y "Check successful" en el mensaje.
Los SOs deberán completar el checklist de confirmación de recepción a través del Portal del Proveedor del Servicio de HSM de Kushki que llegará por correo, siguiendo las instrucciones allí indicadas.
Si hay algún problema con la validación, debes informar a Kushki a la misma dirección de correo.
NOTA: Una vez que el componente se ha activado en el portal del servicio de HSM de Kushki, es necesario que los SOs lo destruyan.

Generación y envío de la Base Derivation Key (BDK)#

Kushki registra al comercio en la Kushki Console, donde el comercio puede obtener su merchant_id, su llave privada de seguridad para transaccionar (Private-Credential-Id), entre otra información relevante. Una vez registrado el comercio, Kushki generará dos base derivation keys (BDK), una para data y otra para pin (pin_block), que se intercambiarán de forma cifrada con la KEK en TR-31. El intercambio será por medios electrónicos seguros.
Ejemplo de una BDK cifrada con una KEK en formato TR-31:
RD0112B0TX00N00004FD842D565C0BDD9741A3EAB5106A78087A4D0729A56319F32AF9FBFC6FAE0A184DA40D08FA279FBB50E7598936AD18F
NOTA: Las BDK del ambiente de producción se comparten por medios electrónicos seguros (por ejemplo 1password).
Una vez obtenidas las BDK, el comercio debe ejecutar sus procesos internos para la gestión de las terminales POS con el proceso DUKPT.
Modified at 2026-09-11 14:40:35
Previous
Notas de versión
Next
Datos de prueba
Built with