El propósito fundamental de este documento es ofrecer una comprensión exhaustiva de nuestro panel de control (dashboard) y cómo aprovechar los datos obtenidos a través de la conexión con la API de n21Pay para llevar a cabo transacciones comerciales. En estas páginas, desglosaremos las acciones necesarias en el panel de control antes de emprender pruebas de transacción, además de mostrar cómo se establece la conexión con la API de n21Pay para acceder a datos en tiempo real y enviar información en tiempo real para llevar a cabo transacciones. Nuestro objetivo final es capacitar al lector con un conocimiento sólido sobre la interacción entre el panel de control y la API, destacando su valor en el análisis y la toma de decisiones comerciales.

Aquí se completan todos los datos del
lo cual se divide en dos vistas.
usuario,
En la primera
vista, como se puede observar, se incluyen
datos comunes. La diferencia principal radica
en el campo
"Tipo de empresa," donde
debes seleccionar entre
dos opciones: "agregador" y "Gateway."
La distinción clave es que los usuarios "Gateway"
poseen un código único de venta que
no está
presente para los usuarios "agregador." Si tu
empresa no dispone
elegir
de este código, debes
"agregador"
Es importante destacar que el campo "Email
Empresa"
se destina a todas las empresas que deseen
utilizar un correo electrónico diferente para su
Dientificación de usuario y para recibir
información adicional, como códigos de validación o
comunicados importantes.
En esta segunda etapa del proceso de registro, completar. Es importante resaltar que el campo "Logo de la Empresa" no es de cumplimiento obligatorio. El campo "Email de Usuario" se utiliza como la dirección de correo electrónico que emplearás para registrarte en nuestro sistema, y será la vía a través de la cual recibirás correos con códigos de validación y otra información relevante, como confirmaciones de compra.encontrarás campos adicionales para Una vez registrado en nuestro sistema, podrás acceder mediante el proceso de inicio de sesión. Cuando inicies sesión, recibirás un código de seguridad que deberás ingresar para validar el acceso. Una vez validado, tendrás acceso a todas nuestras herramientas para supervisar tus transacciones. Para dar inicio a la conexión técnica, es necesario seguir los siguientes pasos.


Antes de comenzar la conexión a nivel de código, es crucial realizar un paso fundamental sin el cual no podrás efectuar consumos en la API de N21Pay. Cuando te encuentres en el panel de control de N21Pay, dirígete a la sección que indica "Generar Tokens". En esta vista, encontrarás dos pequeñas tarjetas similares a esta: Para cada ambiente, tanto pruebas como producción, le das en generar y luego guardar, el te creara 2 token, que usaremos para validar el comercio que esta transaccionando y si esta en pruebas o producción

Debes copiar y utilizar estos tokens en tu código cuando necesites efectuar consultas a nuestra API. Es importante activar el token correspondiente al entorno al que deseas dirigirte. Si no lo activas, la funcionalidad no estará habilitada. Una vez que estemos listos para pasar al entorno de producción, activaremos tu comercio para dicho entorno. En este punto, todos los pagos realizados se cargarán en la cuenta bancaria del comercio de las ventas realizadas.

1. Datos De Maquina
Se deben llamar dos cdn que traen la información publica de la maquina del comprador o cardholder.

2. Toma de la ip publica
En esta parte se hace consumo a un endpoint en el cual se tomara la ip publica del comprador por temas de seguridad.

3. Validar el funcionamiento correcto el api
esta funcionalidad lo que hace es validar si el api esta conectada y podemos realizar transacciones.

4. Obtener código de compra
Con este paso obtenemos el código de compra necesario para identificar toda la transacción y los datos ligados a ella.

5. Envió datos de maquina
Los cdn toman una información la cual se tiene que tomar y enviar a un endpoint.

6. Solicitar Todos los datos de compra y tarjeta
En este paso se solicita toda la información del cardholder, tanto datos de usuario, datos de compra que esta realizando y datos bancarios correspondientes a la tarjeta de credito o debito.

7. Envió de token de seguridad de compra
en esta parte se enviá un token de seguridad de compra al cliente, se enviará al correo y a traves de sms, este viene vinculado al código de compra este token una vez validado permitira el proceso de la transacción (token valido solo por 5 min)

8. Validación código de compra ingresado
esta funcionalidad lo que hace es validar que el usuario si haya ingresado el código correcto el cual se envió al correo y sms del comprador, una vez pasado 5 minutos de generado el token este no será valido.

9. Envió de información para la transacción
El envio de token es el ultimo paso que permitira el procesamiento de la compra con toda la informacion antes suministrada correspondiente a: servicio o producto, datos del cardholder y su tarjeta.
- https://machine-footprint.dashboardn21pay.com/n21pay_finger.js
- https://machine-footprint.dashboardn21pay.com/index.js
- https://dashboardn21pay.com/api/ip_n21pay
.post( "https://dashboardn21pay.com/api/ip_n21pay" )
.then(( response) => {
let n21pay_ipAddress = response.data;
});
- https://api-client.dashboardn21pay.com/api/apin21pay/get-information
- done (Respuesta que retorna el api si esta correcta será:)
.post( "https://api-client.dashboardn21pay.com/api/apin21pay/get-information" )
.then(( response) => {
let resutl = response.data;
});
- https://api-client.dashboardn21pay.com/api/apin21pay/get-purchase-cod
- {‘res’: ‘done’, ‘purchase_code’: ‘8ic9l1JLoPo6GKd’}
.post( "https://api-client.dashboardn21pay.com/api/apin21pay/get-purchase-cod" )
.then(( response) => {
if( response.data.res == "done"){
let purchaseCode = response.data.purchase_code;
} else{
// mensaje error
}
});
- https://api-client.dashboardn21pay.com/api/apin21pay/finger
data.append ( "n21pay_ACCESS_KEY", "n21pay_ACCESS_KEY" );
data.append ( "n21pay_ACCESS_LOGIN", "n21pay_ACCESS_LOGIN" );
data.append ( "purchaseCode", "purchaseCode" );
data.append ( "n21pay_api_usr_document", "n21pay_api_usr_document" );
data.append ( "booFinger", "Window.booFinger" );
data.append ( "time", "Window.time" );
data.append ( "user_agent", "Window.user_agent" );
data.append ( "language", "Window.language" );
data.append ( "color_depth", "Window.color_depth" );
data.append ( "device_memory", "Window.device_memory" );
data.append ( "hardware_concurrency", "Window.hardware_concurrency" );
data.append ( "resolution", "Window.resolution" );
data.append ( "available_resolution", "Window.available_resolution" );
data.append ( "timezone_offset", "Window.timezone_offset" );
data.append ( "timezone", "Window.timezone" );
data.append ( "session_storage", "Window.session_storage" );
data.append ( "local_storage", "Window.local_storage" );
data.append ( "indexed_db", "Window.indexed_db" );
data.append ( "open_database", "Window.open_database" );
data.append ( "cpu_class", "Window.cpu_class" );
data.append ( "navigator_platform", "Window.navigator_platform" );
data.append ( "regular_plugins", "Window.regular_plugins" );
data.append ( "canvas", "Window.canvas" );
data.append ( "webgl", "Window.webgl" );
data.append ( "webgl_vendor", "Window.webgl_vendor" );
data.append ( "adblock", "Window.adblock" );
data.append ( "has_lied_languages", "Window.has_lied_languages" );
data.append ( "has_lied_browser", "Window.has_lied_browser" );
data.append ( "has_lied_os", "Window.has_lied_os" );
data.append ( "has_lied_resolution", "Window.has_lied_resolution" );
data.append ( "touch_support", "Window.touch_support" );
data.append ( "js_fonts", "Window.js_fonts" );
data.append ( "audio_bfp", "Window.audio_bfp" );
- {‘res’: ‘done’}
- {‘res’: ‘Error, el código de compra no existe’}
- {‘res’: ‘Error, código de compra ya no es valido’}
- Se debe capturar las siguiente lista de datos:
- Datos del comprador (Revisar Punto 3.8)
- Datos del producto o servicio (Revisar Punto 3.8)
- Datos de la tarjeta de credito o debito del comprador (cardHolder) (Revisar Punto 3.8)
- Token del sistema (Esta informacion debe venir ligada a los token que usted genero en la cuenta en su panel de pruebas y produccion: n21pay_ACCESS_KEY y n21pay_ACCESS_LOGIN)
- https://api-client.dashboardn21pay.com/api/apin21pay/start-transaction
- purchaseCode //código de compra anteriormente solicitado
- emailCliente //email del cliente
- nombreCliente // nombre del usuario
- cellPhoneCliente //numero de telefono del usuario
- {‘res’: ‘done’} (si se reciben los datos de maquina ok)
- {‘res’: ‘Error, el código de compra no existe 1’} (cuando las key no son validas)
- {‘res’: ‘Error, código de compra ya no es valido’} (código vencio por tiempo o ya fue usado)
data.append ( "emailCliente", valueEmail );
data.append ( "nombreCliente", dataName );
data.append ( "cellPhoneCliente", dataPhone );
data.append ( "valuePurchase", purchaseCode );
axios
.post( "https://api-client.dashboardn21pay.com/api/apin21pay/start-transaction", data )
.then(( response) => {
if( response.data.res == "done"){
// Mostrar Modal donde se valida el codigo enviado
// Validaciones necesarias para el commercio
} else{
// mensaje error
}
});
- https://api-client.dashboardn21pay.com/api/apin21pay/valSecureCode
- codeSecure //código de seguridad enviado por sms y correo debe ser el mismo
- purchaseCode //el dato que anteriormente se consulto
- {‘res’: ‘done’} (si se reciben los datos son ok)
- {‘res’: ‘none’} (si se reciben los datos son erroneos)
- {‘res’: ‘Error, el código de compra no existe’} (cuando las key no son validas)
- {‘res’: ‘Error, código de compra ya no es valido’} (código vencio por tiempo o ya fue usado)
data.append ( "codeSecure", codeSecure );
data.append ( "purchaseCode", purchaseCode );
axios
.post( "https://api-client.dashboardn21pay.com/api/apin21pay/valSecureCode", data )
.then(( response) => {
if( response.data.res == "done"){
// Mostrar Modal donde se valida el codigo enviado
// Validaciones necesarias para el commercio
} else{
// mensaje error
}
});
- https://api-client.dashboardn21pay.com/api/apin21pay/finishTransfer
- n21pay_ACCESS_KEY
- n21pay_ACCESS_LOGIN
- codeSecure //código que el usuario le llego al correo o sms
- purchaseCode //código de compra anteriormente solicitado
- n21pay_api_description //Dato para saber si es prueba o producción
- n21pay_api_amount //Monto total de la venta (ponerle 2 ‘0’ al final sin puntos ni comas , ejemplo: 1000000 que seria 10,000.00)
- n21pay_api_tax // iva de la venta (no porcentaje, ponerle 2 ‘0’ al final sin puntos ni comas, ejemplo: 190000 que seria 1,900.00)
- n21pay_api_tax_ret // iva de la venta (no porcentaje, ponerle 2 ‘0’ al final sin puntos ni comas, ejemplo: 190000 que seria 1,900.00)
- n21pay_api_gd_ivaSaleCom // impuestos adicionales (porcentaje ejemplo: 0)
- n21pay_api_gd_ivaOverSalCom // impuestos adicionales (porcentaje ejemplo: 2.3)
- n21pay_api_gd_comByBrand // impuestos adicionales (porcentaje ejemplo: 2.3)
- n21pay_api_gd_codePromo // codigo promocion (Si o No)
- n21pay_api_gd_item // id producto o productos
- n21pay_api_gd_code // id producto o productos
- n21pay_api_gd_amount //Monto total de la venta (ponerle 2 ‘0’ al final sin puntos ni comas , ejemplo: 1000000 que seria 10,000.00)
- n21pay_api_gd_name //Nombre Producto
- n21pay_api_gd_description //descripción Producto
- n21pay_api_gd_quantity //Cantidad Producto
- n21pay_api_usr_name //nombres cliente
- n21pay_api_usr_lastname // apellidos cliente
- n21pay_api_usr_document // documento cliente
- n21pay_api_usr_birth // fecha nacimiento
- n21pay_api_usr_gender //genero (1 Femenino, 2 Masculino, 3 No aplica enviar id)
- n21pay_api_usr_country // pais cliente
- n21pay_api_usr_state //estado o departamento cliente
- n21pay_api_usr_city //ciudad cliente
- n21pay_api_usr_address //dirrecion cliente
- n21pay_api_usr_country_ad //ciudad cliente (se puede usar el dato anterior con este nombre) (opcional)
- n21pay_api_usr_postal_code //codigo postal (opcional)
- n21pay_api_usr_email // email usuario
- n21pay_api_usr_phone //numero telefono usuario
- n21pay_api_cd_typeAcc // Tipo de cuenta (00 = inderterminado, 01=Credito, 04=Corriente, 03 =Ahorros)
- n21pay_api_cd_brand //Franquicia de la tarjeta (01 = Visa, 02=Diners, 03=Amex, 04=MasterCard, 05=Credencial)
- n21pay_api_cd_expMonth //Número correspondiente al mes de vencimiento de la tarjeta
- n21pay_api_cd_expYear // Número correspondiente al año de vencimiento de la tarjeta
- n21pay_api_cd_number //Numero PAN de la tarjeta.
- n21pay_api_cd_secCode //Número correspondiente al CVV, CVV2 de la tarjeta
- n21pay_api_cd_cardName //Nombre del dueño de la tarjeta
- n21pay_api_cd_quota //Numero de cuotas
- n21pay_ipAddress // dirección ip publica
- {"res":"done","mensage":"Transaccion Aprobada","transactionId":"005623618931534"}
- {"res":"error","mensage":"Transaccion rechazada","transactionId":"005623618931534"}
data.append ( "n21pay_ACCESS_KEY", "n21pay_ACCESS_KEY" );
data.append ( "n21pay_ACCESS_LOGIN", "n21pay_ACCESS_LOGIN" );
data.append ( "purchaseCode", "purchaseCode" );
data.append ( "codeSecure", "codeSecure" );
data.append ( "n21pay_api_gd_ivaSaleCom", "n21pay_api_gd_ivaSaleCom" );
data.append ( "n21pay_api_gd_ivaOverSalCom", "n21pay_api_gd_ivaOverSalCom" );
data.append ( "n21pay_api_gd_comByBrand", "n21pay_api_gd_comByBrand" );
data.append ( "n21pay_api_description", "n21pay_api_description" );
data.append ( "n21pay_api_amount", "n21pay_api_amount" );
data.append ( "n21pay_api_tax", "n21pay_api_tax" );
data.append ( "n21pay_api_tax_ret", "n21pay_api_tax_ret" );
data.append ( "n21pay_api_gd_item", "n21pay_api_gd_item" );
data.append ( "n21pay_api_usr_name", "n21pay_api_usr_name" );
data.append ( "n21pay_api_usr_lastname", "n21pay_api_usr_lastname" );
data.append ( "n21pay_api_usr_document", "n21pay_api_usr_document" );
data.append ( "n21pay_api_usr_birth", "n21pay_api_usr_birth" );
data.append ( "n21pay_api_usr_gender", "n21pay_api_usr_gender" );
data.append ( "n21pay_api_usr_country", "n21pay_api_usr_country" );
data.append ( "n21pay_api_usr_city", "n21pay_api_usr_city" );
data.append ( "n21pay_api_usr_state", "n21pay_api_usr_state" );
data.append ( "n21pay_api_usr_address", "n21pay_api_usr_address" );
data.append ( "n21pay_api_usr_country_ad", "n21pay_api_usr_country_ad" );
data.append ( "n21pay_api_usr_postal_code", "n21pay_api_usr_postal_code" );
data.append ( "n21pay_api_usr_email", "n21pay_api_usr_email" );
data.append ( "n21pay_api_usr_phone", "n21pay_api_usr_phone" );
data.append ( "n21pay_api_usr_cellphone", "n21pay_api_usr_cellphone" );
data.append ( "n21pay_api_cd_typeAcc", "n21pay_api_cd_typeAcc" );
data.append ( "n21pay_api_cd_brand", "n21pay_api_cd_brand" );
data.append ( "n21pay_api_cd_expMonth", "n21pay_api_cd_expMonth" );
data.append ( "n21pay_api_cd_expYear", "n21pay_api_cd_expYear" );
data.append ( "n21pay_api_cd_number", "n21pay_api_cd_number" );
data.append ( "n21pay_api_cd_secCode", "n21pay_api_cd_secCode" );
data.append ( "n21pay_api_cd_cardName", "n21pay_api_cd_cardName" );
data.append ( "n21pay_api_cd_quota", "n21pay_api_cd_quota" );
data.append ( "n21pay_api_gd_code", "n21pay_api_gd_code" );
data.append ( "n21pay_api_gd_amount", "n21pay_api_gd_amount" );
data.append ( "n21pay_api_gd_name", "n21pay_api_gd_name" );
data.append ( "n21pay_api_gd_description", "n21pay_api_gd_description" );
data.append ( "n21pay_api_gd_description", "n21pay_api_gd_description" );
data.append ( "n21pay_api_gd_quantity", "n21pay_api_gd_quantity" );
data.append ( "n21pay_api_gd_unitPrice", "n21pay_api_gd_unitPrice" );
data.append ( "n21pay_api_gd_codePromo", "n21pay_api_gd_codePromo" );
data.append ( "booFinger", "Window.booFinger" );
data.append ( "n21pay_ipAddress", "n21pay_ipAddress" );
axios
.post( "https://api-client.dashboardn21pay.com/api/apin21pay/finishTransfer", data )
.then(( response) => {
if( response.data.res == "done"){
// Mostrar Modal donde se valida el codigo enviado
// Validaciones necesarias para el commercio
} else{
// mensaje error
}
});
Desarrolladores

SDK

Datafono virtual

Móvil

Datáfono Físico

N21secure
