x
x
Objetivo Api Rest

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.

1. Explicación de registro y datos que se deben tener en cuenta
register1

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.

register2
2. Antes de la conexión técnica
tokens

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

Los tokens saldrán en la tabla de la parte de abajo: tabla

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.

3. Generalidad de los métodos de consumo N21Pay

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.

3.1. Datos De maquina Urls Cdns: Estos cdns traen la información correspondiente a los datos de maquina del cardholder los cuales usaremos para temas de seguridad. revisar punto 3.5
3.2. Toma de la ip publica Url: Metodo POST La respuesta de este endpoint es la IP publica del comprador ej: 10.10.10.10, esta IP se usará en el envió de transacción con fines de validacion de seguridad. mas informacion punto 3.9. A continuación daremos un ejemplo de consulta con axios
axios
.post( "https://dashboardn21pay.com/api/ip_n21pay" )
.then(( response) => {
let n21pay_ipAddress = response.data;
});
3.3. Validar el funcionamiento correcto el api Url: Metodo: POST Esta funcionalidad es para validar que la respuesta de retorno de api este funcionando correctamente.
Retorna:
A continuación daremos un ejemplo de consulta con axios
axios
.post( "https://api-client.dashboardn21pay.com/api/apin21pay/get-information" )
.then(( response) => {
let resutl = response.data;
});
3.4. Obtener código de compra Url: Método: POST Este endpoint trae el código de compra el cual lo usaremos para varias partes del proceso. Retorna: Este purchase code es el código de compra que usaremos mas adelante, este codigo de compra solo es valido por 5 minutos, y es generado por n21pay. A continuación daremos un ejemplo de consulta con axios
axios
.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
}
});
3.5. Envió datos de maquina Url: Método: POST Nosotros para poder tomar los datos de los cdns usamos lo siguiente:
const data = new FormData();
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" );
Retorna:
Nota: Nota: es importante recordar el paso de generación de token de pruebas y producción que se hace al inicio cuando se crea la cuenta, se debe activar para poder realizar pruebas o compras a paso de producción real la cuál debe hacerse solicitud desde el panel de su cuenta.
3.6. Solicitar Todos los datos de compra y tarjeta Este punto se deben de seguir los siguientes pasos en su orden descrito:
  • 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)
3.7. Envió de token de seguridad de compra Url: Método: POST Este método recibe datos para poder funcionar correctamente los cuales son:
Así tienen que llegar esos nombres exactamente o no traerá el resultado esperado, esto te debe enviar un correo y sms con el código de validación de compra el cual el comprador debe confirmar.
Retorna:
A continuación daremos un ejemplo de consulta con axios
const data = new FormData();
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
}
});
3.8. Validación código de compra ingresado Se debe de tener en cuenta que este codigo se debe solicitar una vez el comercio haya enviado toda la informacion de cardholder, tarjeta, compra y demas solicitada ya que una vez solicitado el codigo es para validar la informacion y procesar la compra. Url: Método: POST Este método recibe datos para poder funcionar correctamente los cuales son: Se valida el código si no coincide el sistema te dará un error como respuesta Retorna: A continuación daremos un ejemplo de consulta con axios
const data = new FormData();
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
}
});
3.9. Envió de información para la transacción Url: Método: POST Este método recibe datos para poder funcionar correctamente los cuales son:
Token creados en el sistema
Datos Producto e impuestos
Datos cliente
Datos bancarios
Retorna:
A continuación daremos un ejemplo de consulta con axios
const data = new FormData();
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

Pronto
sdk

SDK

Pronto
datafono

Datafono virtual

Pronto
movil

Móvil

Pronto
transacciones

Datáfono Físico

Pronto
transacciones

N21secure

Pronto
transacciones

Desarrollos

;