script dentro de tu página para agregar las funcionalidades. Al agregar el siguiente código a tu página, se importará.npm install, incluye el siguiente código en tu package.json como parte de los scripts de postinstall:| Propiedad | Tipo | Descripción | Predeterminado | Valores posibles |
|---|---|---|---|---|
| merchantId | String | ID de Kushki creado para tu comercio | ||
| inTestEnvironment | boolean | Valor para definir si estás en ambiente de producción o de pruebas | false | true , false |
| Propiedad | Tipo | Descripción | Predeterminado | Valores posibles |
|---|---|---|---|---|
| regional | Boolean | Define si se usa una IP estática para acceder a Kushki | false | true,false |
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 Ejemplos de cargos recurrentes.
| Propiedad | Tipo | Descripción | Predeterminado | Valores posibles |
|---|---|---|---|---|
| amount | String | El monto que vas a cobrar, como string | ||
| currency | String | Código de la moneda usada | USD | USD, COP, CLP, UF, PEN, MXN |
| card | Object | Los datos de la tarjeta recolectados en un objeto card | ||
| callback | Function(response) | La función callback creada | * Éxito : { token: "90a9f2d93ba508c38971890454897fd4"} * Con la validación OTP activada : { token: "90a9f2d93ba508c38971890454897fd4", secureId: "5e44449e-869b-4fed-bbca-e1bfa5af53c3", secureService: "KushkiOTP"} * Error: { message:"error-message", code:"error-code", error: "error-message"} |
| Propiedad | Tipo | Descripción | Valores posibles |
|---|---|---|---|
| months | Integer | Número de cuotas. Requerido solo para transacciones diferidas en Chile | Mínimo: 2, máximo: 48 |
callback):{
"token": "90a9f2d93ba508c38971890454897fd4"
}{
"token": "90a9f2d93ba508c38971890454897fd4",
"secureId": "5e44449e-869b-4fed-bbca-e1bfa5af53c3",
"secureService": "KushkiOTP"
}{
"token": "90a9f2d93ba508c38971890454897fd4",
"secureId": "1c3a9ada-1287-4f8b-b1a9-dadf44a39dd3",
"secureService": "3dsecure",
"security": {
"acsURL": "",
"authenticationTransactionId": "OWgXwASsYPW4hr1ATcf0",
"authRequired": true,
"paReq": "sandbox",
"specificationVersion": "1.0.2"
}
}callback):{
"message":"error-message",
"code":"error-code",
"error": "error-message"
}| Propiedad | Tipo | Descripción | Valores posibles |
|---|---|---|---|
| secureServiceId | String | El secureId que obtienes de la solicitud del token | |
| otpValue | String | Número de tres dígitos que corresponde al OTP | En el sandbox del OTP, el valor cambia según la moneda de la tarjeta de crédito: 155 para USD y PEN, 555 para COP y MXN, 150 para CLP |
| callback | Function(response) | La función callback creada | * Éxito : { isValid: true} * Error: { message:"error-message", code:"error-code", error: "error-message"} |
callback):{
"code": "OTP000",
"message": "ok"
}322 y cualquiera de los subcódigos especificados en la lista de códigos de error.| PROPIEDAD | TIPO | DESCRIPCIÓN | VALORES POSIBLES |
|---|---|---|---|
| card | Object | Número de bin (8 dígitos) recolectado en un objeto |
callback):{
"jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NTQ2NTY4ODYsImlhdCI6MTY1NDY0OTY4NiwiaXNzIjoiNWVhMzJmZDJmZjQ2NDU2OTY3YjUyNDliIiwianRpIjoiMDFhZTQyYWUtYzMyZS00YWRjLWFmOWQtZWVhMmFlNjRkMDkxIiwiT3JnVW5pdElkIjoiNWVhMzJmZDJhZDA3ZDIxYTM2OTc4OGFlIiwiUmVmZXJlbmNlSWQiOiI3ZjY1NzM5NS0yMDIwLTQ1ZjEtOTY4Mi05MzJiNTU5YWYzMWIifQ.JUkk70Kg4KlUYW7eIvsW8LoDhxJeG8P00VrJH9oQipc"
}callback):{
"message":"error-message",
"code":"error-code",
"error": "error-message"
}1234 como código OTP y fecha de expiración futura.445652808038986044565292672342004456529165328302445652486977025544565233400699564456540000000063445654337171331444565419820686154456541249811088| PROPIEDAD | TIPO | DESCRIPCIÓN | VALORES POSIBLES |
|---|---|---|---|
| secureId | String | El secureId que obtienes de la respuesta del token o del token de cargo recurrente | |
| security | Object | El objeto security que recibes en la respuesta del token | |
| acsURL | String | URL de la página de challenge del emisor | |
| authenticationTransactionId | String | ID de la transacción verificada por las marcas. | |
| specificationVersion | String | Versión de 3D Secure | |
| paReq | String | Este parámetro contiene los datos de la transacción comprimidos y codificados en Base64. Lo recibes de las marcas. | |
| authRequired | Boolean | Identifica si el challenge 3DS es requerido o no. | |
| callback | Function(response) | La función callback creada |
callback):{isValid: true}callback):{
"message":"error-message",
"code":"error-code"
}322 y cualquiera de los subcódigos especificados en la lista de códigos de error.| Propiedad | Tipo | Descripción |
|---|---|---|
| bin | String | El bin que se va a validar para las opciones de diferido |
| callback | Function(response) | La función callback creada |
callback):[
{
"name": "Diferido Cuota Fija sin intereses",
"type": "04",
"months": ["3", "6", "12"],
"monthsOfGrace": ["1", "2"]
},
{
"name": "Diferido Cuota Fija con intereses",
"type": "01",
"months": ["3", "6", "9"],
"monthsOfGrace": []
}
][
{
"type": "ALL",
"months": ["2", "3", "4", "...", "48"],
"monthsOfGrace": []
},
{
"type": "03",
"months": ["2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"],
"monthsOfGrace": []
}
]La funcionalidad de Cuotas Comercio (Merchant Installments) —identificada con el type específico "03"— está actualmente en Beta.
| Parámetro | Tipo | Descripción | Países/Notas |
|---|---|---|---|
name | string | El nombre de la opción de pago diferido (p. ej., "Diferido con intereses," "Meses sin intereses," "Regular"). | Nota: Este campo no siempre viene en la respuesta. |
type | string | Un código que identifica el tipo de opción de diferido. | El valor puede ser un código específico (p. ej., "001", "002") o la palabra clave "ALL" para países como Perú o Colombia, donde aplica a todas las opciones de diferido. |
months | string[] | Un array de los plazos de pago disponibles (número de meses). | Requerido para pagos diferidos. |
monthsOfGrace | string[] | Un array de los periodos de gracia disponibles en meses. | Este campo es opcional y solo está presente si el banco o la tarjeta permite un periodo de gracia para ese tipo de diferido. |
callback):{
"code":"error-code",
"message":"error-message",
}CREDIT) o con la solicitud de un token de card async (cuando cardType es DEBIT):| Propiedad | Tipo | Descripción |
|---|---|---|
| bin | String | Los primeros ocho dígitos de la tarjeta de crédito |
| callback | Function(response) | La función callback creada |
callback):{
"bank": "BANCO DE LA PRODUCCION S.A. (PRODUBANCO)",
"brand": "visa",
"cardType": "debit",
"country": "Ecuador"
}callback):{
"code":"error-code",
"message":"error-message",
}| Propiedad | Tipo | Descripción | Predeterminado | Valores posibles |
|---|---|---|---|---|
| card | Object | Los datos de la tarjeta recolectados en un objeto card | ||
| currency | String | Código de la moneda usada | USD | USD, COP, CLP, UF, PEN, MXN |
| callback | Function(response) | La función callback creada | * Éxito : { token: "90a9f2d93ba508c38971890454897fd4"} * Error: { message:"error-message", code:"error-code", error: "error-message"} |
callback):{
"token": "90a9f2d93ba508c38971890454897fd4"
}callback):{
"message":"error-message",
"code":"error-code",
"error": "error-message"
}{
"token": "oaACBE1012310zYTjE239227yqFRA8r7",
"secureService": "3dsecure",
"secureId": "e356d68d-3f31-4134-a9a7-8cba46b3cdac",
"security": {
"acsURL": "https://authentication.cardinalcommerce.com/ThreeDSecure/V1_0_2/PayerAuthentication?issuerIdÒaa20412b0063aca652facd9g4transactionId=Qhcf3XOjdZmjve336Vee2gb5rof1",
"authenticationTransactionId": "1d8cf7jg5Bfn8Nj73mn7",
"paReq": "eNpVUtluwjAQfPdXoH5A7DghtGixxFUViRt6iDfXGGJCDpykQL++doDSvu3sjtYzs4ZlqKXsLaQotWQwknnOt7Km1q2HyeIx6EW7w2dn09NjFXnxxn1gMG3P5YHBl9S5ShPmOsShgG8QmRVahDwpGHBx6AzGzKdXoH5A7DghtGixxpVUtluwjAQfPdXoH5A7DghtGixs4ZlqKXsLaQot0u4KqLQKRlUugzC4gP+AYQlHrPwqLImhgfj0cnKvMwUhnfprkj0hiwnSPAxn1gMG3P5YHBl9S5ShPmOsShOqLqJ7x73Gx2vVbgC0DwZoXklFCKXFpo0bcpu83qWht0u4KqLQKRlUugzC4gP+AYQlHrpfUGenfxtGEOl1jIRN0c3hECesjSRhmNC+62Nh7vy7otNVxQmtdkm3Ew/Jrv1Kp0X4elF8Pb6p/n2KH/k0skaqcyeVHfdaulqgoP20X4elF8Pb6p/n2KH/k0sv8=",
"specificationVersion": "1.0.2",
"authRequired": true
}
}| Parámetro | Tipo | Descripción |
|---|---|---|
authRequired | Boolean | Este campo indica si se requiere un challenge 3DS o no. |
acsURL | String | Se refiere a la URL de la página de challenge que el usuario debe superar (Access Control System) |
specificationVersion | String | Se refiere a la versión de 3DS |
| authenticationTransactionId | String | ID de la transacción verificada por Visa y Mastercard |
paReq | String | Payer Authentication Request. Es un campo codificado en base64 que contiene información de tu comercio y del tarjetahabiente, y que se envía al emisor para la autenticación. Nota: si estás probando en un ambiente UAT, debes enviar sandbox. |
security a Kushki consumiendo el método requestValidate3DS:| PROPIEDAD | TIPO | DESCRIPCIÓN | VALORES POSIBLES |
|---|---|---|---|
| card | Object | Número de bin (8 dígitos) recolectado en un objeto |
callback):{
"jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NTQ2NTY4ODYsImlhdCI6MTY1NDY0OTY4NiwiaXNzIjoiNWVhMzJmZDJmZjQ2NDU2OTY3YjUyNDliIiwianRpIjoiMDFhZTQyYWUtYzMyZS00YWRjLWFmOWQtZWVhMmFlNjRkMDkxIiwiT3JnVW5pdElkIjoiNWVhMzJmZDJhZDA3ZDIxYTM2OTc4OGFlIiwiUmVmZXJlbmNlSWQiOiI3ZjY1NzM5NS0yMDIwLTQ1ZjEtOTY4Mi05MzJiNTU5YWYzMWIifQ.JUkk70Kg4KlUYW7eIvsW8LoDhxJeG8P00VrJH9oQipc"
}callback):{
"message":"error-message",
"code":"error-code",
"error": "error-message"
}1234 como código OTP y fecha de expiración futura.445652808038986044565292672342004456529165328302445652486977025544565233400699564456540000000063445654337171331444565419820686154456541249811088| PROPIEDAD | TIPO | DESCRIPCIÓN | VALORES POSIBLES |
|---|---|---|---|
| secureId | String | El secureId que obtienes de la respuesta del token o del token de cargo recurrente | |
| security | Object | El objeto security que recibes en la respuesta del token | |
| acsURL | String | URL de la página de challenge del emisor | |
| authenticationTransactionId | String | ID de la transacción verificada por las marcas. | |
| specificationVersion | String | Versión de 3D Secure | |
| paReq | String | Este parámetro contiene los datos de la transacción comprimidos y codificados en Base64. Lo recibes de las marcas. | |
| authRequired | Boolean | Identifica si el challenge 3DS es requerido o no. | |
| callback | Function(response) | La función callback creada |
callback):{isValid:true}callback):{
"message":"error-message",
"code":"error-code"
}322 y cualquiera de los subcódigos especificados en la lista de códigos de error.authRequired es igual a true, se muestra el modal de validación OTP y tu cliente recibe por correo electrónico o mensaje de texto el valor que debe ingresar.authRequired es igual a false, el modal de validación OTP no se muestra.callback. Si es positiva, envía el token al back-end para continuar con la transacción.| Propiedad | Tipo | Descripción | Predeterminado | Valores posibles |
|---|---|---|---|---|
| subscriptionId | String | SubscriptionId que se creó previamente | ||
| callback | Function(response) | La función callback creada | * Éxito : { token: "90a9f2d93ba508c38971890454897fd4"} * Error: { message:"error-message", code:"error-code", error: "error-message"} | |
| amount (solo requerido para la autenticación 3DS) | Object | El valor de la compra | ||
| currency (solo requerido para la autenticación 3DS) | String | Código de la moneda usada | USD, PEN |
callback):{
"token": "90a9f2d93ba508c38971890454897fd4"
}callback):{
"message":"error-message",
"code":"error-code",
"error": "error-message"
}| Propiedad | Tipo | Descripción | Valores posibles |
|---|---|---|---|
| name | String | Nombre del cliente | |
| lastName | String | Apellido del cliente | |
| documentType | String | Tipo de documento con el que paga el cliente. | CC, NIT, CE, TI, PP |
| documentNumber | String | Número de documento con el que paga el cliente | |
| totalAmount | Number | El monto que vas a cobrar, como número | |
| currency | String | Código de la moneda usada | COP |
| callback | Function(response) | La función callback creada | * Éxito : { token: "90a9f2d93ba508c38971890454897fd4"} * Error: { message:"error-message", code:"error-code", error: "error-message"} |
| Propiedad | Tipo | Descripción |
|---|---|---|
| String | Correo electrónico del cliente | |
| paymentDescription | String | Una descripción del pago |
callback):{
"token": "90a9f2d93ba508c38971890454897fd4"
}callback):{
"message":"error-message",
"code":"error-code",
"error": "error-message"
}| Propiedad | Tipo | Descripción |
|---|---|---|
| callback | Function(response) | The created callback function() |
callback):[
{
"card": true,
"transfer": true,
"cash": true
}
]| Nombre | Parámetros | Devuelve | Descripción |
|---|---|---|---|
| requestToken() | card, amount, currency, months, callback | Object | Devuelve un token de una tarjeta de crédito. Asegúrate de que estén fuera de tu formulario principal (PCI COMPLIANCE). Si el comercio tiene activada la validación OTP, este método también devuelve un secureId y un secureService que puedes usar luego para validar el OTP. |
| requestSecureServiceValidation() | secureServiceId, otpValue, callback | Object | Devuelve si el OTP es válido o no. |
| requestSecureInit() | card, callback | Object | Este método te permite obtener el Json Web token (JWT) para integraciones 100% API con 3DS. |
| requestValidate3DS() | secureId, security, acsURL, authenticationTransactionId, specificationVersion, paReq, authRequired, callback | Object | Este método permite realizar la autenticación 3DS por parte del tarjetahabiente en caso de que sea requerida. |
| requestDeferred() | binBody, callback | Object | Devuelve un objeto con las opciones de diferido permitidas para comercios ecuatorianos, mexicanos y peruanos. |
| requestBinInfo() | binBody, callback | Object | Devuelve un objeto con la información relacionada al bin de la tarjeta de crédito. |
| requestCardAsyncToken() | totalAmount, currency, returnUrl, email, description, callback | Object | Devuelve un token de card async |
| requestBankList() | callback | Object | Devuelve la lista de bancos disponibles para Transfer In |
| requestTransferToken() | bankId, amount, email, callbackUrl, documentType, documentNumber, currency, paymentDesc, userType, callback | Object | Devuelve un token de transfer in |
| requestTransferSubscriptionToken() | email, callback | Object | Devuelve un token de transfer in (solo México) |
| requestCashToken() | name, lastName,documentType, identification, email, totalAmount, currency,description, callback | Object | Devuelve un token de cash in |
| Nombre | Parámetros | Devuelve | Descripción |
|---|---|---|---|
| requestSubscriptionToken() | card, currency, callback | Object | Devuelve un token de un cargo recurrente. Asegúrate de que estén fuera de tu formulario principal (PCI COMPLIANCE). |
| requestSecureInit() | card, callback | Object | Este método te permite obtener el Json Web token (JWT) para integraciones 100% API con 3DS. |
| requestValidate3DS() | secureId, security, acsURL, authenticationTransactionId, specificationVersion, paReq, authRequired, callback | Object | Este método permite realizar la autenticación 3DS por parte del tarjetahabiente en caso de que sea requerida. |
| requestDeviceToken() | subscriptionId, callback | Object | Devuelve el token de un cargo recurrente específico. |
| requestSubscriptionCardAsyncToken() | currency, email, cardNumber, callbackUrl, callback | Object | Devuelve un token de cargo recurrente con card async. |
| Name | Parameters | Returns | Description |
|---|---|---|---|
| requestPayoutsCashToken() | name, lastName,documentType, identification, email, totalAmount, currency,paymentDescription, callback | Object | Returns a cash out token |
| Nombre | Parámetros | Devuelve | Descripción |
|---|---|---|---|
| getStatusGateway() | callback | Object | Devuelve el estado de todos los métodos de pago configurados para un comercio específico |
| getCommissionConfiguration() | totalAmount, currency, callback | Object | Devuelve la información relacionada al cargo por comisión configurado para un comercio específico |
| initCardBrandingAnimation() | callback, constrained, color, sound, checkmark | Object | La Card Branding Animation le da al usuario una confirmación clara de su pago. |
¿Tienes una sugerencia sobre esta documentación? Contáctanos.