1. México 🇲🇽
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
      • Crear pago (sin token)
      • Solicitar opciones de diferido
      • Reembolsar una transacción
      • Autorizar pagos
      • Preautorización (sin token)
      • Anular una transacción
      • Reautorizar pagos
      • Capturar un pago autorizado
      • Información de BIN V2
      • Información de BIN
      • Validar OTP
    • One-Click and 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
    • 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
    • Smartlinks
      • Crear un Smartlink
      • Consultar un Smartlink
      • Eliminar un Smartlink
      • Actualizar un Smartlink
    • Payment Button
      • Crear un Payment Button
    • Analytics
      • Consultar listado de transacciones v2
    • Chargebacks
      • Consultar chargebacks
      • Solicitar exportación de chargebacks
    • Commissions
      • Consultar configuración de comisiones
    • Payment Credentials
      • Crear una credencial
      • Activar o desactivar
      • Eliminar credencial
      • Regenerar una credencial
      • Actualizar credencial
      • Búsqueda avanzada
      • Buscar credenciales
    • Platform Status
      • Consultar estado de la plataforma
      • Consultar estado del gateway
    • Settlement
      • Consultar liquidación
    • Subscription Transactions
      • Consultar transacciones de suscripción
    • Fraud Report
      • Consultar alertas de fraude
  • Card Present Billpocket
    • Notas de versión
    • Notas de versión del SDK de Android
    • Notas de versión de la app de Android
    • Notas de versión de la app de iOS
    • Get Started
      • Crear una cuenta
      • User Token
      • API Keys
    • Webhooks
      • Webhooks — Transferencia de fondos a tu cuenta bancaria
      • Errores de transferencia de fondos
    • Terminals
      • App Review
      • Splash Screen
    • Card not Present Billpocket Services
      • 3DS Checkout
        • Crear checkout
        • Consultar detalles del checkout
      • E-commerce Flex
        • Obtener token
        • Validar token
        • Cobrar pagos
        • Reembolso
        • Capturar un pago autorizado
        • Consultar estado
    • Catalogs
      • Estados
      • Municipios
      • Empresas de impuestos
      • Actividades comerciales
    • Accounts
      • Clabe Account Setup
        • Agregar cuenta CLABE
      • Deposit Accounts
        • Agregar o actualizar cuenta CLABE
    • User Settings
      • Crear usuario
    • Card Present Payment Services
      • Cloud Terminal API
        • Cobrar pagos con tarjeta
        • Imprimir ticket
        • Cancelar notificación push
        • Consultar estado de la transacción
        • Cobrar pagos con tarjeta v2
      • App-to-App
        • Android intents
        • App to App — iOS
        • App to App — Mobile Web
      • Terminal SDK
        • Terminal SDK Android
        • Errores del SDK de Android
    • Transactions
      • Transaction List
        • Obtener token
        • Consultar listado de transacciones
        • Consultar listado de transacciones v2
        • Consultar listado de transacciones v3
        • Consultar listado de transacciones v4
      • Cancel Payments
        • Códigos de error de cancelación
        • Cancelar pagos
  • API Raw Card Present
    • El objeto Amount
    • Catálogo de errores
    • Proceso de intercambio de llaves
    • Notas de versión
    • Datos de prueba
    • 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
      • Webhooks — Pagos con tarjeta
      • Webhooks — Reembolsos
      • Webhooks — Introducción
      • Buenas prácticas
      • 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
        • 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)
  • 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
    • RequestBodies
      • one-and-two-step-payment
    • Card
    • Channel
    • Amount-cash-in
    • ChargebackListResponse
    • TransactionResponse
    • PrintJobRequest
    • one-and-two-step-payment-2
    • Card Present (CP)
    • one-and-two-step-payment-2
    • SubscriptionTransactionsResponse
    • FraudAlertRequest
    • StatusComponent
    • SettlementDateRangeRequest
    • amount
    • ChargebackItem
    • SubscriptionTransaction
    • extra_taxes
    • RawResponse
    • CommandText
    • Card Not Present (CNP)
    • Deferred
    • networkToken
    • FraudAlertResponse
    • ErrorResponse400
    • SettlementRecord
    • card
    • CardData
    • CommandColumns
    • FraudAlertRecord
    • SettlementResponse
    • currency
    • webhooksItem
    • ErrorResponse
    • Country
    • ErrorResponse401
    • LinkFailure
    • ColumnItem
    • ValidationError
    • Amount
    • card_details
    • ErrorResponse403
    • enc_tlv
    • CommandDivider
    • TransactionEvent
    • extraTaxes
    • payment_method
    • ErrorResponse500
    • CommandFeed
    • TransactionStatus
    • deferred
    • CommandSpace
    • ReadingType
    • pos_details
    • ContactDetails
    • sub_merchant
    • CommandCut
    • FailureReason
    • contact_details
    • Subscription
    • metadata
    • CommandImage
    • EventTerminal
    • documentType
    • orderDetails
    • Language
    • TransactionSearchRequest
    • CommandQR
    • EventOperation
    • Shipping Address
    • payment_submethod
    • CommandBarcode
    • EventAmount
    • Billing-Address
    • SubscriptionUpdate
    • EventExtraTaxes
    • PrintJobAccepted
    • PrinterError
    • EventMetadata
    • SubscriptionAdjustmentRequest
    • product
    • AmountWithTaxes
    • PrintJobStatus
    • PrintJobStatusRequest
    • threeDomainSecure
    • AmountCore
    • webhooks
    • headers
    • ExtraTaxes
    • PrintWebhookPayload
    • webhooksChargeback
    • Metadata
    • 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
HomePerú 🇵🇪México 🇲🇽
Ecuador 🇪🇨Colombia 🇨🇴Chile 🇨🇱
HomePerú 🇵🇪México 🇲🇽
Ecuador 🇪🇨Colombia 🇨🇴Chile 🇨🇱
  1. México 🇲🇽

Pagos presenciales (API RAW)

La API Raw de Card Present te da acceso directo y de bajo nivel a la infraestructura de pagos de Kushki para procesar transacciones presenciales con tarjeta en México. Tú te haces cargo de todo el stack de integración — el firmware de la terminal, el cifrado DUKPT, la lectura de la tarjeta y la construcción del request — y a cambio obtienes la máxima flexibilidad.
Una sola base URL cubre todas las operaciones del ciclo de vida del pago: cargos, autorizaciones en dos pasos, anulaciones, reembolsos, flujos sin lectura de tarjeta, consultas de BIN, opciones de diferido MSI y consultas de transacciones.

URLs base#

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

Secciones de la API#

Pagos únicos
Cargo único, diferido MSI (Meses Sin Intereses) y propina — todo en una sola llamada a la API
Pagos en dos pasos
Flujo de preautorización → captura. Admite reautorización y operaciones sin lectura de tarjeta.
Anulaciones y reembolsos
Anulaciones y reversos el mismo día, y reembolsos después de la liquidación — con o sin lectura de tarjeta.
Información de la tarjeta
Consulta de BIN y de opciones de MSI. Llámalas siempre antes de iniciar un cargo diferido.
Consultar transacciones
Búsqueda paginada de transacciones con filtros por fecha, BIN, últimos dígitos o referencia.

Autenticación#

Cada request debe incluir tu llave de comercio en la cabecera que corresponda según la operación:
OperaciónCabecera
Cargos, anulaciones y reembolsosPrivate-Merchant-Id: <your-private-key>
Consulta de BIN y listado de transaccionesPrivate-Credential-Id: <your-private-credential>
Opciones de diferido MSIPublic-Merchant-Id: <your-public-key>
Consultar transacciones (analytics)Private-Credential-Id: <your-private-credential>

Anatomía del request#

Todas las operaciones de escritura comparten la misma estructura base:
{
  "transaction_type": "charge",
  "transaction_mode": "Authorization",
  "country": "MEX",
  "client_transaction_id": "ae6dd41a-9173-4ec7-8734-3178454ef341",
  "amount": {
    "currency": "MXN",
    "subtotal_iva": 0,
    "subtotal_iva0": 500,
    "iva": 0
  },
  "card_details": {
    "reading_type": "ICC",
    "enc_tlv": "<encrypted-tlv>",
    "pin_ksn": "<ksn-value>",
    "tracks": {
      "enc_track2": "<encrypted-track2>",
      "track_ksn": "<ksn-value>"
    }
  },
  "cvm_type": "pin",
  "pos_details": {
    "brand": "SUNMI",
    "model": "P2-EU",
    "version": "1.1.28",
    "has_print": true,
    "terminal_id": "PB04209860189",
    "location": {
      "latitude": 19.4326,
      "longitude": -99.1332
    }
  }
}

Conceptos clave#

Moneda#

México usa MXN (peso mexicano). El MXN admite dos decimales.
"amount": {
  "currency": "MXN",
  "subtotal_iva": 580,
  "subtotal_iva0": 0,
  "iva": 80
}
Consulta El objeto Amount para ver la referencia completa de campos y ejemplos de cálculo del IVA.

Canales de lectura de la tarjeta#

Envía card_details.reading_type según cómo se presentó la tarjeta en la terminal:
ValorCanalDatos de tarjeta requeridos
ICCChip (EMV)enc_tlv, pin_ksn, tracks.enc_track2, tracks.track_ksn
MCRBanda magnéticatracks.enc_track1, tracks.enc_track2
NFCContactlessenc_tlv, tracks.enc_track2, tracks.track_ksn

Verificación del tarjetahabiente (cvm_type)#

ValorSignificado
pinPIN en línea — el PIN block cifrado se envía en card_details.pin_block
signatureFirma en la terminal
noneSin CVM (transacciones de bajo monto o contactless)

MSI — Meses Sin Intereses#

México admite el diferido MSI. Llama siempre primero a Get BIN Info para confirmar que la tarjeta lo admite y obtener las opciones de meses válidas.
Para disparar un cargo MSI, agrega el objeto deferred con el valor de months que devuelve GET /card/v1/deferred/{bin}:
{
  "is_deferred": true,
  "deferred": {
    "months": "6",
    }
}
WARNING
Los cargos MSI por debajo del monto mínimo del plazo elegido se rechazan. Revisa la tabla siguiente antes de enviar el request.
Montos mínimos para MSI en México
MesesMonto mínimo
3$300 MXN
6$600 MXN
9$900 MXN
12$1,200 MXN
18$1,800 MXN

Operaciones sin lectura de tarjeta#

Beta
Las operaciones sin lectura de tarjeta están actualmente en fase Beta en México. Contacta al equipo de Kushki para habilitar esta funcionalidad.
Envía omit_card: true para omitir card_details y cvm_type. Está disponible en capturas, reautorizaciones, anulaciones, reversos y reembolsos.
{
  "transaction_type": "capture",
  "transaction_mode": "Authorization",
  "omit_card": true,
  "transaction_reference": "f2f29080-0214-42c0-95a5-77ecf3434cd7",
  "amount": {
    "currency": "MXN",
    "subtotal_iva": 0,
    "subtotal_iva0": 500,
    "iva": 0
  }
}

Cortes de anulación y reembolso#

OperaciónVentana
AnulaciónEl mismo día, antes de las 22:59 hora local de México
Reverso sin lectura de tarjetaEl mismo día, antes de las 22:59 hora local de México — usa client_transaction_id
ReembolsoDespués del corte de anulación, hasta 120 días desde la transacción original

Idempotencia#

Cada request debe incluir un client_transaction_id único (UUID v4). Si reintentas el mismo request con el mismo ID, Kushki devuelve el resultado original: no se crea una transacción duplicada.#

Modelos de integración#

ModeloDescripciónRequerido
AdquirenteEl comercio está registrado directamente con KushkiBody de request estándar
AgregadorMarketplace o facilitador de pagos — los subcomercios operan bajo tu paraguasAgrega sub_merchant al request

Agregador — objeto sub_merchant#

"sub_merchant": {
  "mcc": "5411",
  "id_affiliation": "987654321",
  "soft_descriptor": "Mi Comercio México",
  "city": "Ciudad de México",
  "country_ans": "MEX",
  "zip_code": "06600",
  "address": "Av. Insurgentes Sur 1234",
  "social_reason": "Mi Comercio México S.A. de C.V.",
  "code": "SUB001MEX"
}

Cifrado#

Todos los datos de la tarjeta — TLV, track data y PIN blocks — deben cifrarse con el protocolo DUKPT antes de enviarse a la API. Kushki y tu organización intercambian las Base Derivation Keys (BDK) mediante una ceremonia segura de Key Encryption Key (KEK) antes de salir a producción.
Consulta Proceso de intercambio de llaves para conocer el procedimiento paso a paso.#

Webhooks#

Kushki envía notificaciones POST al endpoint que configures para cada evento presencial: cargos, preautorizaciones, capturas, anulaciones, reversos y reembolsos.
WARNING
Los webhooks presenciales solo se pueden configurar desde la Console (Developers > Webhooks). No se admite la configuración de webhooks por API.
EventoReferencia del body del webhook
Charge, preAuth, capture, void, reversePagos con tarjeta
RefundReembolsos
Consulta Webhooks — Introducción para conocer las cabeceras de autenticación, la verificación de la firma y las IPs estáticas.

Documentación de referencia#

El objeto Amount
Referencia completa de los campos del objeto amount — IVA, subtotales, propina e impuestos adicionales.
Proceso de intercambio de llaves
Ceremonia DUKPT/KEK requerida antes de procesar transacciones en producción.
Datos de prueba
Montos y escenarios de tarjeta para pruebas en sandbox en México.
Catálogo de errores
Códigos de estado HTTP y códigos de error ISO para Visa y Mastercard.
Webhooks
Recibe notificaciones de pago.
Notas de versión
Historial de versiones y changelog de la API Card Present en México.

¿Tienes una sugerencia sobre esta documentación? Contáctanos.
Modified at 2026-09-11 14:45:50
Previous
Cancelar pagos
Next
El objeto Amount
Built with