API Recurrencia

#

Api Pagos Api Pagos

Usa las API Recurrencia para complementar tu integración con Pago Programado.
Para comenzar a disfrutar los beneficios de API Recurrencia, sigue los siguientes pasos:


Pasos que debes seguir Detalle de cada paso
Paso 1. ¿Ya utilizas nuestra solución de Pago Programado? Asegúrate de ya contar con nuestra solución de Pago Programado.
Paso 2. Revisa la información técnica En esta web podrás encontrar todos los recursos necesarios para iniciar la integración.
Paso 3. Certifica tu integración y empieza a vender! Luego de culminar la certificación y puesta en producción, estás listo para empezar a vender!

Flujo de uso de las API #

Aquí podrás visualizar el flujo de uso de cada de las API que se encuentran en esta sección.

Flujo de Telepago Flujo Pago Web

API de Seguridad #


A. Descripción y consideraciones

Se utiliza el API de seguridad para la generación del token de acceso que le permitirá la comunicación con las diferentes APIs. Cabe indicar que este token de acceso tiene un tiempo de vigencia para poder ser utilizado. Si el token de acceso llega a caducar se debe generar uno nuevo.

El comercio afiliado debe asegurar que su integración (desarrollo) sea lo más segura posible aplicando las medidas preventivas que considere necesario.

Todas las invocaciones a las APIs (servicios backend) de Niubiz tienen que ser realizadas host to host.



B. Endpoint

Ambiente URL de API
Testing https://apitestenv.vnforapps.com/api.security/v1/security
Producción https://apiprod.vnforapps.com/api.security/v1/security
Ambiente URL de API
Testing https://apitestenv.vnforapps.com/api.security/v1/security
Producción https://apiprod.vnforapps.com/api.security/v1/security


C. Request y Casos:

  C.1 Tabla de campos

Campo Tipo Longitud Obligatorio Descripción
HEADER
userName Texto Max 100 SI Usuario compartido con el comercio para la integración
password Texto Max 100 SI Contraseña compartida con el comercio para la integración


  C.2 Trama de ejemplo:

  • Request

GET /api.security/v1/security HTTP/1.1

Host: apitestenv.vnforapps.com

Authorization: Basic Z2lhbmNhZ2FsbGFyZG9AZ21haWwuY29tOkF2MyR0cnV6

(*) Authorization: Basic EncodeBase64(“userName” + “:” + “password”)



  C.3 Lenguajes

  • Node
  • JavaScript
  • Python

const request = require('request');

var userName = "{{userName}}"

var password = "{{password}}"

var authorization = new Buffer(userName + ":" + password).toString("base64")

const options = {

 method: 'GET',

 url: 'https://apitestenv.vnforapps.com/api.security/v1/security',

 headers: {

  'Authorization': "Basic " + authorization,

  accept: 'application/json',

  'content-type': 'application/json'

 },

};

request(options, function (error, response, body) {

 if (error) throw new Error(error);

 console.log(body);

});



D. Response

  D.1 Tabla de Parámetros

Campo Tipo Longitud Descripción
TRAMA EXITOSA: 201
accessToken Text Max 1000 Token de acceso generado con la API
TRAMA ERRÓNEA: 401
description Text Max 100 Descripción relacionada al error. Este error se presenta cuando las credenciales no son válidas


  D.2 Trama de ejemplo:

  • Caso 201
  • Caso 401

Status Code 201 Created

Content-Type: text/plain

eyJraWQiOiJmWk1tV3pZR0RBckxHektvalNCK2w3SjFhMnNPXC9zQnNwOTlNNmNuM3F 5MD0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJkMTlhM2I0Zi01NzYxLTRlYTEtYjBmYS 1iNWNiNjU5OWQ5NWQiLCJjb2duaXRvOmdyb3VwcyI6WyJjdXN0b2RpbyJdLCJldmVudF9p ZCI6ImM2OTZmZjVkLTZjOTctNDE4NC05MGIxLTA5NjM2MWY4M2E2ZSIsInRva2VuX3Vz ZSI6ImFjY2VzcyIsInNjb3BlIjoiYXdzLmNvZ25pdG8uc2lnbmluLnVzZXIuYWRtaW4iLCJ hdXRoX3RpbWUiOjE2MDIxMTM4NzksImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC5 1cy1lYXN0LTEuYW1hem9uYXdzLmNvbVwvdXMtZWFzdC0xXzJjSjFTZTFmSSIsImV4cCI6MTY wMjExNzQ3OSwiaWF0IjoxNjAyMTEzODc5LCJqdGkiOiJiOTVmOGU0ZS1kZGE4LTRkZmUtO Tc0NC1kOGQwZGEyMDFlMzMiLCJjbGllbnRfaWQiOiIxMGx2MDYxN281ZGljNTFlYnNucWVp aWpiNyIsInVzZXJuYW1lIjoiZ2lhbmNhZ2FsbGFyZG9AZ21haWwuY29tIn0.GrO2XLoMn ChN3Dg6H8G7LC3ZY4O_c1-DwvRYHCx8iiDqprFMK7jU43vo6W4ILNqP_QA1sDoEQaD9HJJ7i LfVBojh1tgiFyzFzkX4T3m63eHRSFfIZAToTGYOQoeZchsYb3UAffvrzR1JlUPjwf3U1Y RfBEu8ueIR6_OUMZdXC8TLS3pqEpXnPr6S-_bndpFRs5wZpt0BPSJ4OnhM2AYh6pqFucjL9ns PmIaujJQVwdR8oNcrfeFuIv5t55H_DRDpQCSYstac1nFSm00P3EMdbOX6Lh8dTU5dBOXe17Bfh7mDEP-F nF_J47COVFB_sYh7JXyePfK6kKTlSeV0Ev0pew



E. Response

Respuesta Descripción
201 Token de seguridad generado con éxito
401 Error relacionado al acceso no autorizado

API de Autorización #


A. Descripción y consideraciones

Este documento describe los lineamientos generales a los proveedores encargados del desarrollo, para realizar la autorización de una venta recurrente a través del API de Autorización REC. Por temas de seguridad, es necesario crear un token de acceso con las credenciales (usuario y password) entregadas por Niubiz el cual permitirá la comunicación con las diferentes APIs.
Para ello, será necesario consumir la API de seguridad para poder encriptar las credenciales. Para poder realizar la autorización de una venta es necesario el token de acceso y otros parámetros (código de comercio).

El comercio afiliado debe asegurar que su integración (desarrollo) sea lo más segura posible aplicando las medidas preventivas que considere necesario.

Todas las invocaciones a las APIs (servicios backend) de Niubiz tienen que ser realizadas host to host.

  • Esta API puede usarse con funcionalidad de actualización de tarjeta incluida. Es decir que internamente se evaluará si hay una actualización de la tarjeta con el banco y si existe, esta última se usará para realizar el cobro. Para habilitar esta funcionalidad se deberá solicitar a Niubiz la activación. Tener en cuenta que solo está disponible para tarjetas Visa del banco Interbank y tarjetas Mastercard.


B. Endpoint

Ambiente URL de API
Testing https://apitestenv.vnforapps.com/api.authorization/v3/authorization/recurrence/{merchantId}
Producción https://apiprod.vnforapps.com/api.authorization/v3/authorization/recurrence/{merchantId}


C. Request y casos

  C.1 Tabla de Parámetros

Campo Tipo Longitud Obligatorio Descripción
HEADER
accessToken Text Max 1000 SI Token generado con el API de Seguridad
URL
merchantId Text Max 100 SI Código de comercio
BODY
channel String SI Canal desde donde se originó la operación. Siempre es el valor recurrent
captureType String SI Tipo de captura en el canal. Siempre es el valor manual
countable Boolean SI Tipo de venta a realizar. Siempre es el valor true
order Json SI Entidad que representa la información del pedido
order.purchaseNumber String Max 12 SI Número de pedido generado por el comercio
order.amount number($double) SI Importe del pedido autorizado. Precisión hasta 8 valores enteros con 2 decimales
order.installment integer($int32) SI Número de cuotas en que se realizará el pago
order.currency String Max 3 SI Código de moneda en la que se ejecuta la transacción
– PEN
– USD
order.externalTransactionId String($uuid) NO Identificador único de transacción enviado por el comercio
card Json SI Entidad que representa información de la tarjeta
card.cardNumber String Max 16 SI Número de tarjeta
card.expirationMonth integer($int32) SI Mes de expiración
card.expirationYear integer($int32) SI Año de expiración
card.tokenId String NO Id de la tarjeta tokenizada (*) Opcional y reemplaza los datos de la tarjeta
card.registerFrequent Boolean SI Indicador de Card on File (CoF). (Se activa para indicar que la tarjeta ha sido registrada para uso frecuente (aplica para transacciones con tarjeta o con token)
card.useFrequent Boolean SI Indicador de Card on File (CoF). Se activa para indicar que se está usando una tarjeta previamente registrada para uso frecuente (aplica para transacciones con tarjeta o con token).
cardHolder Json NO Entidad que representa la información del tarjetahabiente
cardHolder.firstName String Max 25 NO Nombres del tarjetahabiente
cardHolder.lastName String Max 50 NO Apellidos del tarjetahabiente
cardHolder.email String Max 35 NO Correo electrónico del tarjetahabiente (*) Se envía obligatoriamente cuando la tarjeta es tokenizada
cardHolder.phoneNumber String Max 10 NO Teléfono del tarjetahabiente
sponsored Json NO Entidad que representa información relacionada al comercio hijo. (*) Es de ingreso obligatorio si se está integrando un facilitador de pagos
sponsored.merchantId String Max 9 NO Código de comercio hijo
sponsored.name String Max 25 NO Nombre de comercio hijo
sponsored.mcci String Max 4 NO MCC internacional de comercio hijo
sponsored.address String Max 50 NO Dirección de comercio hijo
sponsored.phoneNumber String Max 10 NO Teléfono de comercio hijo


  C.2 Trama de ejemplo

  • Con
    tarjeta
  • Con
    token de tarjeta
  • Con facilitador de pagos

POST /api.authorization/v3/authorization/recurrence/341198210 HTTP/1.1

Host: apitestenv.vnforapps.com

Content-Type: application/json

Authorization:eyJraWQiOiJmWk1tV3pZR0RBckxHektvalNCK2w3SjFhMnNPXC9zQnNwO TlNNmNuM3F5MD0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJkMTlhM2I0Zi 01NzYxLTRlYTEtYjBmYS1iNWNiNjU5OWQ5NWQiLCJjb2duaXRvOmdyb3VwcyI 6WyJjdXN0b2RpbyJdLCJldmVudF9pZCI6ImM2OTZmZjVkLTZjOTctNDE4NC05MG IxLTA5NjM2MWY4M2E2ZSIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoiYXd zLmNvZ25pdG8uc2lnbmluLnVzZXIuYWRtaW4iLCJhdXRoX3RpbWUiOjE2MDIx MTM4NzksImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1 hem9uYXdzLmNvbVwvdXMtZWFzdC0xXzJjSjFTZTFmSSIsImV4cCI6MTYwMjExNzQ3OSwia WF0IjoxNjAyMTEzODc5LCJqdGkiOiJiOTVmOGU0ZS1kZGE4LTRkZmUtOTc0NC1kOGQwZGEyMDFlM zMiLCJjbGllbnRfaWQiOiIxMGx2MDYxN281ZGljNTFlYnNucWVpaWpiNyIsInVzZXJuY W1lIjoiZ2lhbmNhZ2FsbGFyZG9AZ21haWwuY29tIn0.GrO2XLoMnChN3Dg6H8G7LC3ZY4O_c1- DwvRYHCx8iiDqprFMK7jU43vo6W4ILNqP_QA1sDoEQaD9HJJ7iLfVBojh1tgiFyzFzkX 4T3m63eHRSFfIZAToTGYOQoeZchsYb3UAffvrzR1JlUPjwf3U1YRfBEu8ueIR6_OUMZdXC8TLS3pqEpXnPr6S- bndpFRs5wZpt0BPSJ4OnhM2AYh6pqFucjL9nsPmIaujJQVwdR8oNcrfeFuIv5t55H_DRDpQCSYsta c1nFSm00P3EMdbOX6Lh8dTU5dBOXe17Bfh7mDEP-FnF_J47COVFB_sYh7JXyePfK6kKTlSeV0Ev0pew

{

 "channel": "recurrent",

 "captureType": "manual",

 "countable": true,

 "order": {

  "purchaseNumber": "1234567890",

  "amount": 20.00,

  "currency": "PEN"

 },

 "card": {

  "cardNumber": "4474118355632240",

  "expirationMonth": 12,

  "expirationYear": 2021

 }

}



C.3 Lenguajes:

  Con tarjeta

  • Node
  • JavaScript
  • Python

const request = require('request');

const options = {

 method: 'POST',

 url: 'https://apitestenv.vnforapps.com/api.authorization/v3/authorization/recurrence/merchantId',

 headers: {

  'Authorization': '{{accessToken}}',

  accept: 'application/json',

  'content-type': 'application/json'

 },

 body: {

  channel: "recurrent",

  captureType: "manual",

  countable: true,

  order: {

   purchaseNumber: "1234567890",

   amount: 20.00,

   currency: "PEN"

  },

 card: {

  cardNumber: "4474118355632240",

  expirationMonth: 12,

  expirationYear: 2021,

 }

},

 json: true

};

request(options, function (error, response, body) {

 if (error) throw new Error(error)

 console.log(body);

});



D. Response

  D.1 Tabla de Parámetros:

Campo Tipo Longitud Obligatorio Descripción
TRAMA EXITOSA: 200
header Json NO Entidad que representa el encabezado de respuesta a la petición
header.ecoreTransactionUUID String($uuid) NO Identificador único de transacción para la plataforma
header.ecoreTransactionDate String NO Fecha de la operación expresada en formato UNIX TimeStamp
header.millis integer($int32) NO Tiempo de ejecución de la operación
fulfillment Json SI Entidad que representa información complementaria al pedido
fulfillment.channel String SI Canal desde donde se originó la operación.
fulfillment.merchantId String Max 9 SI Código de comercio Niubiz al cual pertenece la transacción
fulfillment.terminalId String Max 8 SI Número de terminal asociado a la transacción
fulfillment.captureType String Max 6 SI Tipo de captura en el canal. Siempre es el valor manual
fulfillment.countable Boolean SI Indica si la venta es contable true o no contable false
fulfillment.fastPayment Boolean SI Indica si la venta es pago rápido true o no es pago rápido false
fulfillment.signature String($uuid) SI Código único generado por el sistema Niubiz al momento de la venta
order Json SI Entidad que representa la información del pedido
order.purchaseNumbe String Max 12 SI Número de pedido generado por el comercio
order.amount number($double) SI Importe del pedido autorizado. Precisión hasta 8 valores enteros con 2 decimales
order.installment integer($int32) SI Número de cuotas en que se realizará el pago
order.currency String Max 3 SI Código de moneda en la que se ejecuta la transacción
– PEN
– USD
order.externalTransactionId String($uuid) NO Identificador único de transacción enviado por el comercio
order.authorizedAmount Number($double) SI Importe del pedido confirmado. Precisión hasta 8 valores enteros con 2 decimales
order.authorizationCode String Max 6 SI Código de autorización asignado a la aprobación de la transacción por la entidad resolutora
order.actionCode String Max 3 SI Código que identifica la acción a tomar o tomada, así como la razón de la misma. Define la respuesta a la petición de autorización realizada
order.traceNumber String Max 6 SI Número asignado para identificar de forma unívoca a la transacción
order.transactionDate String SI Fecha de la transacción expresada en formato nativo yyMMddHHmmSS
order.transactionId String Max 15 SI Identificador de la transacción asociado a la autorización
token json NO Entidad que representa información de la tokenización para la tarjeta utilizada (*) Solo si se usa el esquema de tokenización
token.tokenId String Max 16 NO Token identificador del objeto tokenizado (*) Solo si se usa el esquema de tokenización
token.ownerId String max 100 NO Valor del campo por el cual se tokenizo la tarjeta (*) Solo si se usa el esquema de tokenización
token.expiration String NO Fecha de caducidad del token expresado en formato nativo yyMMddHHmmSS (*) Solo si se usa el esquema de tokenización
dataMap Json SI Entidad que representa información complementaria del pedido
dataMap.CURRENCY String Max 4 SI Código numérico de moneda en la que se ejecuta la transacción
dataMap.TRANSACTION_DATE String SI Fecha de la transacción expresada en formato nativo yyMMddHHmmSS
dataMap.ACTION_CODE String Max 3 SI Código que identifica la acción a tomar o tomada, así como la razón de la misma. Define la respuesta a la petición de autorización realizada
dataMap.TRACE_NUMBER String Max 6 SI Número asignado para identificar de forma unívoca a la transacción
dataMap.ECI_DESCRIPTION String Max 100 SI Descripción del código ECI asociado a la autenticación de la transacción
dataMap.ECI String Max 2 SI Código ECI asociado a la autenticación de la transacción
dataMap.CARD String Max 16 SI Número de tarjeta enmascarado usada en la venta
dataMap.MERCHANT String Max 9 SI Código de comercio Niubiz al cual pertenece la transacción
dataMap.STATUS String Max 20 SI Descripción del estado de la transacción
– Authorized
– Not Authorized
– Confirmed
– Not Confirmed
– Verified
– Not Verified
– Voided
– Not Voided
– Reject
– Review
dataMap.ADQUIRENTE String Max 15 SI Nombre de identificación del adquirente.
dataMap.BIN String Max 6 NO Número de BIN de la tarjeta usada en la venta. Son los 6 primeros dígitos de una tarjeta
dataMap.BRAND String Max 15 SI Marca de la tarjeta usada en la venta
– visa
– amex
– mastercard
– dinersclub
dataMap.ACTION_DESCRIPTION String Max 100 SI Texto descriptivo de la autorización o denegación
dataMap.ID_UNICO String Max 15 SI Identificador de la transacción asociado a la autorización
dataMap.AMOUNT Number($double) SI Importe del pedido autorizado. Precisión hasta 8 valores enteros con 2 decimales
dataMap.AUTHORIZED_AMOUNT Number($double) NO Importe del pedido confirmado. Precisión hasta 8 valores enteros con 2 decimales
dataMap.TRANSACTION_ID String Max 15 SI Identificador de la transacción asociado a la autorización
dataMap.AUTHORIZATION_CODE String Max 6 SI Código de autorización asignado a la aprobación de la transacción por la entidad resolutora
dataMap.CARD_TOKEN String Max 16 NO Token identificador del objeto tokenizado
dataMap.VAULT_BLOCK String Max 100 NO Valor del campo por el cual se tokenizo la tarjeta
dataMap.TERMINAL String 8 SI Número de terminal asociado a la transacción
dataMap.CARD_TYPE String 1 NO Tipo de tarjeta usada en la transacción. Acepta los siguientes valores:
C – Tarjeta de crédito
D – Tarjeta de débito
dataMap.SIGNATURE String 36 SI Código único generado por el sistema Niubiz al momento de la venta
dataMap.PROCESS_CODE String 6 SI Código de proceso de la transacción
dataMap.ID_RESOLUTOR String 15 SI Identificador del resolutor. Ejemplo: 420210107144926
dataMap.CVV2_VALIDATION_RESULT String 1 NO Resultado de verificación del CVV2 de la tarjeta
dataMap.BRAND_NAME String 10 NO Nombre de la Marca que realiza la autorización.
dataMap.BRAND_HOST_ID String 10 NO Código del host de la Marca. Ejemplo: “1234567890”
dataMap.BRAND_ACTION_CODE String 2 NO Código de respuesta de la Marca. Ejemplo: 00
dataMap.BRAND_HOST_DATE_TIME String 12 NO Hora autorización HOST. Formato YYMMDDHHmmSS. Ejemplo: 210107144524
dataMap.ONLINE_CARD_UPDATED_ON String 12 NO Retorna la fecha de actualización de la tarjeta. Formato YYMMDDHHmmSS Ejemplo: 201112112126.
dataMap.ONLINE_NEW_CARD_NUMBER String Max 19 NO Número de tarjeta actualizada, reemplaza a la tarjeta enviada. Retorna solo si el comercio tiene habilitada el actualizador y envía tarjeta en claro en el request.
dataMap.ONLINE_NEW_CARD_EXP_YEAR String 4 NO Número de año actualizado, reemplaza al año enviado. Retorna solo si el comercio tiene habilitada el actualizador y envía tarjeta en claro en el request.
dataMap.ONLINE_NEW_CARD_EXP_MONTH String 2 NO Número de mes actualizado, reemplaza al mes enviado. Retorna solo si el comercio tiene habilitada el actualizador y envía tarjeta en claro en el request.
dataMap.ONLINE_NEW_CARD_TOKEN_ID String 16 NO Número de token actualizado, reemplaza al token enviado y tienen asociada la nueva tarjeta actualizada. Retorna solo si el comercio tiene habilitada el actualizador y la tokenización.
dataMap.ONLINE_NEW_CARD_TOKEN_EXPIRATION String 12 NO Fecha de expiración del nuevo token. Retorna solo si el comercio tiene habilitada el actualizador y la tokenización. Formato YYMMDDHHmmSS. Ejemplo: 220107153430
TRAMA ERRÓNEA: 400
errorCode Integer($int32) SI Código de error de la operación. Siempre es el valor 400
errorMessage String SI Mensaje de error de la operación
header Json NO Entidad que representa el encabezado de respuesta a la petición
header.ecoreTransactionUUID String($uuid NO Identificador único de transacción para la plataforma
header.ecoreTransactionDate String NO Fecha de la operación expresada en formato UNIX TimeStamp
header.millis Integer($int32) NO Tiempo de ejecución de la operación
data Json SI Entidad que representa información relacionada a errores en la operación realizada
data.CURRENCY String Max 4 SI Código numérico de moneda en la que se ejecuta la transacción
data.TRANSACTION_DATE String SI Fecha de la transacción expresada en formato nativo yyMMddHHmmSS
data.ACTION_CODE String Max 3 SI Código que identifica la acción a tomar o tomada, así como la razón de la misma. Define la respuesta a la petición de autorización realizada
data.TRACE_NUMBER String Max 6 NO Número asignado para identificar de forma unívoca a la transacción
data.ECI_DESCRIPTION String Max 100 NO Descripción del código ECI asociado a la autenticación de la transacción
data.ECI String Max 2 NO Código ECI asociado a la autenticación de la transacción
data.CARD String Max 16 SI Número de tarjeta enmascarado usada en la venta
data.MERCHANT String Max 9 SI Código de comercio Niubiz al cual pertenece la transacción
data.STATUS String Max 20 SI Descripción del estado de la transacción
– Authorized
– Not Authorized
– Confirmed
– Not Confirmed
– Verified
– Not Verified
– Voided
– Not Voided
– Reject
– Review
data.ADQUIRENTE String Max 15 NO Nombre de identificación del adquirente.
data.BIN String Max 6 NO Número de BIN de la tarjeta usada en la venta. Son los 6 primeros dígitos de una tarjeta
data.BRAND String Max 15 SI Marca de la tarjeta usada en la venta
– visa
– amex
– mastercard
– dinersclub
data.ACTION_DESCRIPTION String Max 100 NO Texto descriptivo de la autorización o denegación
data.ID_UNICO String Max 15 NO Identificador de la transacción asociado a la autorización
data.AMOUNT Number($double) SI Importe del pedido autorizado. Precisión hasta 8 valores enteros con 2 decimales
data.TRANSACTION_ID String Max 15 NO Identificador de la transacción asociado a la autorización
data.TERMINAL String 8 SI Número de terminal asociado a la transacción
data.CARD_TYPE String 1 NO Tipo de tarjeta usada en la transacción. Acepta los siguientes valores:
C – Tarjeta de crédito
D – Tarjeta de débito
data.SIGNATURE String 36 NO Código único generado por el sistema Niubiz al momento de la venta
TRAMA ERRÓNEA: 401
description text Max 1000 NO Descripción relacionada al error. Este error se presenta cuando las credenciales no son válidas
TRAMA ERRÓNEA: 406
description text Max 1000 NO Descripción relacionada al error. Este error se presenta cuando hay muchas solicitudes con la misma carga


  D.2 Tramas de Ejemplo

  • Caso 200
  • Caso 400
  • Caso 401
  • Caso 406

Status Code 200 OK

Content-Type: application/json

{

 "header": {

  "ecoreTransactionUUID": "84fa1f81-146a-4661-abbb-7e28b9f1468c",

  "ecoreTransactionDate": 1604679484748,

  "millis": 840

 },

 "fulfillment": {

  "channel": "recurrent",

  "merchantId": "341198210",

  "terminalId": "",

  "captureType": "manual",

  "countable": true,

  "fastPayment": false,

  "signature": "84fa1f81-146a-4661-abbb-7e28b9f1468c"

 },

 "order": {

  "purchaseNumber": "1234567890",

  "amount": 20.0,

  "installment": 0,

  "currency": "PEN",

  "authorizedAmount": 20.0,

  "authorizationCode": "111802",

  "actionCode": "000",

  "traceNumber": "264806",

  "transactionDate": "201106111804",

  "transactionId": "993203110284115"

 },

 "dataMap": {

  "CURRENCY": "0604",

  "TRANSACTION_DATE": "201106111804",

  "TERMINAL": "00000001",

  "ACTION_CODE": "000",

  "TRACE_NUMBER": "264806",

  "CARD_TYPE": "D",

  "SIGNATURE": "84fa1f81-146a-4661-abbb-7e28b9f1468c",

  "BRAND": "visa",

  "CARD": "447411******2240",

  "MERCHANT": "341198210",

  "STATUS": "Authorized",

  "ADQUIRENTE": "570009",

  "ACTION_DESCRIPTION": "Aprobado y completado con exito",

  "ID_UNICO": "993203110284115",

  "AMOUNT": "20.00",

  "PROCESS_CODE": "000000",

  "TRANSACTION_ID": "993203110284115",

  "AUTHORIZATION_CODE": "111802"

 }

}



E. Códigos de Respuesta

Código Descripción
200 Autorización de venta realizada con éxito
400 Error en la autorización de la venta
401 Error relacionado al acceso no autorizado
406 Error por enviar muchas solicitudes con la misma carga

F. Data para pruebas

Te dejamos aquí lo que necesitas para realizar tus pruebas

Casos Exitosos

Casos denegados

  • Escenario Número Mes/año CVV Codigo de Acción
    Tarjeta Vencida 5455450920104190 04/2019 111 101
    Monto no permitido 5101641510088020 03/2023 111 102
    Fondos insuficientes 5115422225052730 04/2023 111 113
    Tarjeta no registrada 5109616945811690 04/2023 111 116
    Tarjeta no operativa (error de CVV) 5111053459429160 04/2023 111 118
    Tarjeta inválida 5411111111111110 04/2023 111 129
    Tarjeta perdida 5102851705613400 04/2023 111 180
    Tarjeta robada 5105291169837400 04/2023 111 208
    Problemas de comunicación 5110556146550520 04/2023 111 209
    Problemas de comunicación con antifraude 5103216920074980 04/2203 111 666
    Transacción denegada por posible fraude 5106248239975230 04/2023 111 670
    Error en autenticación 5110109669996270 04/2023 111 678
    Comercio no válido 5111886224425800 04/2023 111 754
    Contactar emisor 5100538637530150 04/2023 111 191
    Afiliación a REC no exitosa 5105724434046720 04/2023 111 0

  • Escenario Número Mes/año CVV Codigo de Acción
    Tarjeta Vencida 371160951393498 01/2019 111 101
    Fondos insuficientes 371327381068590 01/2024 111 116
    Tarjeta no registrada 370374318198760 01/2024 111 118
    Tarjeta no operativa (error de CVV) 371045592151431 01/2024 111 129
    Tarjeta inválida 311111111111111 01/2024 111 180
    Transacción inválida 371448663683011 01/2024 111 190
    Tarjeta perdida 371540506350103 01/2024 111 207
    Tarjeta robada 371631798378041 01/2024 111 207
    Tienda inhabilitada 371032217060171 01/2024 111 401
    La operación ya se encuentra en un depósito 371950721798434 01/2024 111 476
    Código de comercio no existe o es inválido 371143974183930 01/2024 111 479
    Problemas de comunicación 349999481735341 01/2024 111 666
    Problemas de comunicación con antifraude 371912610030071 01/2024 111 668
    Transacción denegada por posible fraude 340010734769274 01/2024 111 670
    Error en autenticación 371461600047737 01/2024 111 678

  • Escenario Número Mes/año CVV Codigo de Acción
    Tarjeta Vencida 36953865709495 04/2019 111 101
    Fondos insuficientes 36344311372031 05/2024 111 116
    Tarjeta no registrada 36165277401757 05/2024 111 118
    Tarjeta no operativa (error de CVV) 36161915044570 05/2024 111 129
    Tarjeta inválida 32222222222222 05/2024 111 180
    Transacción inválida 36552045187919 05/2024 111 190
    Tarjeta perdida 36174837286856 05/2024 111 207
    Tarjeta robada 36482193207873 05/2024 111 207
    Tienda inhabilitada 36445590978511 05/2024 111 401
    La operación ya se encuentra en un depósito 36346782517671 05/2024 111 476
    Código de comercio no existe o es inválido 36344465159135 05/2024 111 479
    Problemas de comunicación 36484318063264 05/2024 111 666
    Problemas de comunicación con antifraude 36124375262074 05/2024 111 668
    Transacción denegada por posible fraude 36165181797514 05/2024 111 670
    Error en autenticación 36006973925121 05/2024 111 678

API de Anulación #


A. Descripción y Flujo de la Solución

Este documento describe los lineamientos generales a los proveedores encargados del desarrollo, para realizar la anulación de una venta a través del API de Anulación. Por temas de seguridad, es necesario crear un token de acceso con las credenciales (usuario y password) entregadas por Niubiz el cual permitirá la comunicación con las diferentes APIs. Para ello, será necesario consumir la API de seguridad para poder encriptar las credenciales.
Para poder realizar la anulación de la venta es necesario el token de acceso y otros parámetros (código de comercio, firma de la venta).

El comercio afiliado debe asegurar que su integración (desarrollo) sea lo más segura posible aplicando las medidas preventivas que considere necesario.

Todas las invocaciones a las APIs (servicios backend) de Niubiz tienen que ser realizadas host to host.



B. Endpoint

Ambiente URL API de Anulación
Testing https://apitestenv.vnforapps.com/api.authorization/v3/void/recurrence/{merchantId}/{signature}
Producción https://apiprod.vnforapps.com/api.authorization/v3/void/recurrence/{merchantId}/{signature}
Ambiente URL API de Anulación
Testing https://apitestenv.vnforapps.com/api.authorization/v3/void/recurrence/{merchantId}/{signature}
Producción https://apiprod.vnforapps.com/api.authorization/v3/void/recurrence/{merchantId}/{signature}


C. Request y casos

  C.1 Tabla de Parámetros

Campo Tipo Longitud Obligatorio Descripción
HEADER
accessToken Text Max 1000 SI Token generado con el API de Seguridad
URL
merchantId Text Max 100 SI Código de comercio
signature Text Max 100 SI Código único generado por el sistema Niubiz al momento de la venta
BODY
annulationReason String SI Descripción del motivo por el cual se está anulando la venta


  C.2 Trama de ejemplo:

  • Request

PUT /api.authorization/v3/void/recurrence/341198210/290bdfaf-86cd-4c42-bd1f-afe085f7d168 HTTP/1.1

Host: apitestenv.vnforapps.com

Content-Type: application/json

Authorization:eyJraWQiOiJmWk1tV3pZR0RBckxHektvalNCK2w3SjFhMnNPXC9zQnNwOTlNNm NuM3F5MD0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJkMTlhM2I0Zi01NzYxLTRlYTEtYjBmYS1 iNWNiNjU5OWQ5NWQiLCJjb2duaXRvOmdyb3VwcyI6WyJjdXN0b2RpbyJdLCJldmVudF9pZCI6I mM2OTZmZjVkLTZjOTctNDE4NC05MGIxLTA5NjM2MWY4M2E2ZSIsInRva2VuX3VzZSI6ImFjY2V zcyIsInNjb3BlIjoiYXdzLmNvZ25pdG8uc2lnbmluLnVzZXIuYWRtaW4iLCJhdXRoX3RpbWUiOjE 2MDIxMTM4NzksImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1hem9u YXdzLmNvbVwvdXMtZWFzdC0xXzJjSjFTZTFmSSIsImV4cCI6MTYwMjExNzQ3OSwiaWF0IjoxNjAy MTEzODc5LCJqdGkiOiJiOTVmOGU0ZS1kZGE4LTRkZmUtOTc0NC1kOGQwZGEyMDFlMzMiLCJjbGllbn RfaWQiOiIxMGx2MDYxN281ZGljNTFlYnNucWVpaWpiNyIsInVzZXJuYW1lIjoiZ2lhbmNhZ2FsbGFy ZG9AZ21haWwuY29tIn0.GrO2XLoMnChN3Dg6H8G7LC3ZY4O_c1-DwvRYHCx8iiDqprFMK7jU43vo6 W4ILNqP_QA1sDoEQaD9HJJ7iLfVBojh1tgiFyzFzkX4T3m63eHRSFfIZAToTGYOQoeZchsYb3UAff vrzR1JlUPjwf3U1YRfBEu8ueIR6_OUMZdXC8TLS3pqEpXnPr6S-bndpFRs5wZpt0BPSJ4OnhM2AYh 6pqFucjL9nsPmIaujJQVwdR8oNcrfeFuIv5t55H_DRDpQCSYstac1nFSm00P3EMdbOX6Lh8dTU5 dBOXe17Bfh7mDEP-FnF_J47COVFB_sYh7JXyePfK6kKTlSeV0Ev0pew

{

 "annulationReason": "Suscripción cancelada"

}



  C.3 Lenguajes

  • Node
  • JavaScript
  • Python

const request = require('request');

const options = {

 method: 'PUT',

 url: 'https://apitestenv.vnforapps.com/api.authorization/v3/void/recurrence/merchantId/signature',

 headers: {

  'Authorization': '{{accessToken}}',

  accept: 'application/json',

  'content-type': 'application/json'

 },

 body: {

  annulationReason: "Suscripción cancelada"

 },

 json: true

};

request(options, function (error, response, body) {

 if (error) throw new Error(error);

 console.log(body);

});



D. Response

  D.1 Tabla de Parámetros

Campo Tipo Longitud Obligatorio Descripción
TRAMA EXITOSA: 200
header Json NO Entidad que representa el encabezado de respuesta a la petición
header.ecoreTransactionUUID String($uuid) NO Identificador único de transacción para la plataforma
header.ecoreTransactionDate String NO Fecha de la operación expresada en formato UNIX TimeStamp
header.millis Integer($int32) SI Tiempo de ejecución de la operación
fulfillment Json SI Entidad que representa información complementaria al pedido
fulfillment.channel String SI Canal desde donde se originó la operación.
recurrent: Si son operaciones
realizadas como recurrencia
fulfillment.merchantId String Max 9 SI Código de comercio Niubiz al cual pertenece la transacción
fulfillment.terminalId String Max 8 SI Número de terminal asociado a la transacción
fulfillment.captureType String Max 6 SI Tipo de captura en el canal. Siempre es el valor manual
fulfillment.countable Boolean SI Indica si la venta es contable true o no contable false
fulfillment.fastPayment Boolean SI Indica si la venta es pago rápido true o no es pago rápido false
fulfillment.signatur String($uuid) SI Código único generado por el sistema Niubiz al momento de la venta
order Json SI Entidad que representa la información del pedido
order.authorizationCode String Max 6 SI Código de autorización asignado a la aprobación de la transacción por la entidad resolutora
order.actionCode String Max 3 SI Código que identifica la acción a tomar o tomada, así como la razón de la misma. Define la respuesta a la petición de autorización realizada
order.traceNumber String Max 6 SI Número asignado para identificar de forma unívoca a la transacción
order.transactionDate String SI Fecha de la transacción expresada en formato nativo yyMMddHHmmSS
order.transactionId String Max 15 SI Identificador de la transacción asociado a la autorización
order.originalTraceNumber String Max 6 SI Número asignado a la venta para identificar de forma unívoca a la transacción
order.originalDateTime String SI Fecha original de la venta expresada en formato nativo yyMMddHHmmSS
dataMap Json SI Entidad que representa información complementaria del pedido
dataMap.CURRENCY String Max 4 SI Código numérico de moneda en la que se ejecuta la transacción
dataMap.ORIGINAL_DATETIME String SI Fecha original de la venta expresada en formato nativo yyMMddHHmmSS
dataMap.TRANSACTION_DATE String SI Fecha de la transacción expresada en formato nativo yyMMddHHmmSS
dataMap.TERMINAL String Max 8 SI Número de terminal asociado a la transacción
dataMap.ACTION_CODE String Max 3 SI Código que identifica la acción a tomar o tomada, así como la razón de la misma. Define la respuesta a la petición de autorización realizada
dataMap.TRACE_NUMBER String Max 6 SI Número asignado para identificar de forma unívoca a la transacción
dataMap.ORIGINAL_TRACE String Max 6 SI Número asignado a la venta para identificar de forma unívoca a la transacción
dataMap.CARD String Max 16 SI Número de tarjeta enmascarado usada en la venta
dataMap.MERCHANT String Max 9 SI Código de comercio Niubiz al cual pertenece la transacción
dataMap.STATUS String Max 20 SI Descripción del estado de la transacción: – Authorized
– Not Authorized
– Confirmed
– Not Confirmed
– Verified
– Not Verified
– Voided
– Not Voided
– Reject
– Review
dataMap.ADQUIRENTE String Max 15 SI Nombre de identificación del adquirente.
dataMap.AMOUNT number($double) SI Importe del pedido autorizado. Precisión hasta 8 valores enteros con 2 decimales
dataMap.PROCESS_CODE String Max 6 SI Código de proceso de la transacción
dataMap.TRANSACTION_ID String Max 15 SI Identificador de la transacción asociado a la autorización
TRAMA ERRÓNEA: 400
errorCode Integer($int32) SI Código de error de la operación. Siempre es el valor 400
errorMessage String SI Mensaje de error de la operación
header Json NO Entidad que representa el encabezado de respuesta a la petición
header.ecoreTransactionUUID String($uuid) NO Identificador único de transacción para la plataforma
header.ecoreTransactionDate String NO Fecha de la operación expresada en formato UNIX TimeStamp
header.millis Integer($int32) NO Tiempo de ejecución de la operación
data Json SI Entidad que representa información relacionada a errores en la operación realizada
data.CURRENCY String Max 4 NO Código numérico de moneda en la que se ejecuta la transacción
data.ORIGINAL_DATETIME String NO Fecha original de la venta expresada en formato nativo yyMMddHHmmSS
data.TRANSACTION_DATE String NO Fecha de la transacción expresada en formato nativo yyMMddHHmmSS
data.ACTION_CODE String Max 3 NO Código que identifica la acción a tomar o tomada, así como la razón de la misma. Define la respuesta a la petición de autorización realizada
data.TRACE_NUMBER String Max 6 SI Número asignado para identificar de forma unívoca a la transacción
data.ORIGINAL_TRACE String Max 6 NO Número asignado a la venta para identificar de forma unívoca a la transacción
data.CARD String Max 16 NO Número de tarjeta enmascarado usada en la venta
data.MERCHANT String Max 9 NO Código de comercio Niubiz al cual pertenece la transacción
data.STATUS String Max 20 NO Descripción del estado de la transacción
– Authorizedz
– Not Authorized
– Confirmed
– Not Confirmed
– Verified
– Not Verified
– Voided
– Not Voided
– Reject
– Review
data.ADQUIRENTE String Max 15 NO Nombre de identificación del adquirente. Identifica el punto donde se origina la transacción:
– visanet
– procesos-mc
data.AMOUNT Number($double) NO Importe del pedido autorizado. Precisión hasta 8 valores enteros con 2 decimales
data.PROCESS_CODE String NO Código de proceso de la transacción
TRAMA ERRÓNEA: 401
description Text Max 1000 NO Descripción relacionada al error. Este error se presenta cuando las credenciales no son válidas


  D.2 Tramas de ejemplo

  • Caso 200
  • Caso 400
  • Caso 401

Status Code 200 OK

Content-Type: application/json

{

 "header": {

  "ecoreTransactionUUID": "4d750b24-b2ad-4683-a1b4-2dc929e42381",

  "ecoreTransactionDate": 1603748553415,

  "millis": 1337

 },

 "fulfillment": {

  "channel": "recurrent",

  "terminalId": "1",

  "captureType": "manual",

  "countable": true,

  "fastPayment": false,

  "signature": "290bdfaf-86cd-4c42-bd1f-afe085f7d168"

 },

 "order": {

  "authorizationCode": "",

  "actionCode": "400",

  "traceNumber": "190680",

  "transactionDate": "201026164232",

  "transactionId": "993203000267863",

  "originalTraceNumber": "252497",

  "originalDateTime": "201026160644"

},

 "dataMap": {

  "CURRENCY": "0604",

  "ORIGINAL_DATETIME": "201026160644",

  "TRANSACTION_DATE": "201026164232",

  "TERMINAL": "00000001",

  "ACTION_CODE": "400",

  "TRACE_NUMBER": "190680",

  "ORIGINAL_TRACE": "252497",

  "CARD": "447411******2240",

  "MERCHANT": "341198210",

  "STATUS": "Voided",

  "ADQUIRENTE": "570009",

  "AMOUNT": "12.35",

  "PROCESS_CODE": "000000",

  "TRANSACTION_ID": "993203000267863"

 }

}



  E. Códigos de respuesta

Respuesta Descripción
200 Anulación de venta realizada con éxito
400 Error en la anulación de la venta
401 Error relacionado al acceso no autorizado

F. Data de Prueba

Te dejamos aquí lo que necesitas para realizar tus pruebas, recuerda que debes generar una transacción de autorización primero para poder anularla. Puedes usar los siguientes datos en el pago para tener diferentes respuestas en tu anulación:

Casos Exitosos

Casos denegados

  • Escenario Número Mes/año CVV Codigo de Acción
    Contactar emisor 5316837952327271 04/2023 191 101
    Número de orden inválido 5114958534279576 04/2023 111 480
    Problemas de comunicación 5109622747010312 04/2023 111 666
    Comercio no válido 5113116463286648 04/2023 111 754
    Transacción anulada previamente 5114823696023438 04/2023 111 941
    Datos originales distintos 5100971004571337 04/2023 111 943
    Operación de anulación en proceso 5111529049874491 04/2023 111 946

  • Escenario Número Mes/año CVV Codigo de Acción
    Contactar emisor 349944823576169 03/2022 111 191
    Tienda inhabilitada 370455218733523 03/2022 111 401
    Código de autorización inválido 371890728324349 03/2022 111 427
    No se realizó la operación 349036614499097 03/2022 111 435
    Número de operación ya se encuentra anulada 371029546944315 03/2022 111 436
    Problemas de comunicación 371382364998230 03/2022 111 666

  • Escenario Número Mes/año CVV Codigo de Acción
    Contactar emisor 3644553512094293195 04/2025 111 191
    Tienda inhabilitada 3616015366040789610 04/2025 111 401
    Código de autorización inválido 3607694423196056422 04/2025 111 427
    No se realizó la operación 36414363221715 04/2025 111 435
    Número de operación ya se encuentra anulada 36123613384773 04/2025 111 436
    Problemas de comunicación 36340376606040 04/2025 111 666

API de Actualización de tarjetas #


A. Descripción

Este documento describe los lineamientos generales a los proveedores encargados del desarrollo, para realizar el actualizador de canales a través del API de Actualización de tarjeta. Por temas de seguridad, es necesario crear un token de acceso con las credenciales (usuario y password) entregadas por Niubiz el cual permitirá la comunicación con las diferentes APIs. Para ello, será necesario consumir la API de seguridad para poder encriptar las credenciales.
Para poder realizar el actualizador de canales es necesario el token de acceso y otros parámetros en el cuerpo de la petición como el número de tarjeta.

El comercio afiliado debe asegurar que su integración (desarrollo) sea lo más segura posible aplicando las medidas preventivas que considere necesario.

Todas las invocaciones a las APIs (servicios backend) de Niubiz tienen que ser realizadas host to host.

  • Por el momento esta API puede usarse solo para transacciones Visa y Mastercard.
  • Solo las tarjetas Visa del banco Interbank y las tarjetas Mastercard retornarán el campo authorizationEnabled, este campo indicará si se debe mandar la tarjeta a cobro o no. Es por eso que se recomienda que esta API sea consumida antes del API autorizador.


B. Endpoint

Ambiente URL de API
Testing https://apidevenv-rec.vnforapps.com/api.canales/v1/canales/query
Producción https://apirecprod.vnforapps.com/api.canales/v1/canales/query
Ambiente URL de API
Testing https://apidevenv-rec.vnforapps.com/api.canales/v1/canales/query
Producción https://apirecprod.vnforapps.com/api.canales/v1/canales/query


C. Request y casos

  C.1 Tabla de Parámetros

Campo Tipo Longitud Obligatorio Descripción
HEADER
accessToken Text Max 1000 SI Token generado con el API de Seguridad
BODY
externalId String NO Id de la transacción del comercio
merchantId String SI Código del comercio
card Json SI Información de la tarjeta
card.cardNumber String SI Número de tarjeta
card.expirationMonth Integer($int32) NO Mes de expiración
card.expirationYear Integer($int32) NO Año de expiración
card.tokenId String NO Id de la tarjeta tokenizada (*) Opcional y reemplaza los datos de la tarjeta
amount Decimal NO Monto de la transacción para la que se requiere hacer la consulta de la tarjeta. En caso no se tenga este dato no es necesario enviarlo.


  C.2 Trama de ejemplo:

Request

POST /api.canales/v1/canales/query HTTP/1.1

Host: https://apidevenv-rec.vnforapps.com

Content-Type: application/json

Authorization:

eyJraWQiOiJmWk1tV3pZR0RBckxHektvalNCK2w3SjFhMnNPXC9zQnNwOTlNNmNuM3F5MD0iLC JhbGciOiJSUzI1NiJ9.eyJzdWIiOiJkMTlhM2I0Zi01NzYxLTRlYTEtYjBmYS1iNWNiNjU5OWQ5 NWQiLCJjb2duaXRvOmdyb3VwcyI6WyJjdXN0b2RpbyJdLCJldmVudF9pZCI6ImM2OTZmZjVkLT ZjOTctNDE4NC05MGIxLTA5NjM2MWY4M2E2ZSIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlI joiYXdzLmNvZ25pdG8uc2lnbmluLnVzZXIuYWRtaW4iLCJhdXRoX3RpbWUiOjE2MDIxMTM4Nzk sImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbVwvdXMt ZWFzdC0xXzJjSjFTZTFmSSIsImV4cCI6MTYwMjExNzQ3OSwiaWF0IjoxNjAyMTEzODc5LCJqdGki OiJiOTVmOGU0ZS1kZGE4LTRkZmUtOTc0NC1kOGQwZGEyMDFlMzMiLCJjbGllbnRfaWQiOiIxMGx2M DYxN281ZGljNTFlYnNucWVpaWpiNyIsInVzZXJuYW1lIjoiZ2lhbmNhZ2FsbGFyZG9AZ21haWwuY29 tIn0.GrO2XLoMnChN3Dg6H8G7LC3ZY4O_c1-DwvRYHCx8iiDqprFMK7jU43vo6W4ILNqP_QA1sDoE QaD9HJJ7iLfVBojh1tgiFyzFzkX4T3m63eHRSFfIZAToTGYOQoeZchsYb3UAffvrzR1JlUPjwf3U1 YRfBEu8ueIR6_OUMZdXC8TLS3pqEpXnPr6S-_bndpFRs5wZpt0BPSJ4OnhM2AYh6pqFucjL9nsPmIau jJQVwdR8oNcrfeFuIv5t55H_DRDpQCSYstac1nFSm00P3EMdbOX6Lh8dTU5dBOXe17Bfh7mDEP-Fn F_J47COVFB_sYh7JXyePfK6kKTlSeV0Ev0pew

{

 "externalId": "1122334455",

 "merchantId": "341198210",

 "card": {

  "cardNumber": "4474118355632240",

  "expirationMonth": 12,

  "expirationYear": 2029,

  "amount": 1.00

 }

}



  C.3 Lenguajes:

  • Node
  • JavaScript
  • Python

const request = require('request');

const options = {

 method: 'POST',

 url: 'https://apidevenv-rec.vnforapps.com/api.canales/v1/canales/query',

 headers: {

  'Authorization': '{{accessToken}}',

  accept: 'application/json',

  'content-type': 'application/json'

 },

 body: {

  externalId: "1122334455"

  merchantId: "341198210",

  card: {

   cardNumber: "4551478422045511",

   expirationMonth: 12,

   expirationYear: 2029

  }

 },

 json: true

};

request(options, function (error, response, body) {

 if (error) throw new Error(error);

 console.log(body);

});



D. Response:

  D.1 Tabla de Parámetros

Campo Tipo Longitud Obligatorio Descripción
TRAMA EXITOSA: 200
statusCode Integer($int64) SI Status de la operación
– 0 -> OK
– 201 -> CREATED
– 202 -> UPDATE
– 203 -> BLACKLIST
mensaje String SI Resultado de la transacción
– OK -> Con actualización
– CREATED -> Sin actualización
– CREATED -> Sin actualización
– UPDATE -> Si hubo una actualización
– BLACKLIST -> Si la tarjeta está en lista negra, por lo que no se debe considerar la tarjeta para un próximo cobro.
header Json NO Entidad que representa el encabezado de respuesta a la petición
header.ecoreTransactionUUID String($uuid) NO Identificador único de transacción para la plataforma
header.ecoreTransactionDate String NO Fecha de la operación expresada en formato UNIX TimeStamp
header.millis Integer($int32) NO Tiempo de ejecución de la operación
card Json SI Información de la tarjeta
card.cardNumber String SI Numero de tarjeta
card.expirationMonth integer($int32) SI Mes de expiración
card.expirationYear integer($int32) SI Año de expiración
card.tokenId String NO Id de la tarjeta tokenizada (*) Opcional y reemplaza los datos de la tarjeta
card.visaCheckout Boolean NO (*) Opcional, para el actualizador no enviar
card.registerCardFrecuent Boolean NO (*) Opcional, para el actualizador no enviar
card.useCardFrecuent Boolean NO (*) Opcional, para el actualizador no enviar
cardMask String 16 SI Número enmascarado de la tarjeta.
amount Decimal NO Monto de la transacción para la que se requiere hacer la consulta de la tarjeta. Retorna solo si se ha enviado en el request.
tokenExpiration String 12 NO Fecha de expiración del nuevo token. Retorna solo si el comercio tiene habilitada la tokenización. Formato YYMMDDHHmmSS. Ejemplo: 220107153430
authorizationEnabled Boolean NO Flag que indica si es que puedes o no enviar la tarjeta a cobro. Este campo no es retornado para todas las tarjetas por lo que en caso contrario, se debe tomar como referencia el statusCode par determinar esto.
TRAMA ERRÓNEA: 400
errorCode Integer($int32) SI Código de error de la operación. Siempre es el valor 400
errorMessage String SI Mensaje de error de la operación
data Json NO Entidad que representa información relacionada a errores en la operación realizada
TRAMA ERRÓNEA: 401
description Text Max 1000 NO Descripción relacionada al error. Este error se presenta cuando las credenciales no son válidas


  D.2 Tramas de Ejemplo

  • Caso 200
  • Caso 400
  • Caso 401

Con actualización

Status Code 200 OK

Content-Type: application/json

{

 "statusCode": 0,

 "message": "OK",

 "header": {

  "ecoreTransactionUUID": "5f48bf55-0156-4e20-9062-cf761d9c7c9c",

  "ecoreTransactionDate": 1603380958855,

  "millis": 5

 },

 "card": {

  "cardNumber": "4474118355632240",

  "expirationMonth": 4,

  "expirationYear": 2021,

  "encrypted": false,

  "visaCheckout": false,

  "registerFrequent": false,

  "useFrequent": false

 }

}


Sin actualización


Status Code 200 OK

Content-Type: application/json

{

 "statusCode": 201,

 "message": "CREATED",

 "header": {

  "ecoreTransactionUUID": "c0d5bb62-af3d-474b-b13a-cf1a0d8699d2",

  "ecoreTransactionDate": 1603381502803,

  "millis": 23

 },

 "card": {

  "cardNumber": "4474118355632259",

  "expirationMonth": 12,

  "expirationYear": 2029,

  "encrypted": false,

  "visaCheckout": false,

  "registerFrequent": false,

  "useFrequent": false

 }

}



  E Códigos de respuesta

Respuesta Descripción
200 Operación exitosa (OK – CREATED)
400 Solicitud errónea o vacía
401 Error relacionado al acceso no autorizado

F. Data para pruebas

Te dejamos aquí lo que necesitas para realizar tus pruebas

Casos Exitosos

Casos denegados

API Reversa o Extorno #


A. Descripción

Esta API permitirá realizar la reversa de una transacción de venta con los datos que enviaste para el pago. Para que esta API pueda resolver una operación necesita de un token de acceso vigente generado por el API de Seguridad.

El comercio afiliado debe asegurar que su integración (desarrollo) sea lo más segura posible aplicando las medidas preventivas que considere necesario.

Todas las invocaciones a las APIs (servicios backend) de Niubiz tienen que ser realizadas host to host.



B. Endpoint

Ambiente URL de API
Testing https://apisandbox.vnforappstest.com/api.authorization/v3/reverse/recurrence/{merchantId}
Producción https://apiprod.vnforapps.com/api.authorization/v3/reverse/recurrence/{merchantId}
Ambiente URL de API
Testing https://apisandbox.vnforappstest.com/api.authorization/v3/reverse/recurrence /{merchantId}
Producción https://apiprod.vnforapps.com/api.authorization/v3/reverse/recurrence/{merchantId}


C. Request y Casos

  C.1 Tabla de campos

Campo Tipo Longitud Obligatorio Descripción
PATH
merchantId Texto 9 SI Código de comercio creado al momento de la afiliación
HEADER
accessToken Texto Max 1000 SI Token generado con la API de Seguridad
BODY
channel Texto Max 45 SI Canal desde donde se originó la operación. Puede ser uno de los siguientes valores. Se envía el mismo dato que se envió al API de Autorización.
web – Si son operaciones de venta de comercio electrónico
callcenter – Si son operaciones de venta de telepago
recurrent – Si son operaciones de venta de recurrentes
order SI Objeto orden
purchaseNumber Texto Max 12 SI Número de Pedido, este valor debe ser creado por el comercio y es único por intento de autorización
transactionDate Texto 12 SI Fecha de la transacción expresada en formato nativo yyMMddHHmmSS

  C.2 Tabla de campos

Request

POST /api.authorization/v3/reverse/recurrence/341198210 HTTP/1.1

Host: apisandbox.vnforappstest.com

Content-Type: application/json

Authorization:eyJraWQiOiJmWk1tV3pZR0RBckxHektvalNCK2w3SjFhMnNPXC 9zQnNwOTlNNmNuM3F5MD0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJkMTlhM 2I0Zi01NzYxLTRlYTEtYjBmYS1iNWNiNjU5OWQ5NWQiLCJjb2duaXRvOmdyb3Vw cyI6WyJjdXN0b2RpbyJdLCJldmVudF9pZCI6IjIwMTg5N2IxLTAwYmItNDI0M i04MWI0LTNiZjM5OGY2NjAxMiIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3Bl IjoiYXdzLmNvZ25pdG8uc2lnbmluLnVzZXIuYWRtaW4iLCJhdXRoX3RpbWUiO jE2MDM4NDE0MzEsImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC51cy1lYXN0LT EuYW1hem9uYXdzLmNvbVwvdXMtZWFzdC0xXzJjSjFTZTFmSSIsImV4cCI6MTYwMzg0N TAzMSwiaWF0IjoxNjAzODQxNDMxLCJqdGkiOiI5OTE3ZjAxMS1mYWUyLTRiZTYt ODM1NC0zODNlMDZmM2EzMDUiLCJjbGllbnRfaWQiOiIxMGx2MDYxN281ZGljNTFlYn NucWVpaWpiNyIsInVzZXJuYW1lIjoiZ2lhbmNhZ2FsbGFyZG9AZ21haWwuY29tIn0. Id8sV5i5E7LzdtJ_6b71gkOkIDW3Y_RG-vhUOiu-FHpI32OHKzo8gySNjxBR44pof rwI1lgrKLigtCILQUzKi9B7Bo_bpPIZjmYPIyabg12mrkeIh6jZRoSwsteSFOiA KTcqoMq_RQjUzmHTgBZwqGsOgyssEe4sfrZhMREGrpHJYFZ95-b2vslGUyUD084dB pkA5jTLOESNPsKyX1dmerK7VSxrDw__LiDCDCukdnQOWk90t7hV6aKqk5P3GQcBozt puDs3Osq44UpzHt6dgAnkRwRUQYjV6CDikw965ltF5_uhI1n_-RycoLCCnTJX8AZikqZQI 4wExWxINGWMsA

{

 "channel": "recurrent",

 "order" : {

  "purchaseNumber": "19520464",

  "transactionDate": "191001183502"

 {

{



D. Response:

  D.1 Tabla de campos

Campo Tipo Longitud Obligatorio Descripción
TRAMA EXITOSA: 200
header SI Objeto header
ecoreTransactionUUID Texto 36 SI Identificador único de transacción para la plataforma
ecoreTransactionDate Fecha SI Fecha de la transacción expresada en formato UNIX TimeStamp
millis Entero SI Tiempo de ejecución de la transacción
fulfillment SI Objeto fulfillment
channel Texto Max 45 SI Canal desde donde se originó la operación. Puede ser uno de los siguientes valores:
web – Si son operaciones de venta de comercio electrónico
callcenter – Si son operaciones de venta de comercio electrónico
recurrent – Si son operaciones de venta de recurrentes
merchantId Texto 9 SI Código de comercio creado al momento de la afiliación
terminalIds Texto Max 8 SI Número de terminal asociado a la transacción
captureType Texto Max 45 SI Constante, siempre es el valor “manual”
countable Bandera SI Este campo indica si la venta a realizar tendrá liquidación automática o manual. Acepta los siguientes valores:
true – Para liquidación automática
flase – Para liquidación manual Valor por defecto: Según configuración del comercio en BackOffice Niubiz
fastPayment Bandera SI Este campo indica si la venta se realizó con indicador activo de pago rápido. Acepta los siguientes valores:
true – Venta es tipo pago rápido
flase – Venta no es tipo pago rápido
signature Texto 36 SI Código único generado por el sistema Niubiz al momento de la venta
order SI Objeto orden
purchaseNumber Texto Max 12 SI Número de Pedido, este valor debe ser creado por el comercio y es único por intento de autorización
authorizationCode Texto Max 6 SI Código de autorización asignado a la aprobación de la transacción por la entidad resolutora
actionCode Texto 3 SI Código que identifica la acción a tomar o tomada, así como la razón de la misma. Define la respuesta a la petición de autorización realizada
traceNumber Texto Max 6 SI Número asignado para identificar de forma unívoca a la transacción
transactionDate Texto 12 SI Fecha de la transacción expresada en formato nativo yyMMddHHmmSS
transactionId Texto 15 SI Identificador de la transacción asociado a la autorización
originalTraceNumber Texto Max 6 SI Número original asignado para identificar de forma unívoca a la transacción
originalDateTime Texto 12 SI Fecha original de la transacción expresada en formato nativo yyMMddHHmmSS
dataMap SI Objeto datamap
CURRENCY Texto 4 SI Código numérico de moneda en la que se ejecuta la transacción
TERMINAL Texto 8 SI Número de terminal asociado a la transacción
ORIGINAL_DATETIME Texto 12 SI Fecha original de la transacción expresada en formato nativo yyMMddHHmmSS
TRANSACTION_DATE Texto 12 SI Fecha de la transacción expresada en formato nativo yyMMddHHmmSS
ACTION_CODE Texto 3 SI Código que identifica la acción a tomar o tomada, así como la razón de la misma. Define la respuesta a la petición de autorización realizada
ORIGINAL_TRACE Texto Max 6 SI Número original asignado para identificar de forma unívoca a la transacción
TRACE_NUMBER Texto Max 6 SI Número asignado para identificar de forma unívoca a la transacción
CARD Texto Max 16 SI Número de tarjeta enmascarado usada en la venta
MERCHANT Texto 9 SI Código de comercio creado al momento de la afiliación
STATUS Texto Max 20 SI Descripción del estado de la transacción. Ejemplo:
Authorized
Not Authorized
Confirmed
Not Confirmed
Verified
Not Verified
Voided
Not Voided
Reject
Review
ADQUIRENTE Texto Max 6 SI Código de identificación del adquirente
AMOUNT Numérico 6,2 SI Importe de la transacción. Formato ####.## (Dos decimales separados por punto) Ejemplo: 1000.00
PROCESS_CODE Texto 6 SI Código de proceso de la transacción
TRANSACTION_ID Texto 15 SI Identificador de la transacción asociado a la autorización
TRAMA ERROR: 400
errorCode Entero SI Código de error
errorMessage Texto Max 500 SI Descripción del error
header SI Objeto header
ecoreTransactionUUID Texto 36 SI Identificador único de transacción para la plataforma
ecoreTransactionDate Fecha SI Fecha de la transacción expresada en formato UNIX TimeStamp
millis Entero SI Tiempo de ejecución de la transacción
Data SI Objeto con información complementaria relacionada al error
TRACE_NUMBER Texto Max 6 NO Número asignado para identificar de forma unívoca a la transacción
TRAMA ERROR: 401, 500
description Texto Max 1000 SI Descripción relacionada al error


E. Códigos de Respuesta

Código Descripción
200 La transacción de venta ha sido anulada de forma satisfactoria
400 Error, la operación ha sido rechazada
401 Error, las credenciales utilizadas no son válidas
500 Cualquier otro tipo de error


F. Data de Prueba

Te dejamos aquí lo que necesitas para realizar tus pruebas, recuerda que debes generar una transacción de autorización primero para poder anularla. Puedes usar los siguientes datos en el pago para tener diferentes respuestas en tu anulación:

Casos Exitosos

Casos denegados

  • Escenario Número Mes/año CVV Codigo de Acción
    Contactar emisor 5316837952327271 04/2023 191 101
    Número de orden inválido 5114958534279576 04/2023 111 480
    Problemas de comunicación 5109622747010312 04/2023 111 666
    Comercio no válido 5113116463286648 04/2023 111 754
    Transacción anulada previamente 5114823696023438 04/2023 111 941
    Datos originales distintos 5100971004571337 04/2023 111 943
    Operación de anulación en proceso 5111529049874491 04/2023 111 946

  • Escenario Número Mes/año CVV Codigo de Acción
    Contactar emisor 349944823576169 03/2022 111 191
    Tienda inhabilitada 370455218733523 03/2022 111 401
    Código de autorización inválido 371890728324349 03/2022 111 427
    No se realizó la operación 349036614499097 03/2022 111 435
    Número de operación ya se encuentra anulada 371029546944315 03/2022 111 436
    Problemas de comunicación 371382364998230 03/2022 111 666

  • Escenario Número Mes/año CVV Codigo de Acción
    Contactar emisor 3644553512094293195 04/2025 111 191
    Tienda inhabilitada 3616015366040789610 04/2025 111 401
    Código de autorización inválido 3607694423196056422 04/2025 111 427
    No se realizó la operación 36414363221715 04/2025 111 435
    Número de operación ya se encuentra anulada 36123613384773 04/2025 111 436
    Problemas de comunicación 36340376606040 04/2025 111 666

Data para pruebas #

Te dejamos aquí lo que necesitas para realizar tus pruebas.

Códigos de comercio

Código de comercio Moneda Tipo Liquidación
456879852 Soles Liquidación automática
456879856 Soles Liquidación manual
456879853 Dólares Liquidación automática
456879854 Dólares Liquidación manual
 

Las credenciales que debes utilizar serán las siguientes:

 
Usuario Password
integraciones@niubiz.com.pe _7z3@8fF

Certificación y pase a producción #


A continuación te mostraremos los pasos resumen que debes tener en cuenta para tu Certificación y Pase a Producción.


Revisa y valida el CheckList de Certificación.
Debes contar con un Código de Comercio en producción.
Coordina la fecha de tu Certificación.
  • Código de comercio
  • Datos de la persona que realizará las pruebas de certificación (Nombre, teléfono y correo)
  • 3 fechas tentativas y horarios (L a V de 9am a 6pm)
Coordina tu Pase a Producción.
  • Durante la certificación podrás realizar el pase a producción o programarlo con un tiempo máximo de 5 días útiles.
  • Durante el pase a producción, revisaremos cada uno de lo puntos que se detallan en Pasos para tu Pase a Producción.


¡Luego de culminar la certificación y puesta en producción, estás listo para empezar a vender!


Checklist de certificación


Requisitos obligatorios que debes considerar:


Validar caso exitoso.
  • Debes revisar la trama de respuesta, el código de acción 200 y que el resultado sea el esperado.
Validar caso Fallido.
  • Debes revisar la trama de respuesta, el código de acción 400 y que el resultado sea el esperado (por ejemplo pruebas con tarjetas vencidas o cvv incorrecto).
Términos y Condiciones.
  • Divulgar los términos y condiciones.
  • En la secuencia de las páginas finales antes del checkout, y debe incluir un “clic para aceptar”, una casilla u otro botón de aceptación, o lugar para una firma electrónica, o
  • En la pantalla final de pago cerca del botón “Enviar”.
  • En un pop up o enlace, cuya lectura y aceptación a través de un check box sea obligatoria en la misma página del checkout antes que el tarjetahabiente acepte la compra.
  • Considerar la casilla de aceptación de términos y condiciones no debe de estar premarcardo.


Pasos para el pase a producción:


Considera los siguientes pasos para tu pase a producción:


Validar caso exitoso.
  • Debes revisar la trama de respuesta, el código de acción 200 y que el resultado sea el esperado.
Validar caso Fallido.
  • Debes revisar la trama de respuesta, el código de acción 400 y que el resultado sea el esperado (por ejemplo pruebas con tarjetas vencidas o cvv incorrecto).

#

Modalidad funcional

Flujo de uso de las API #

Aquí podrás visualizar el flujo de uso de cada de las API que se encuentran en esta sección.

Flujo de Modalidad Funcional Flujo de Modalidad Funcional

  • Por temas de seguridad, es necesario crear un token de acceso con las credenciales (usuario y password) entregadas por Niubiz (1a) el cual permitirá la comunicación con las diferentes APIs. Para ello, será necesario consumir la API de seguridad para poder encriptar las credenciales.

  • Para poder realizar la aprobación o el rechazo de la solicitud (2a) es necesario el token de acceso y otros parámetros dentro del cuerpo de la solicitud.

API de Seguridad #


A. Descripción

Esta API permitirá generar un token de acceso, el cual será utilizado en la llamada de otras APIs funcionales. El token de acceso generado por esta API tiene un tiempo de duración. Pasado ese tiempo, el token de acceso no podrá ser utilizado y se tendrá que generar un nuevo token de acceso utilizando la misma API.

El comercio afiliado debe asegurar que su integración (desarrollo) sea lo más segura posible aplicando las medidas preventivas que considere necesario.

Todas las invocaciones a las APIs (servicios backend) de Niubiz tienen que ser realizadas host to host.



B. Endpoint

Ambiente URL de API
Testing https://apisandbox.vnforappstest.com/api.security/v1/security
Producción https://apiprod.vnforapps.com/api.security/v1/security
Ambiente URL de API
Testing https://apisandbox.vnforappstest.com/api.security/v1/security
Producción https://apiprod.vnforapps.com/api.security/v1/security


C. Request y Casos:

  C.1 Tabla de campos

Campo Tipo Longitud Obligatorio Descripción
HEADER
userName Texto Max 100 SI Usuario compartido con el comercio para la integración
password Texto Max 100 SI Contraseña compartida con el comercio para la integración


  C.2 Trama de ejemplo:

  • Request

GET /api.security/v1/security HTTP/1.1

Host: apisandbox.vnforappstest.com

Authorization: Basic Z2lhbmNhZ2FsbGFyZG9AZ21haWwuY29tOkF2MyR0cnV6

(*) Authorization: Basic EncodeBase64(“userName” + “:” + “password”)



D. Response

  D.1 Tabla de campos

Campo Tipo Longitud Obligatorio Descripción
TRAMA EXITOSA: 201
accessToken Texto Max 1000 SI Token de acceso generado con la API
TRAMA ERROR: 401, 500
description Texto Max 1000 SI Descripción relacionada al error


D.2 Trama de ejemplo

  • Caso 201
  • Caso 401
  • Caso 500

Status Code 200 OK

Content-Type: text/plain

eyJraWQiOiJmWk1tV3pZR0RBckxHektvalNCK2w3SjFhMnNPXC9zQnNwOTlNNmNuM 3F5MD0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJkMTlhM2I0Zi01NzYxLTRlYTEtY jBmYS1iNWNiNjU5OWQ5NWQiLCJjb2duaXRvOmdyb3VwcyI6WyJjdXN0b2RpbyJdLCJldmV udF9pZCI6ImM2OTZmZjVkLTZjOTctNDE4NC05MGIxLTA5NjM2MWY4M2E2ZSIsInRva2Vu X3VzZSI6ImFjY2VzcyIsInNjb3BlIjoiYXdzLmNvZ25pdG8uc2lnbmluLnVzZXIuYWRta W4iLCJhdXRoX3RpbWUiOjE2MDIxMTM4NzksImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLW lkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbVwvdXMtZWFzdC0xXzJjSjFTZTFmSSIsIm V4cCI6MTYwMjExNzQ3OSwiaWF0IjoxNjAyMTEzODc5LCJqdGkiOiJiOTVmOGU0ZS1kZGE4LTR kZmUtOTc0NC1kOGQwZGEyMDFlMzMiLCJjbGllbnRfaWQiOiIxMGx2MDYxN281ZGljN TFlYnNucWVpaWpiNyIsInVzZXJuYW1lIjoiZ2lhbmNhZ2FsbGFyZG9AZ21haWwuY29tIn0. GrO2XLoMnChN3Dg6H8G7LC3ZY4O_c1-DwvRYHCx8iiDqprFMK7jU43vo6W4ILNqP_QA1s DoEQaD9HJJ7iLfVBojh1tgiFyzFzkX4T3m63eHRSFfIZAToTGYOQoeZchsYb3UAffvrzR1JlUP jwf3U1YRfBEu8ueIR6_OUMZdXC8TLS3pqEpXnPr6S-_bndpFRs5wZpt0BPSJ4OnhM2AYh 6pqFucjL9nsPmIaujJQVwdR8oNcrfeFuIv5t55H_DRDpQCSYstac1nFSm00P3EMdbOX6Lh8dTU 5dBOXe17Bfh7mDEP-FnF_J47COVFB_sYh7JXyePfK6kKTlSeV0Ev0pew



E. Códigos de Respuesta

Código Descripción
201 Token de acceso creado de forma satisfactoria
401 Error, las credenciales utilizadas no son válidas
500 Cualquier otro tipo de error

API de Registro de afiliación #

El comercio afiliado debe asegurar que su integración (desarrollo) sea lo más segura posible aplicando las medidas preventivas que considere necesario.

Todas las invocaciones a las APIs (servicios backend) de Niubiz tienen que ser realizadas host to host.


A. Endpoint

Ambiente URL de API
Testing https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.registerProduct
Producción https://apipos.vnforapps.com/api.posservices/api/v1/service/recurrence.registerProduct
Ambiente
Testing
URL de API
https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.registerProduct
Producción
URL de API
https://apipos.vnforapps.com/api.posservices/api/v1/service/recurrence.registerProduct


B. Request y casos

   B.1 Tabla de Parámetros

Campo Tipo Longitud Obligatorio Descripción
HEADER
accessToken Text Max 1000 SI Token generado con el API de Seguridad
BODY
terminalId String Max 8 SI Número de terminal
merchantId String Max 9 SI Código del comercio
merchantName String Max 40 SI Nombre del comercio
traceNumber String Max 6 NO Número de registro
referenceNumber String Max 6 NO Número de referencia
dateTime String Max 12 SI Fecha de la operación en formato YYmmDDHHmmss
currencyId String Max 3 SI Moneda de la transacción
– 604 Soles
– 840 Dólares
channelId integer($int32) SI Código de canal de origen. Siempre enviar 6
amount number($double) SI Importe. Siempre enviar 0
companyId String Max 3 NO Id de la compañía para la operación. Siempre enviar null
operationType String Max 1 NO Tipo de operación. Siempre enviar null
dataMap Json SI Entidad en donde se definen los datos para la afiliación
dataMap.merchantId String max 9 SI Código de comercio
dataMap.productCode String Max 40 SI Valor registrado en el Sistema de pagos recurrente
dataMap.cardNumber String Max 40 SI Número de tarjeta
dataMap.expirationMonth String Max 2 SI Mes de expiración tarjeta
dataMap.expirationYear String Max 4 SI Año de expiración de tarjeta en formato YYYY
dataMap.firstName
Cardholder
String max 100 NO Nombre del tarjetahabiente
dataMap.lastName
Cardholder
String Max 100 NO Apellido del tarjetahabiente
dataMap.documentType
Cardholder
String Max 1 SI Tipo documento tarjetahabiente
– 0 DNI
– 1 Carnet extranjería
– 2 pasaporte
dataMap.documentId
Cardholder
String Max 50 SI Id documento del tarjetahabiente
dataMap.telephone
Cardholder
String Max 25 SI Teléfono del tarjetahabiente
dataMap.emailCard
holder
String Max 200 SI Correo del tarjetahabiente
dataMap.beneficiaryId String Max 50 SI Id del beneficiario
dataMap.firstName
Beneficiary
String Max 100 NO Nombre del beneficiario
dataMap.lastName
BeneficiaryId
String Max 100 NO Apellido paterno del beneficiario
dataMap.maximum
Amount
String Max 10 NO Monto máximo. Precisión hasta 8 valores enteros con 2 decimales
dataMap.channelId String Max 1 SI Canal Consumidor. Puede ser: 6 CE
dataMap.chargeType String Max 1 SI Tipo Cargo Cobro
– 0 Fijo
– 1 Variable
dataMap.chargeAmount String Max 10 SI Monto del cargo. Precisión hasta 8 valores enteros con 2 decimales
dataMap.chargeDate String Max 10 SI Fecha del cargo pago en formato YYYY-MM-DD, en este campo se puede manejar el concepto de periodo de gracia. La fecha debe ser mayor a la actual más 48h de periodo de gracia
dataMap.periodicity String Max 1 SI Periodicidad
– 1 Mensual
– 2 Semestral
– 3 Anual
– 4 Trimestral
dataMap.automaticRetry String Max 1 SI Reintento automático
– 0 No
– 1 Si


   B.2 Trama de Ejemplo

Request

POST /api.posservices/api/v1/service/recurrence.registerProduct HTTP/1.1

Host: apitestposenv.vnforapps.com

Content-Type: application/json

Authorization:eyJraWQiOiJmWk1tV3pZR0RBckxHektvalNCK2w3SjFhMnNPXC9zQnNwOTlNN mNuM3F5MD0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJkMTlhM2I0Zi01NzYxLTRlYTEtYjBmYS 1iNWNiNjU5OWQ5NWQiLCJjb2duaXRvOmdyb3VwcyI6WyJjdXN0b2RpbyJdLCJldmVudF9pZCI6 ImM2OTZmZjVkLTZjOTctNDE4NC05MGIxLTA5NjM2MWY4M2E2ZSIsInRva2VuX3VzZSI6ImFjY2 VzcyIsInNjb3BlIjoiYXdzLmNvZ25pdG8uc2lnbmluLnVzZXIuYWRtaW4iLCJhdXRoX3RpbWUi OjE2MDIxMTM4NzksImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1hem 9uYXdzLmNvbVwvdXMtZWFzdC0xXzJjSjFTZTFmSSIsImV4cCI6MTYwMjExNzQ3OSwiaWF0Ijox NjAyMTEzODc5LCJqdGkiOiJiOTVmOGU0ZS1kZGE4LTRkZmUtOTc0NC1kOGQwZGEyMDFlMzMiLCJ jbGllbnRfaWQiOiIxMGx2MDYxN281ZGljNTFlYnNucWVpaWpiNyIsInVzZXJuYW1lIjoiZ2lhb mNhZ2FsbGFyZG9AZ21haWwuY29tIn0.GrO2XLoMnChN3Dg6H8G7LC3ZY4O_c1-DwvRYHCx8iiD qprFMK7jU43vo6W4ILNqP_QA1sDoEQaD9HJJ7iLfVBojh1tgiFyzFzkX4T3m63eHRSFfIZAToT GYOQoeZchsYb3UAffvrzR1JlUPjwf3U1YRfBEu8ueIR6_OUMZdXC8TLS3pqEpXnPr6S-_bndpF Rs5wZpt0BPSJ4OnhM2AYh6pqFucjL9nsPmIaujJQVwdR8oNcrfeFuIv5t55H_DRDpQCSYstac1 nFSm00P3EMdbOX6Lh8dTU5dBOXe17Bfh7mDEP-FnF_J47COVFB_sYh7JXyePfK6kKTlSeV0Ev0pew

{

 terminalId: "1122334455",

 merchantId: "341198210",

 merchantName: "PRUEBAS NIUBIZ",

 dateTime: "201030000000",

 currencyId: "604",

 channelId: 6,

 amount: 0,

 dataMap: {

  merchantId: "341198210",

  productCode: "984747",

  cardNumber: "4474118355632240",

  expirationMonth: "10",

  expirationYear: "2027",

  firstNameCardholder: "Juan",

  lastNameCardholder: "Perez",

  documentTypeCardholder: "0",

  documentIdCardholder: "02345698",

  telephoneCardholder: "1",

  emailCardholder: "juan@gmail.com",

  beneficiaryId: "29890903",

  firstNameBeneficiary: "Maria",

  lastNameBeneficiary: "Perez",

  maximumAmount: "3434",

  channelId: "6",

  chargeType: "0",

  chargeAmount: "100.00",

  chargeDate: "2020-10-31",

  periodicity: "2",

  automaticRetry: "1"

 }

}



   B.3 Lenguajes

  • Node
  • JavaScript
  • Python

const request = require('request');

const options = {

 method: 'POST',

 url: 'https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.registerProduct',

 headers: {

  'Authorization': '{{accessToken}}',

  accept: 'application/json',

  'content-type': 'application/json'

 },

 body: {

  terminalId: "1122334455",

  merchantId: "341198210",

  merchantName: "PRUEBAS NIUBIZ",

  dateTime: "201030000000",

  currencyId: "604",

  channelId: 6,

  amount: 0,

  dataMap: {

   merchantId: "341198210",

   productCode: "984747",

   cardNumber: "4474118355632240",

   expirationMonth: "10",

   expirationYear: "2027",

   firstNameCardholder: "Juan",

   lastNameCardholder: "Perez",

   documentTypeCardholder: "0",

   documentIdCardholder: "02345698",

   telephoneCardholder: "1",

   emailCardholder: "juan@gmail.com",

   beneficiaryId: "29890903",

   firstNameBeneficiary: "Maria",

   lastNameBeneficiary: "Perez",

   maximumAmount: "3434",

   channelId: "6",

   chargeType: "0",

   chargeAmount: "100.00",

   chargeDate: "2020-10-31",

   periodicity: "2",

   automaticRetry: "1"

  }

 },

 json: true

};

request(options, function (error, response, body) {

 if (error) throw new Error(error);

 console.log(body);

});



C. Response

   C.1 Tabla de Parámetros

Campo Tipo Longitud Obligatorio Descripción
TRAMA EXITOSA: 200
header Json NO Entidad que contiene información de la transacción en la Plataforma Canales.
merchantId String Max 9 SI Código del comercio
traceNumber String Max 6 NO Número de transacción
operationType String Max 1 NO Tipo de operación
dateTime String Max 20 SI Fecha de la transacción en formato YYmmDDhhMMss
amount String Max 12 12 Importe
currencyId String Max 3 SI Código de moneda
– 604 Soles
– 840 Dólares
status String Max 3 SI Código de respuesta
– 200 Éxito
– 500 Error
data String Max 200 NO No se devuelve para productos recurrentes
dataMap Json SI Entidad en donde se definen los datos para la afiliación
dataMap.messageResponse Json SI Respuesta
dataMap.messageResponse.header Json SI Cabecera
dataMap.messageResponse.
header.status
Json SI Estado
dataMap.messageResponse.header.
status.busReponseType
String Max 1 SI Tipo de respuesta
dataMap.messageResponse.header.
status.busResponseCode
String Max 4 SI Código del servicio
dataMap.messageResponse.header.
status.busResponseMessage
String Max 200 SI Mensaje del servicio
dataMap.messageResponse.header.
status.busResponseMsgId
String Max 20 SI Id de transacción interna
dataMap.messageResponse.header.
status.srvResponseCode
String Max 4 SI Código de respuesta
dataMap.messageResponse.header.
status.srvResponseMessage
String Max 200 SI Mensaje de respuesta
dataMap.messageResponse.body Json SI Cuerpo del mensaje
dataMap.messageResponse
.body.comercioRegistrar
AfiliacionResponse
Json SI Respuesta
dataMap.messageResponse
.body.comercioRegistrar
AfiliacionResponse
idBeneficiario
String Max 50 SI Id del beneficiario
dataMap.messageResponse
.body.comercioRegistrar
AfiliacionResponse
.nomBeneficiario
String Max 100 NO Nombre del beneficiario
dataMap.messageResponse
.body.comercioRegistrarAfiliacion
Response.apePatBeneficiario
String Max 100 NO Apellido paterno del beneficiario
dataMap.messageResponse.
body.comercioRegistrarAfiliacion
Response.codProducto
String Max 40 SI Código de producto
dataMap.messageResponse.
body.comercioRegistrarAfiliacion
Response.nomProducto
String Max 50 SI Nombre de producto
dataMap.messageResponse
.body.comercioRegistrar
AfiliacionResp
onse.nomTarHabiente
String Max 100 NO Nombre del tarjetahabiente
dataMap.messageResponse
.body.comercioRegistrar
Afiliacion>Response.
apePatTarHabiente
String Max 100 NO Apellido del tarjetahabiente
TRAMA ERRÓNEA: 400
header Json NO Entidad que contiene información de la transacción en la Plataforma Canales.
merchantId String Max 9 SI Código del comercio
traceNumber String Max 6 NO Número de transacción
operationType String Max 1 NO Tipo de operación
dateTime String Max 20 SI Fecha de la transacción en formato YYmmDDhhMMss
amount String Max 12 SI Importe
currencyId String Max 3 SI Código de moneda
status String Max 3 SI Código de respuesta. Siempre es 400
data String Max 200 NO No se devuelve para productos recurrentes
dataMap Json SI Entidad en donde se definen los datos para la afiliación
dataMap.messageResponse Json SI Respuesta
dataMap.messageResponse.header Json SI Cabecera
dataMap.messageResponse
.header.status
Json SI Estado
dataMap.messageResponse.hea
der.status.busReponseType
String Max 1 SI Tipo de respuesta
dataMap.messageResponse.header
.status.busResponseCode
String Max 4 SI Código del servicio
dataMap.messageResponse.header
.status.busResponseMessage
String Max 200 SI Mensaje del servicio
dataMap.messageResponse
.header.status.
busResponseMsgId
String Max 20 SI Id de transacción interna
dataMap.messageResponse.header
.status.srvResponseCode
String Max 4 SI Código de respuesta
dataMap.messageResponse.header
.status.srvResponseMessage
String Max 200 SI Mensaje de respuesta
dataMap.messageResponse.body Json NO Cuerpo del mensaje
dataMap.messageResponse.body
.comercioRegistrarAfiliacionResponse
Json NO Respuesta
TRAMA ERRÓNEA: 401
description Text Max 1000 NO Descripción relacionada al error. Este error se presenta cuando las credenciales no son válidas


   C.2 Tramas de Ejemplo

  • Caso 200
  • Caso 400
  • Caso 401

Status Code 200 OK

Content-Type: application/json

{

 header: null,

 merchantId: "341198210",

 traceNumber: null,

 operationType: null,

 dateTime: "201030000000",

 amount: "000000000000",

 currencyId: "604",

 status: "200",

 data: null,

 dataMap: {

  messageResponse: {

   header: {

    status: {

     busResponseType: "0",

     busResponseCode: "000",

     busResponseMessage: "Exito",

     busResponseMsgId: "42524b45534241301aefa6be1abb11eb9053ac110b990000",

     srvResponseCode: "000",

     srvResponseMessage: "Registro de afiliación con éxito"

    }

   },

   body: {

    comercioRegistrarAfiliacionResponse: {

     idBeneficiario: "29890903",

     nomBeneficiario: "Maria",

     apePatBeneficiario: "Perez",

     codProducto: "984747",

     nomProducto: "PENSIONES",

     nomTarHabiente: "Juan",

     apePatTarHabiente": "Perez"

    }

   }

  }

 }

}

Status Code 200 OK

Content-Type: application/json

{

 header: null,

 merchantId: "341198210",

 traceNumber: null,

 operationType: null,

 dateTime: "201030000000",

 amount: "000000000000",

 currencyId: "604",

 status: "500",

 data: null,

 dataMap: {

  merchantId: "341198210",

  productCode: "984747",

  cardNumber: "4474118355632240",

  expirationMonth: "10",

  expirationYear: "2027",

  firstNameCardholder: "Juan",

  lastNameCardholder: "Perez",

  documentIdCardholder: "02345698",

  telephoneCardholder: "1",

  emailCardholder: "juan@gmail.com",

  beneficiaryId: "29890903",

  firstNameBeneficiary: "Maria",

  lastNameBeneficiary: "Perez",

  maximumAmount: "3434",

  channelId: "6",

  chargeType: "0",

  chargeAmount: "100.00",

  chargeDate: "2020-10-31",

  periodicity: "2",

  automaticRetry: "1"

 }

}



D. Códigos de respuesta

Código Descripción
200 Registro de afiliación realizada con éxito
– 200 Éxito
– 500 Datos inválidos
400 Error en el registro de afiliación
401 Error relacionado al acceso no autorizado

API de Desafiliación #

El comercio afiliado debe asegurar que su integración (desarrollo) sea lo más segura posible aplicando las medidas preventivas que considere necesario.

Todas las invocaciones a las APIs (servicios backend) de Niubiz tienen que ser realizadas host to host.


A. Endpoint

Ambiente URL de API
Testing https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.deaffiliateProduct
Producción https://apipos.vnforapps.com/api.posservices/api/v1/service/recurrence.deaffiliateProduct
Ambiente
Testing
URL de API
https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.deaffiliateProduct
Producción
URL de API
https://apipos.vnforapps.com/api.posservices/api/v1/service/recurrence.deaffiliateProduct


B. Request y Casos

  B.1 Tabla de campos

Campo Tipo Longitud Obligatorio Descripción
HEADER
accessToken Text max 1000 SI Token generado con el API de Seguridad
BODY
terminalId string max 9 SI Número de terminal
merchantId string max 9 SI Código del comercio
merchantName string max 40 SI Nombre del comercio
traceNumber string max 6 NO Número de registro
referenceNumber string max 6 NO Número de referencia
dateTime string max 12 SI Fecha y hora para la operación en formato YYmmDDHHmmss
currencyId string max 3 SI Código de moneda en la que se registra:
– Soles (604)
– Dólares (840)
channelId integer($int32) SI Código de canal de origen. Siempre enviar 6
amount number($double) SI Importe. Siempre enviar 0
companyId string max 3 NO Id de la compañía para la operación
operationType string max 1 NO Tipo de operación
dataMap json SI Entidad en donde se definen los datos para la afiliación
dataMap.merchantId string max 9 SI Código de comercio
dataMap.productCode string max 40 SI Valor registrado en el Sistema de Pagos Recurrente
dataMap.channelId string max 1 SI Canal Consumidor. Puede ser: 6 CE
dataMap.beneficiaryId string max 50 SI Id del beneficiario


  B.2 Trama de ejemplo:

Request

POST /api.posservices/api/v1/service/recurrence.modifyCharge HTTP/1.1

HOST: apitestposenv.vnforapps.com

Content-Type: application/json

Authorization:eyJraWQiOiJmWk1tV3pZR0RBckxHektvalNCK2w3SjFhMnNPXC9zQnN wOTlNNmNuM3F5MD0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJjNTAxNjYyOS04Zjc2LT Q1M2QtYjhlNC01MGJjZDI5YjI2NTAiLCJldmVudF9pZCI6IjdkNjIzNTEzLTBiNmYtNG Y2MC1hNTYyLWYxNDhhYmIxMzI5MyIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIj oiYXdzLmNvZ25pdG8uc2lnbmluLnVzZXIuYWRtaW4iLCJhdXRoX3RpbWUiOjE2MDM5ND cwNjcsImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYX dzLmNvbVwvdXMtZWFzdC0xXzJjSjFTZTFmSSIsImV4cCI6MTYwMzk1MDY2NywiaWF0Ij oxNjAzOTQ3MDY3LCJqdGkiOiJlM2FiYjc4Ni0xNzAwLTRjN2YtYWUzMy1lMjRhMmU1Yj RlYzkiLCJjbGllbnRfaWQiOiIxMGx2MDYxN281ZGljNTFlYnNucWVpaWpiNyIsInVzZX JuYW1lIjoiaW50ZWdyYWNpb25lcy52aXNhbmV0QG5lY29tcGx1cy5jb20ifQ.G60b7eC 0sInKiZ2f-YAKJs0EUOSrE4jyfSmmRcCArV9VAVhhaAqO9LD_jsaU3B1Few6JNi6446q 9NCy8j7CDQN8iUdiTdjQgfti6c36828qSdmQA4EkRDf3w8yNaUMDvfnjCvj_QXVLkpcu 29YZcPZ6qnXG9e9Y-GjEVp6wkVaFICVFg8-obY0f3p32fw_a5wWDpO487uoMF4W_5nWN PKTjVagaG2LbN2js2urb3JSIvHHhtbdYvibavTGxu_kZ5cVnmfdG9pPvvv4Bpo8f2bPT j2Nfo1bzsiQrvwfJ4UF26RFASz848c1KtKXzDlftLTgTz4XjEcAHiM3qGCLYoTQ

{

"terminalId": "1122334455",

"merchantId": "341198210",

"merchantName": "PRUEBAS NIUBIZ",

"dateTime": "1487346033729",

"currencyId": "604",

"channelId": 6,

"amount": 0,

"dataMap": {

 "merchantId": "341198210",

 "productCode": "984747",

 "beneficiaryId": "8765431001",

 "channelId": "6"

 }

}



  B.3 Lenguajes:

  • Node
  • JavaScript
  • Python

const request = require('request');

const options = {

 method: 'POST',

 url: 'https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.deaffiliateProduct',

 headers: {

  'Authorization': '{{accessToken}}',

  accept: 'application/json',

  'content-type': 'application/json'

 },

 body: {

  terminalId: "1122334455",

  merchantId: "341198210",

  merchantName: "PRUEBAS NIUBIZ",

  dateTime: "1487346033729",

  currencyId: "604",

  channelId: 6,

  amount: 0,

  dataMap: {

   merchantId: "341198210",

   productCode: "984747",

   beneficiaryId: "8765431001",

   channelId: "6"

  }

 },

json: true

};

request(options, function (error, response, body) {

 if (error) throw new Error(error);

 console.log(body);

});



C. Response:

  C.1 Tabla de parámetros:

Campo Tipo Longitud Obligatorio Descripción
TRAMA EXITOSA: 200
header json NO Entidad que contiene información de la transacción en la Plataforma Canales.
merchantId string max 9 SI Código del comercio
traceNumber string max 6 NO Número de transacción
operationType string max 1 NO Tipo de operación
dateTime string max 20 SI Fecha de la transacción en formato YYmmDDhhMMss
amount string max 12 NO Importe
currencyId string max 3 SI Código de moneda
– 604 Soles
– 840 Dólares
status string max 3 SI Código de respuesta. Siempre es 200
data String Max 200 NO No se devuelve para productos recurrentes
dataMap json SI Entidad en donde se definen los datos para la transacción
dataMap.messageResponse json SI
dataMap.messageResponse
.header
json SI
dataMap.messageResponse
.header.status
json SI
dataMap.messageResponse
.header.status.bus
ResponseCode
string max 4 SI Código de respuesta del WAS
dataMap.messageResponse
.header.status.bus
ResponseMessage
string max 200 SI Mensaje de respuesta del WAS
dataMap.messageResponse
.header.status.bus
ResponseMsgId
string max 20 SI Identificador único de la transacción
dataMap.messageResponse
.header.status.srv
ResponseCode
string max 4 SI Código de respuesta del servicio de negocio
dataMap.messageResponse
.header.status.srv
ResponseMessage
string max 200 SI Mensaje de respuesta del servicio de negocio.
dataMap.messageResponse
.header.status.bus
ReponseType
string max 1 SI Tipo de respuesta de la invocación del servicio. Puede ser:
– 0 Éxito
– 1, 2 Error
dataMap.messageResponse
.body
json SI
dataMap.messageResponse
.body.comercioRegistrar
DesafiliacionResponse
json SI
dataMap.messageResponse
.body.comercioRegistrar
DesafiliacionResponse.
idBeneficiario
String max 50 SI Id del beneficiario
dataMap.messageResponse
.body.comercioRegistrar
DesafiliacionResponse.
nomBeneficiario
String max 100 NO Nombre del beneficiario
dataMap.messageResponse
.body.comercioRegistrar
DesafiliacionResponse.
apePatBeneficiario
String max 100 NO Apellido paterno del beneficiario
dataMap.messageResponse
.body.comercioRegistrar
DesafiliacionResponse.
codProducto
String max 40 SI Código de producto
dataMap.messageResponse
.body.comercioRegistrar
DesafiliacionResponse.
nomProducto
String max 50 SI Nombre de producto
dataMap.messageResponse
.body.comercioRegistrar
DesafiliacionResponse.
nomTarHabiente
String max 100 NO Nombre del tarjetahabiente
dataMap.messageResponse
.body.comercioRegistrar
DesafiliacionResponse.
apePatTarHabiente
String max 100 NO Apellido del tarjetahabiente
TRAMA ERRONEA: 400
header json NO Entidad que contiene información de la transacción en la Plataforma Canales.
merchantId string max 9 SI Código del comercio
traceNumber string max 6 NO Número de transacción
operationType string max 1 NO Tipo de operación
dateTime string max 20 SI Fecha de la transacción en formato YYmmDDhhMMss
amount string max 12 NO Importe
currencyId string max 3 SI Código de moneda
– 604 Soles
– 840 Dólares
status string max 3 SI Código de respuesta. Siempre es 400
data String Max 200 NO No se devuelve para productos recurrentes
dataMap json SI Entidad en donde se definen los datos para la transacción
dataMap.messageResponse json SI
dataMap.messageResponse
.header
json SI
dataMap.messageResponse
.header.status
json SI
dataMap.messageResponse
.header.status.bus
ResponseCode
string max 4 SI Código de respuesta del WAS
dataMap.messageResponse
.header.status.bus
ResponseMessage
string max 200 SI Mensaje de respuesta del WAS
dataMap.messageResponse
.header.status.bus
ResponseMsgId
string max 20 SI Identificador único de la transacción
dataMap.messageResponse
.header.status.srv
ResponseCode
string max 4 SI Código de respuesta del servicio de negocio
dataMap.messageResponse
.header.status.srv
ResponseMessage
string max 200 SI Mensaje de respuesta del servicio de negocio.
dataMap.messageResponse
.header.status.bus
ReponseType
string max 1 SI Tipo de respuesta de la invocación del servicio. Puede ser:
– 0 -> Éxito
– 1, 2 -> Error
dataMap.messageResponse
.body
json SI
dataMap.messageResponse
.body.comercioRegistrar
DesafiliacionResponse
json SI
TRAMA ERRONEA: 401
description text max 1000 NO Descripción relacionada al error. Este error se presenta cuando las credenciales no son válidas


  C.2 Trama de ejemplo:

  • Caso 200
  • Caso 400
  • Caso 401

Status Code 200 OK

Content-Type: application/json

{

 "header": "",

 "merchantId": "341198210",

 "traceNumber": null,

 "operationType": null,

 "dateTime": "1487346033729",

 "amount": "000000000000",

 "currencyId": "604",

 "status": "200",

 "data": null,

 "dataMap": {

  "messageResponse": {

   "header": {

    "status": {

     "busResponseType": "0",

     "busResponseCode": "000",

     "busResponseMessage": "Exito",

     "busResponseMsgId": "42524b45534241304b6da5441a0611eb904fac110b990000",

     "srvResponseCode": "000",

     "srvResponseMessage": "Registro de desafiliación con éxito"

    }

   },

   "body": {

     "comercioMantenimientoLotesCargosResponse": {

     "idBeneficiario": "8765431001",

     "nomBeneficiario": "",

     "apePatBeneficiario": "",

     "codProducto": "984747",

     "nomProducto": "PENSIONES",

     "nomTarHabiente": "",

     "apePatTarHabiente": ""

    }

   }

  }

 }

}



D. Códigos de Respuesta

Respuesta Descripción
200 Desafiliación realizada con éxito
400 Error en la desafiliación
401 Error relacionado al acceso no autorizado

API de Cambio de producto #

El comercio afiliado debe asegurar que su integración (desarrollo) sea lo más segura posible aplicando las medidas preventivas que considere necesario.

Todas las invocaciones a las APIs (servicios backend) de Niubiz tienen que ser realizadas host to host.


A. Endpoint

Ambiente URL de API
Testing https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.changeProduct
Producción https://apipos.vnforapps.com/api.posservices/api/v1/service/recurrence.changeProduct
Ambiente
Testing
URL de API
https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.changeProduct
Producción
URL de API
https://apipos.vnforapps.com/api.posservices/api/v1/service/recurrence.changeProduct


B. Request y Casos

  B.1 Tabla de campos

Campo Tipo Longitud Obligatorio Descripción
HEADER
accessToken Text max 1000 SI Token generado con el API de Seguridad
BODY
terminalId string max 8 SI Número de terminal
merchantId string max 9 SI Código del comercio
merchantName string max 40 SI Nombre del comercio
traceNumber string max 6 NO Número de registro
referenceNumber string max 6 NO Número de referencia
dateTime string max 12 SI Fecha de la operación en formato YYmmDDHHmmss
currencyId string max 3 SI Moneda de la transacción
– 604 Soles
– 840 Dólares
channelId integer($int32) SI Código de canal de origen. Siempre enviar 6
amount number($double) SI Importe. Siempre enviar 0
companyId string max 3 NO Id de la compañía para la operación. Siempre enviar null
operationType string max 1 NO Tipo de operación. Siempre enviar null
dataMap json SI Entidad en donde se definen los datos para la afiliación
dataMap.merchantId string max 9 SI Código de Comercio
dataMap.currentProductCode string max 40 SI Valor registrado en el Sistema de pagos recurrente
dataMap.cardNumber string max 40 SI Número de tarjeta
dataMap.expirationMonth string max 2 SI Mes de expiración tarjeta (Formato 12)
dataMap.expirationYear string max 4 SI Año de expiración de tarjeta en formato YYYY
dataMap.firstNameCardholder string max 100 NO Nombre del tarjetahabiente
dataMap.lastNameCardholder string max 100 NO Apellido del tarjetahabiente
dataMap.documentTypeCardholder string max 1 SI Tipo documento tarjetahabiente
– 0 DNI
– 1 Carnet extranjería
– 2 pasaporte
dataMap.documentIdCardholder string max 50 SI Id documento del tarjetahabiente
dataMap.telephoneCardholder string max 25 SI Teléfono del tarjetahabiente
dataMap.emailCardholder string max 200 SI Correo del tarjetahabiente
dataMap.beneficiaryId string max 50 SI Id del beneficiario
dataMap.firstNameBeneficiary string max 100 NO Nombre del beneficiario
dataMap.lastNameBeneficiary string max 100 NO Apellido paterno del beneficiario
dataMap.maximumAmount string max 10 SI Monto máximo. Precisión hasta 8 valores enteros con 2 decimales
dataMap.channelId string max 1 SI Canal Consumidor. Puede ser: 6 CE
dataMap.chargeType string max 1 SI Tipo Cargo Cobro
– 0 Fijo
– 1 Variable
dataMap.chargeAmount string max 10 SI Monto del cargo. Precisión hasta 8 valores enteros con 2 decimales
dataMap.chargeDate string max 10 SI Fecha del cargo pago en formato YYYY-MM-DD, en este campo se puede manejar el concepto de periodo de gracia. La fecha debe ser mayor a la actual más 48h de periodo de gracia
dataMap.periodicity string max 1 SI Periodicidad
– 1 Mensual
– 2 Semestral
– 3 Anual
– 4 Trimestral
dataMap.automaticRetry string max 1 SI Reintento automático
– 0 No
– 1 Si
dataMap.newProductCode string max 40 SI Nuevo código de producto registrado en el Sistema de pagos recurrente


  B.2 Trama de ejemplo:

Request

POST /api.posservices/api/v1/service/recurrence.changeProduct HTTP/1.1

HOST: apitestposenv.vnforapps.com

Content-Type: application/json

eyJraWQiOiJmWk1tV3pZR0RBckxHektvalNCK2w3SjFhMnNPXC9zQnNwOTlNNmNuM3 F5MD0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJkMTlhM2I0Zi01NzYxLTRlYTEtYjBm YS1iNWNiNjU5OWQ5NWQiLCJjb2duaXRvOmdyb3VwcyI6WyJjdXN0b2RpbyJdLCJldmV udF9pZCI6ImM2OTZmZjVkLTZjOTctNDE4NC05MGIxLTA5NjM2MWY4M2E2ZSIsInRva2 VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoiYXdzLmNvZ25pdG8uc2lnbmluLnVzZXIuY WRtaW4iLCJhdXRoX3RpbWUiOjE2MDIxMTM4NzksImlzcyI6Imh0dHBzOlwvXC9jb2du aXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbVwvdXMtZWFzdC0xXzJjSjFTZTF mSSIsImV4cCI6MTYwMjExNzQ3OSwiaWF0IjoxNjAyMTEzODc5LCJqdGkiOiJiOTVmOG U0ZS1kZGE4LTRkZmUtOTc0NC1kOGQwZGEyMDFlMzMiLCJjbGllbnRfaWQiOiIxMGx2M DYxN281ZGljNTFlYnNucWVpaWpiNyIsInVzZXJuYW1lIjoiZ2lhbmNhZ2FsbGFyZG9A Z21haWwuY29tIn0.GrO2XLoMnChN3Dg6H8G7LC3ZY4O_c1-DwvRYHCx8iiDqprFMK7j U43vo6W4ILNqP_QA1sDoEQaD9HJJ7iLfVBojh1tgiFyzFzkX4T3m63eHRSFfIZAToTG YOQoeZchsYb3UAffvrzR1JlUPjwf3U1YRfBEu8ueIR6_OUMZdXC8TLS3pqEpXnPr6S- _bndpFRs5wZpt0BPSJ4OnhM2AYh6pqFucjL9nsPmIaujJQVwdR8oNcrfeFuIv5t55H_ DRDpQCSYstac1nFSm00P3EMdbOX6Lh8dTU5dBOXe17Bfh7mDEP-FnF_J47COVFB_sYh 7JXyePfK6kKTlSeV0Ev0pew

{

"terminalId": "1122334455",

"merchantId": "341198210",

"merchantName": "PRUEBAS NIUBIZ",

"dateTime": "201030000000",

"currencyId": "604",

"channelId": 6,

"amount": 0,

"dataMap": {

 merchantId: "341198210",

 currentProductCode: "984747",

 cardNumber: "4474118355632240",

 expirationMonth: "10",

 expirationYear: "2027",

 firstNameCardholder: "Juan",

 lastNameCardholder: "Perez",

 documentTypeCardholder: "0",

 documentIdCardholder: "02345699",

 telephoneCardholder: "1",

 emailCardholder: "juan@gmail.com",

 beneficiaryId: "29890903",

 firstNameBeneficiary: "Maria",

 lastNameBeneficiary: "Perez",

 maximumAmount: "3434",

 channelId: "6",

 chargeType: "0",

 chargeAmount: "100.00",

 chargeDate: "2020-10-31",

 periodicity: "2",

 automaticRetry: "1",

 newProductCode: "0051"

 }

}



  B.3 Lenguajes:

  • Node
  • JavaScript
  • Python

const request = require('request');

const options = {

 method: 'POST',

 url: 'https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.changeProduct'

 headers: {

  'Authorization': '{{accessToken}}',

  accept: 'application/json',

  'content-type': 'application/json'

 },

 body: {

  "terminalId": "1122334455",

  "merchantId": "341198210",

  "merchantName": "PRUEBAS NIUBIZ",

  "dateTime": "201030000000",

  "currencyId": "604",

  "channelId": 6,

  "amount": 0,

  "dataMap": {

   merchantId: "341198210",

   currentProductCode: "984747",

   cardNumber: "4474118355632240",

   expirationMonth: "10",

   expirationYear: "2027",

   firstNameCardholder: "Juan",

   lastNameCardholder: "Perez",

   documentTypeCardholder: "0",

   documentIdCardholder: "02345699",

   telephoneCardholder: "1",

   emailCardholder: "juan@gmail.com",

   beneficiaryId: "29890903",

   firstNameBeneficiary: "Maria",

   lastNameBeneficiary: "Perez",

   maximumAmount: "3434",

   channelId: "6",

   chargeType: "0",

   chargeAmount: "100.00",

   chargeDate: "2020-10-31",

   periodicity: "2",

   automaticRetry: "1",

   newProductCode: "0051"

  }

 },

json: true

};

request(options, function (error, response, body) {

 if (error) throw new Error(error);

 console.log(body);

});



C. Response:

  C.1 Tabla de parámetros:

Campo Tipo Longitud Obligatorio Descripción
TRAMA EXITOSA: 200
header json Entidad que contiene información de la transacción en la Plataforma Canales.
merchantId string max 9 SI Código del comercio
traceNumber string max 6 NO Número de transacción
operationType string max 1 NO Tipo de operación
dateTime string max 20 SI Fecha de la transacción en formato YYmmDDhhMMss
amount string max 12 SI Importe
currencyId string max 3 SI Código de moneda
– 604 Soles
– 840 Dólares
status string max 3 SI Código de respuesta. Siempre es 200
data String Max 200 NO No se devuelve para productos recurrentes
dataMap json SI Entidad en donde se definen los datos para la operación
dataMap.messageResponse json SI Respuesta
dataMap.messageResponse
.header
json SI Cabecera
dataMap.messageResponse
.header.status
json SI Estado
dataMap.messageResponse
.header.status.bus
ReponseType
string max 1 SI Tipo de respuesta
dataMap.messageResponse
.header.status.bus
ResponseCode
string max 4 SI Código del servicio
dataMap.messageResponse
.header.status.bus
ResponseMessage
string max 200 SI Mensaje del servicio
dataMap.messageResponse
.header.status.bus
ResponseMsgId
string max 20 SI Id de transacción interna
dataMap.messageResponse
.header.status.srv
ResponseCode
string max 4 SI Código de respuesta
dataMap.messageResponse
.header.status.srv
ResponseMessage
string max 200 SI Mensaje de respuesta
dataMap.messageResponse
.body
json SI Cuerpo del mensaje
dataMap.messageResponse
.body.comercioRegistrar
AfiliacionResponse
json SI Respuesta
dataMap.messageResponse
.body.comercioCambiar
ProductoBeneficiarioResponse
.idBeneficiario
string max 50 SI Id del beneficiario
dataMap.messageResponse
.body.comercioCambiar
ProductoBeneficiarioResponse
.nomBeneficiario
string max 100 NO Nombre del beneficiario
dataMap.messageResponse
.body.comercioCambiar
ProductoBeneficiarioResponse
.apePatBeneficiario
string max 100 NO Apellido paterno del beneficiario
dataMap.messageResponse
.body.comercioCambiar
ProductoBeneficiarioResponse
.codProducto
string max 40 SI Código de producto
dataMap.messageResponse
.body.comercioCambiar
ProductoBeneficiarioResponse
.nomProducto
string max 50 SI Nombre de producto
dataMap.messageResponse
.body.comercioCambiar
ProductoBeneficiarioResponse
.nomTarHabiente
string max 100 NO Nombre del tarjetahabiente
dataMap.messageResponse
.body.comercioCambiar
ProductoBeneficiarioResponse
.apePatTarHabiente
String max 100 NO Apellido del tarjetahabiente
TRAMA ERRONEA: 400
header json NO Entidad que contiene información de la transacción en la Plataforma Canales.
merchantId string max 9 SI Código del comercio
traceNumber string max 6 NO Número de transacción
operationType string max 1 NO Tipo de operación
dateTime string max 20 SI Fecha de la transacción en formato YYmmDDhhMMss
amount string max 12 SI Importe
currencyId string maxLength: 3 NO Código de moneda
status string max 3 SI Código de respuesta. Siempre es 400
data String Max 200 NO No se devuelve para productos recurrentes
dataMap json SI Entidad en donde se definen los datos para la operación
dataMap.messageResponse
json SI Respuesta
dataMap.messageResponse
.header
json SI Cabecera
dataMap.messageResponse
.header.status
json SI Estado
dataMap.messageResponse
.header.status.bus
ReponseType
string max 1 SI Tipo de respuesta
dataMap.messageResponse
.header.status.bus
ResponseCode
string max 4 SI Código del servicio
dataMap.messageResponse
.header.status.bus
ResponseMessage
string max 200 SI Mensaje del servicio
dataMap.messageResponse
.header.status.bus
ResponseMsgId
string max 20 SI Id de transacción interna
dataMap.messageResponse
.header.status.srv
ResponseCode
string max 4 SI Código de respuesta
dataMap.messageResponse
.header.status.srv
ResponseMessage
string max 200 SI Mensaje de respuesta
dataMap.messageResponse
.body
json SI Cuerpo del mensaje
dataMap.messageResponse
.body.comercioCambiar
ProductoBeneficiario
Response
json NO Respuesta
TRAMA ERRONEA: 401
description text max 1000 NO Descripción relacionada al error. Este error se presenta cuando las credenciales no son válidas


  C.2 Trama de ejemplo:

  • Caso 200
  • Caso 400
  • Caso 401

Status Code 200 OK

Content-Type: application/json

{

 "header": "",

 "merchantId": "341198210",

 "traceNumber": null,

 "operationType": null,

 "dateTime": "201030000000",

 "amount": "000000000000",

 "currencyId": "604",

 "status": "200",

 "data": null,

 "dataMap": {

  "messageResponse": {

   "header": {

    "status": {

     "busResponseType": "0",

     "busResponseCode": "000",

     "busResponseMessage": "Exito",

     "busResponseMsgId": "42524b4553424130516de8481abd11eb9053ac110b990000",

     "srvResponseCode": "000",

     "srvResponseMessage": "EJECUCIÓN CON ÉXITO",

     "srvResponseMessage": "Cambio de producto con éxito"

    }

   },

   "body": {

    "comercioCambiarProductoBeneficiarioResponse": {

     "idBeneficiario": "29890903",

     "nomBeneficiario": "Maria",

     "apePatBeneficiario": "Perez",

     "codProducto": "0051",

     "nomProducto": "MENSUALIDAD",

     "nomTarHabiente": "Juan",

     "apePatTarHabiente": "Perez"

    }

   }

  }

 }

}



D. Códigos de Respuesta

Respuesta Descripción
200 Cambio de producto realizado con éxito
400 Error en el cambio de producto
401 Error relacionado al acceso no autorizado

API de Registro de solicitud #

El comercio afiliado debe asegurar que su integración (desarrollo) sea lo más segura posible aplicando las medidas preventivas que considere necesario.

Todas las invocaciones a las APIs (servicios backend) de Niubiz tienen que ser realizadas host to host.


A. Endpoint

Ambiente URL de API
Testing https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.requestProduct
Producción https://apiprodpos.vnforapps.com/api.posservices/api/v1/service/recurrence.requestProduct
Ambiente
Testing
URL de API
https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.requestProduct
Producción
URL de API
https://apiprodpos.vnforapps.com/api.posservices/api/v1/service/recurrence.requestProduct


B. Request y casos

   B.1 Tabla de Parámetros

Campo Tipo Longitud Obligatorio Descripción
HEADER
accessToken Text Max 1000 SI Token generado con el API de Seguridad
BODY
terminalId String Max 8 NO Número de terminal
merchantId String Max 9 SI Código del comercio
merchantName String Max 40 SI Nombre del comercio
traceNumber String Max 6 SI Número de registro
referenceNumber String Max 6 SI Número de referencia
dateTime String Max 12 NO Date time for operation in YYMMDD HH:MM:SS format
currencyId String Max 3 NO Código de moneda en la que se registra
– Soles (604)
– Dólares (840)
channelId integer($int32) NO Código de canal de origen
amount number($double) NO Importe
companyId String Max 3 SI Company Id for operation
operationType String Max 1 NO Tipo de operación
dataMap Json SI Entidad en donde se definen los datos para la transacción
dataMap.merchantId String Max 40 SI Código de comercio
dataMap.productCode String Max 40 SI Valor registrado en el Sistema de Pagos Recurrente
dataMap.cardNumber String Max 40 SI Número de tarjeta
dataMap.expirationMonth String Max 2 SI Mes de expiración de tarjeta (Formato 12)
dataMap.expirationYear String Max 4 SI Año de expiración de tarjeta
dataMap.firstNameCardholder String max 100 SI Nombre tarjeta habiente
dataMap.lastNameCardholder String Max 100 SI Apellido tarjeta habiente
dataMap.documentTypeCardholder String Max 1 NO Tipo documento tarjeta Puede ser:
– 0 DNI
– 1 Carnet extranjería
– 2 pasaporte
dataMap.documentIdCardholder String Max 50 NO Id documento tarjeta habiente
dataMap.telephoneCardholder String Max 25 NO Teléfono tarjeta habiente
dataMap.emailCardholder String Max 200 NO Correo tarjeta habiente
dataMap.beneficiaryId String Max 50 SI Id de beneficiario
dataMap.firstNameBeneficiary String Max 100 NO Nombre beneficiario
dataMap.lastNameBeneficiaryId String Max 100 NO Apellido beneficiario
dataMap.maximunAmount String Max 10 NO Monto máximo. Precisión hasta 8 valores enteros con 2 decimales
dataMap.channelId String Max 1 SI Canal consumidor. Puede ser 6 (CE)


   B.2 Trama de Ejemplo

Request

POST: /api.posservices/api/v1/service/recurrence.requestProduct HTTP/1.1

HOST: apitestposenv.vnforapps.com

Content-Type: application/json

Authorization: eyJraWQiOiJmWk1tV3pZR0RBckxHektvalNCK2w3SjFhMnNPXC9zQnNw OTlNNmNuM3F5MD0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJkMTlhM2I0Zi01NzYxLTRlY TEtYjBmYS1iNWNiNjU5OWQ5NWQiLCJjb2duaXRvOmdyb3VwcyI6WyJjdXN0b2RpbyJdLCJ ldmVudF9pZCI6ImM2OTZmZjVkLTZjOTctNDE4NC05MGIxLTA5NjM2MWY4M2E2ZSIsInRva 2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoiYXdzLmNvZ25pdG8uc2lnbmluLnVzZXIuYWR taW4iLCJhdXRoX3RpbWUiOjE2MDIxMTM4NzksImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvL WlkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbVwvdXMtZWFzdC0xXzJjSjFTZTFmSSIsImV 4cCI6MTYwMjExNzQ3OSwiaWF0IjoxNjAyMTEzODc5LCJqdGkiOiJiOTVmOGU0ZS1kZGE4L TRkZmUtOTc0NC1kOGQwZGEyMDFlMzMiLCJjbGllbnRfaWQiOiIxMGx2MDYxN281ZGljNTF lYnNucWVpaWpiNyIsInVzZXJuYW1lIjoiZ2lhbmNhZ2FsbGFyZG9AZ21haWwuY29tIn0.G rO2XLoMnChN3Dg6H8G7LC3ZY4O_c1-DwvRYHCx8iiDqprFMK7jU43vo6W4ILNqP_QA1sDo EQaD9HJJ7iLfVBojh1tgiFyzFzkX4T3m63eHRSFfIZAToTGYOQoeZchsYb3UAffvrzR1Jl UPjwf3U1YRfBEu8ueIR6_OUMZdXC8TLS3pqEpXnPr6S-_bndpFRs5wZpt0BPSJ4OnhM2AY h6pqFucjL9nsPmIaujJQVwdR8oNcrfeFuIv5t55H_DRDpQCSYstac1nFSm00P3EMdbOX6L h8dTU5dBOXe17Bfh7mDEP-FnF_J47COVFB_sYh7JXyePfK6kKTlSeV0Ev0pew

{

 "terminalId":"614006066",

 "merchantId":"341198210",

 "merchantName":"PRUEBAS VISANET",

 "dateTime":"1487346033729",

 "currencyId":"604",

 "channelId":6,

 "amount":0,

 "dataMap":{

  "merchantId":"341198210", 

  "productCode":"984747", 

  "cardNumber":"5443599980000447",

  "expirationMonth":"10", 

  "expirationYear":"2027", 

  "firstNameCardholder":"Juan", 

  "lastNameCardholder":"Perez", 

  "documentTypeCardholder":"0", 

  "documentIdCardholder":"12345678", 

  "telephoneCardholder":"1",

  "emailCardholder":"juan@gmail.com",

  "beneficiaryId":"2688987",

  "firstNameBeneficiary":"Maria",

  "lastNameBeneficiary":"Perez", 

  "maximumAmount":"3434",

  "channelId":"6" 

 }

}



   B.3 Lenguajes

  • Node
  • JavaScript
  • Python

const request = require('request');

const options = {

 method: 'POST',

 url: 'https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.requestProduct',

 headers: {

  'Authorization': '{{accessToken}}',

  accept: 'application/json',

  'content-type': 'application/json'

 },

 body: {

  "terminalId":"614006066",

  "merchantId":"341198210",

  "merchantName":"PRUEBAS VISANET",

  "dateTime":"1487346033729",

  "currencyId":"604",

  "channelId":6,

  "amount":0,

  "dataMap":{

   "merchantId":"341198210",

   "productCode":"984747",

   "cardNumber":"5443599980000447",

   "expirationMonth":"10",

   "expirationYear":"2027",

   "firstNameCardholder":"Juan",

   "lastNameCardholder":"Perez",

   "documentTypeCardholder":"0",

   "documentIdCardholder":"12345678",

   "telephoneCardholder":"1",

   "emailCardholder":"juan@gmail.com",

   "beneficiaryId":"2688987",

   "firstNameBeneficiary":"Maria",

   "lastNameBeneficiary":"Perez",

   "maximumAmount":"3434",

   "channelId":"6"

  }

 },

 json: true

};

request(options, function (error, response, body) {

 if (error) throw new Error(error);

 console.log(body);



C. Response

   C.1 Tabla de Parámetros

Campo Tipo Longitud Obligatorio Descripción
TRAMA EXITOSA: 200
header Json
merchantId String MaxLength: 9 NO Código del comercio
traceNumber String MaxLength: 6 NO Número de transacción
operationType String MaxLength: 1 NO Tipo de operación
dateTime String MaxLength: 14 NO Fecha de la transacción (Formato YYmmDDhhMMss)
amount String NO Importe
currencyId String MaxLength: 3 NO Código de moneda
status String MaxLength: 3 NO Código de respuesta
– 000 -> Exito
– 400 -> Error
dataMap Json Entidad que contiene la información adicional de la transacción.
MessageResponse Json
Header Json
Status Json MaxLength 3
busResponseType String MaxLength 1 SI Tipo de respuesta
busResponseCode String MaxLength 4 SI Código del servicio
busResponseMessage String MaxLength 200 SI Mensaje del servicio
busResponseMsgId String MaxLength 20 SI Id de transacción interna
srvResponseCode String MaxLength 4 SI Código de respuesta
srvResponseMessage String MaxLength 200 SI Mensaje de respuesta
Body Json
ComercioCambiarProductoBeneficiarioResponse Json SI
idBeneficiario String MaxLength 50 SI Id del beneficiario
nomBeneficiario String MaxLength 100 SI Nombre del beneficiario
apePatBeneficiario String MaxLength 100 SI Apellido Paterno
codProducto String MaxLength 40 SI Código de producto
nomProducto String MaxLength 50 SI Nombre de Producto
nomTarHabiente String MaxLength 100 SI Nombre del tarjeta habiente
apePatTarhabiente String MaxLength 100 SI Apellido del tarjeta habiente
TRAMA ERRÓNEA: 400
header Json
merchantId String MaxLength: 9 NO Código del comercio
traceNumber String MaxLength: 6 NO Número de transacción
operationType String maxLength: 1 NO Tipo de operación
dateTime String MaxLength: 14 NO Fecha de la transacción (Formato YYmmDDhhMMss)
amount String NO Importe
currencyId String MaxLength: 3 NO Código de moneda
Status String MaxLength: 3 NO Código de respuesta
– 000 -> Exito
– 400 -> Error
dataMap Json Entidad que contiene la información adicional de la transacción.
MessageResponse Json
Header Json
Status Json 3
busResponseType String MaxLength 1 SI Tipo de respuesta
busResponseCode String MaxLength 4 SI Código del servicio
busResponseMessage String MaxLength 200 SI Mensaje del servicio
busResponseMsgId String MaxLength 200 SI Id de transacción interna
TRAMA ERRÓNEA: 401
description Text Max 1000 NO Descripción relacionada al error. Este error se presenta cuando las credenciales no son válidas


   C.2 Tramas de Ejemplo

  • Caso 200
  • Caso 400
  • Caso 401

Status Code 200 OK

Content-Type: application/json

{

 "header": "",

 "merchantId": "341198210",

 "traceNumber": null,

 "operationType": null,

 "dateTime": "1487346033729",

 "amount": "000000000000",

 "currencyId": "604",

 "status": "400",

 "data": null,

 "dataMap": {

  "MessageResponse": {

   "Header": {

    "Status": {

     "busResponseType": "1",

     "busResponseCode": "000",

     "busResponseMessage": "Exito",

     "busResponseMsgId": "42524b45534241306b61a7a21a4611eb9051ac110b990000",

     "srvResponseCode": "000",

     "srvResponseMessage": "Solicitud de afiliacion con exito"

    }

   },

   "Body": {

    "ComercioSolicitudAfiliacionResponse": {

     "idBeneficiario": "2688987",

     "nomBeneficiario": "María",

     "apePatBeneficiario": "Gómez",

     "codProducto": "984747",

     "nomProducto": "PENSIONES",

     "nomTarHabiente": "Juan",

     "apePatTarhabiente": "Perez"

    }

   }

  }

 }

}



D. Códigos de respuesta

Código Descripción
200 Registro de afiliación
– 200 Éxito
– 400 Éxito
200 Error relacionado al acceso no autorizado

API de Listado de productos #

El comercio afiliado debe asegurar que su integración (desarrollo) sea lo más segura posible aplicando las medidas preventivas que considere necesario.

Todas las invocaciones a las APIs (servicios backend) de Niubiz tienen que ser realizadas host to host.


A. Endpoint

Ambiente URL de API
Testing https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.getProductsByMerchantId
Producción https://apipos.vnforapps.com/api.posservices/api/v1/service/recurrence.getProductsByMerchantId
Ambiente
Testing
URL de API
https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.getProductsByMerchantId
Producción
URL de API
https://apipos.vnforapps.com/api.posservices/api/v1/service/recurrence.getProductsByMerchantId


B. Request y Casos

  B.1 Tabla de campos

Campo Tipo Longitud Obligatorio Descripción
HEADER
accessToken Text max 1000 SI Token generado con el API de Seguridad
BODY
terminalId string max 9 SI Número de terminal
merchantId string max 9 SI Código del comercio
merchantName string max 40 SI Nombre del comercio
traceNumber string max 6 NO Número de registro
referenceNumber string max 6 NO Número de referencia
dateTime string max 12 SI Fecha y hora para la operación en formato YYmmDDHHmmss
currencyId json max 3 SI Código de moneda en la que se registra:
– Soles (604)
– Dólares (840)
channelId integer($int32) max 1 SI Código de canal de origen. Siempre enviar 6
amount number($double) SI Importe. Siempre enviar 0
companyId string max 3 NO Id de la compañía para la operación
operationType string max 1 NO Tipo de operación
dataMap json SI Entidad en donde se definen los datos de afiliación
dataMap.merchantId string max 9 SI Código de comercio


  B.2 Trama de ejemplo:

Request

POST /api.posservices/api/v1/service/recurrence.getProductsByMerchantId HTTP/1.1

HOST: apitestposenv.vnforapps.com

Content-Type: application/json

Authorization:eyJraWQiOiJmWk1tV3pZR0RBckxHektvalNCK2w3SjFhMnNPXC9zQnNwO TlNNmNuM3F5MD0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJjNTAxNjYyOS04Zjc2LTQ1M2 QtYjhlNC01MGJjZDI5YjI2NTAiLCJldmVudF9pZCI6IjA2NWQ3ZjljLWE2ZDktNDkzZi05 NDNhLWNmZDJmMDEyOWU4MyIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoiYXdzLm NvZ25pdG8uc2lnbmluLnVzZXIuYWRtaW4iLCJhdXRoX3RpbWUiOjE2MDQwMDA3ODksImlz cyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbVwvdX MtZWFzdC0xXzJjSjFTZTFmSSIsImV4cCI6MTYwNDAwNDM4OSwiaWF0IjoxNjA0MDAwNzg5 LCJqdGkiOiI3YmE2YWRjYy1hMjYyLTQzM2UtYWI5MS1mNzcyYWI5ZTljNWQiLCJjbGllbn RfaWQiOiIxMGx2MDYxN281ZGljNTFlYnNucWVpaWpiNyIsInVzZXJuYW1lIjoiaW50ZWdy YWNpb25lcy52aXNhbmV0QG5lY29tcGx1cy5jb20ifQ.OPAZwofte27TYrC8NgjlHCRftgx tXHdqlg-IImgx06b9rKNtJLGMNU0EG9HMsX2_sx4qS9oyHp2uBK7qyA2v2bzD1Vn8vmKSh bugu95zskdjs5GMhF_AlrjQiI4XIv2WC3zBo5n171ePhLHeVBzcUZwQk1CuHQSymJzLWtW W5WaI2kw7wiLYW4LEX64qAwIiCAFzo_ajvTxomO8QhssjJSKFfEdXWMGfzPDkMmHIMb9zf NVPWXRB1ajxheQisevWDytFjM8FA-o6-wObs_W9g4QENF6O4KDs5LUa885IgsnASXy2I79 X3Ciw_I2mWaAmG71NAxSt_rQdClCuk_04hg

{

"terminalId": "614006066",

"merchantId": "341198210",

"merchantName": "PRUEBAS NIUBIZ",

"dateTime": "1487346033729",

"currencyId": "604",

"channelId": 6,

"amount": 0,

"dataMap": {

 "merchantId": "341198210"

 }

}



  B.3 Lenguajes:

  • Node
  • JavaScript
  • Python

const request = require('request');

const options = {

 method: 'POST',

 url:'https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.getProductsByMerchantId',

 headers: {

  'Authorization': '{{accessToken}}',

  accept: 'application/json',

  'content-type': 'application/json'

 },

 body: {

  terminalId: "614006066",

  merchantId: "341198210",

  merchantName: "PRUEBAS NIUBIZ",

  dateTime: "1487346033729",

  currencyId: "604",

  channelId: 6,

  amount: 0,

  dataMap: {

   merchantId: "341198210"

  }

 },

json: true

};

request(options, function (error, response, body) {

 if (error) throw new Error(error);

 console.log(body);

});



C. Response:

  C.1 Tabla de parámetros:

Campo Tipo Longitud Obligatorio Descripción
TRAMA EXITOSA: 200(COMERCIO CON PRODUCTOS)
header json NO Entidad que contiene información de la transacción en la Plataforma Canales.
merchantId string max 9 SI Código del comercio
traceNumber string max 6 NO Número de transacción
operationType string max 1 NO Tipo de operación
dateTime string max 20 SI Fecha de la transacción en formato YYmmDDhhMMss
amount string max 12 NO Importe
currencyId string max 3 NO Código de moneda
– 604 Soles
– 840 Dólares
– null Ninguno
status string max 3 SI Código de respuesta. Siempre es 000
data String max 200 NO No se devuelve para productos recurrentes
dataMap json SI Entidad en donde se definen los datos para la transacción
dataMap.idProducto
string max 10 SI Identificación de producto
dataMap.codProducto string max 40 SI Código de producto
dataMap.nomProducto string max 50 SI Nombre de producto
TRAMA EXITOSA: 200 (COMERCIO SIN PRODUCTOS)
header json NO Entidad que contiene información de la transacción en la Plataforma Canales.
merchantId string max 9 SI Código del comercio
traceNumber string max 6 NO Número de transacción
operationType string max 1 NO Tipo de operación
dateTime string max 20 SI Fecha de la transacción en formato YYmmDDhhMMss
amount string max 12 NO Importe
currencyId string max 3 NO Código de moneda
– 604 Soles
– 840 Dólares
status string max 3 SI Código de respuesta. Siempre es 000
data String Max 200 NO No se devuelve para productos recurrentes
dataMap json SI Entidad en donde se definen los datos para la transacción
TRAMA ERRONEA: 400
header json NO Entidad que contiene información de la transacción en la Plataforma Canales.
merchantId string max 9 NO Código del comercio
traceNumber string max 6 NO Número de transacción
operationType string max 1 NO Tipo de operación
dateTime string max 20 SI Fecha de la transacción en formato YYmmDDhhMMss
amount string max 12 NO Importe
currencyId string max 3 SI Código de moneda
– 604 Soles
– 840 Dólares
– null Ninguno
status string max 3 SI Código de respuesta. Siempre es 400
data String Max 200 NO No se devuelve para productos recurrentes
dataMap json SI Entidad en donde se definen los datos para la transacción
dataMap.messageResponse
json SI
dataMap.messageResponse
.header
json SI
dataMap.messageResponse
.header.status
json SI
dataMap.messageResponse
.header.status.bus
ReponseType
string max 1 SI Tipo de respuesta de la invocación del servicio. Puede ser:
– 0 -> Éxito
– 1, 2 -> Error
dataMap.messageResponse
.header.status.bus
ResponseCode
string max 4 SI Código de respuesta del WAS
dataMap.messageResponse
.header.status.bus
ResponseMessage
string max 200 SI Mensaje de respuesta del WAS
dataMap.messageResponse
.header.status.bus
ResponseMsgId
string max 20 SI Identificador único de la transacción
TRAMA ERRONEA: 401
description text max 1000 NO Descripción relacionada al error. Este error se presenta cuando las credenciales no son válidas


  C.2 Trama de ejemplo:

  • Caso 200
  • Caso 200
  • Caso Error 400
  • Caso 401

(Comercio con productos)

Status Code 200 OK

Content-Type: application/json

{

 "header": "",

 "merchantId": "341198210",

 "traceNumber": null,

 "operationType": null,

 "dateTime": "1487346033729",

 "amount": "000000000000",

 "currencyId": "604",

 "status": "000",

 "data": null,

 "dataMap": [

  {

   "idProducto": "000",

   “codProducto”: "1212",

   “nomProducto”: "CUOTA VISANET",

  },

  {

   "idProducto": "70",

   "codProducto": "001",

   "nomProducto": "PRUEBA VISANET",

  }

 ]

}



D. Códigos de Respuesta

Respuesta Descripción
200 Consulta de listado de productos en un comercio realizada con éxito
400 Error en la consulta
401 Error relacionado al acceso no autorizado

API de Mantenimiento de afiliación #

El comercio afiliado debe asegurar que su integración (desarrollo) sea lo más segura posible aplicando las medidas preventivas que considere necesario.

Todas las invocaciones a las APIs (servicios backend) de Niubiz tienen que ser realizadas host to host.


A. Endpoint

Ambiente URL de API
Testing https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.modifyaffiliated
Producción https://apiprodpos.vnforapps.com/api.posservices/api/v1/service/recurrence.modifyaffiliated
Ambiente
Testing
URL de API
https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.modifyaffiliated
Producción
URL de API
https://apiprodpos.vnforapps.com/api.posservices/api/v1/service/recurrence.modifyaffiliated


B. Request y Casos

  B.1 Tabla de campos

Campo Tipo Longitud Obligatorio Descripción
HEADER
accessToken Text max 1000 SI Token generado con el API de Seguridad
BODY
terminalId string max 9 SI Número de terminal
merchantId string max 9 SI Código del comercio
merchantName string max 40 NO Nombre del comercio
traceNumber string max 6 NO Número de registro
referenceNumber string max 6 SI Número de referencia
dateTime string max 12 SI Date time for operation in YYMMDD HH:MM:SS format
dataMap json SI Entidad en donde se definen los datos para la transacción
dataMap.idAffiliation string max 32 SI Id de la afiliación
dataMap.merchantId string max 40 SI Este código de comercio es el de la plataforma REC
dataMap.cardNumber string max 40 NO Número de tarjeta
dataMap.expirationMonth string max 2 NO Mes expiración tarjeta
dataMap.expirationYear string max 4 NO Año expiración tarjeta
dataMap.firstNameCardholder string max 100 NO Nombre tarjeta habiente
dataMap.lastNameCardholder string max 100 NO Apellido tarjeta habiente
dataMap.secondLastNameC ardHolder string max 100 NO Apellido materno tarjeta habiente
dataMap.documentTypeCardholder string max 50 NO Tipo documento tarjeta habiente. Puede ser:
– 0 DNI
– 1 Carnet extranjería
– 2 pasaporte
dataMap.documentIdCardholder string max 25 NO Id documento tarjeta habiente
dataMap.telephoneCardholder string max 25 NO Teléfono tarjeta habiente
dataMap.emailCardholder string max 200 NO Correo tarjeta habiente
dataMap.beneficiaryId string max 50 SI Id beneficiario
dataMap.firstNameBeneficiary string max 100 NO Nombre beneficiario
dataMap.lastNameBeneficiaryId string max 100 NO Apellido paterno beneficiario
dataMap.channelId string max 1 SI Canal Consumidor, el cual puede ser: 6 CE


  B.2 Trama de ejemplo:

Request

POST: /api.posservices/api/v1/service/recurrence.modifyAfiliated HTTP/1.1

HOST: apitestposenv.vnforapps.com

Content-Type: application/json

Authorization: eyJraWQiOiJmWk1tV3pZR0RBckxHektvalNCK2w3SjFhMnNPXC9zQn NwOTlNNmNuM3F5MD0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJkMTlhM2I0Zi01NzYxL TRlYTEtYjBmYS1iNWNiNjU5OWQ5NWQiLCJjb2duaXRvOmdyb3VwcyI6WyJjdXN0b2Rpb yJdLCJldmVudF9pZCI6ImM2OTZmZjVkLTZjOTctNDE4NC05MGIxLTA5NjM2MWY4M2E2Z SIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoiYXdzLmNvZ25pdG8uc2lnbmluL nVzZXIuYWRtaW4iLCJhdXRoX3RpbWUiOjE2MDIxMTM4NzksImlzcyI6Imh0dHBzOlwvX C9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbVwvdXMtZWFzdC0xXzJjS jFTZTFmSSIsImV4cCI6MTYwMjExNzQ3OSwiaWF0IjoxNjAyMTEzODc5LCJqdGkiOiJiO TVmOGU0ZS1kZGE4LTRkZmUtOTc0NC1kOGQwZGEyMDFlMzMiLCJjbGllbnRfaWQiOiIxM Gx2MDYxN281ZGljNTFlYnNucWVpaWpiNyIsInVzZXJuYW1lIjoiZ2lhbmNhZ2FsbGFyZ G9AZ21haWwuY29tIn0.GrO2XLoMnChN3Dg6H8G7LC3ZY4O_c1-DwvRYHCx8iiDqprFMK 7jU43vo6W4ILNqP_QA1sDoEQaD9HJJ7iLfVBojh1tgiFyzFzkX4T3m63eHRSFfIZAToT GYOQoeZchsYb3UAffvrzR1JlUPjwf3U1YRfBEu8ueIR6_OUMZdXC8TLS3pqEpXnPr6S- _bndpFRs5wZpt0BPSJ4OnhM2AYh6pqFucjL9nsPmIaujJQVwdR8oNcrfeFuIv5t55H_D RDpQCSYstac1nFSm00P3EMdbOX6Lh8dTU5dBOXe17Bfh7mDEP-FnF_J47COVFB_sYh7J XyePfK6kKTlSeV0Ev0pew

{

"terminalId": "1122334455",

"merchantId": "341198210",

"merchantName": "PRUEBAS NIUBIZ",

"dateTime": "201030000000",

"dataMap": {

 "idAffiliation": 21333179,

 "merchantId": "341198210",

 "cardNumber": "4474118355632240",

 "expirationMonth": "10",

 "expirationYear": "2027",

 "firstNameCardholder": "Juan",

 "lastNameCardholder": "Perez",

 "secondLastNameCardHolder": "Gómez",

 "documentTypeCardHolder": "0",

 "documentIdCardHolder": "02345698",

 "telephoneCardHolder": "1",

 "emailCardHolder": "juan@gmail.com",

 "beneficiaryId": "29890903",

 "firstNameBeneficiary": "María",

 "lastNameBeneficiary": "Perez",

 "channelId": "6"

 }

}



  B.3 Lenguajes:

  • Node
  • JavaScript
  • Python

const request = require('request');

const options = {

 method: 'POST',

 url: 'https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.modifyAfiliated',

 headers: {

  'Authorization': '{{accessToken}}',

  accept: 'application/json',

  'content-type': 'application/json'

 },

 body: {

  terminalId: "1122334455",

  merchantId: "341198210",

  merchantName: "PRUEBAS NIUBIZ",

  dateTime: "201030000000",

  "dataMap": {

   "documentTypeCardholder": "0",

   "idAffiliation": 21333179,

   "merchantId": "341198210",

   "cardNumber": "4474118355632240",

   "expirationMonth": "10",

   "expirationYear": "2027",

   "firstNameCardholder": "Juan",

   "lastNameCardholder": "Perez",

   "secondLastNameCardHolder": "Gómez",

   "documentTypeCardHolder": "0",

   "documentIdCardHolder": "02345698",

   "telephoneCardHolder": "1",

   "emailCardHolder": "juan@gmail.com",

   "beneficiaryId": "29890903",

   "firstNameBeneficiary": "María",

   "lastNameBeneficiary": "Perez",

   "channelId": "6"

  }

 },

json: true

};

request(options, function (error, response, body) {

 if (error) throw new Error(error);

 console.log(body);

});



C. Response:

  C.1 Tabla de parámetros:

Campo Tipo Longitud Obligatorio Descripción
TRAMA EXITOSA: 200
header json NO Entidad que contiene información de la transacción en la Plataforma Canales.
merchantId string maxLength: 9 SI Código del comercio
traceNumber string maxLength: 6 NO Número de transacción
operationType string maxLength: 1 NO Tipo de operación
dateTime string maxLength: 14 SI Fecha de la transacción (Formato YYmmDDhhMMss)
amount string SI Importe
currencyId string maxLength: 3 NO Código de moneda
status string maxLength: 3 SI Código de respuesta
– 000 -> Éxito
– 400 – >Error
data String Max 200 NO No se devuelve para productos recurrentes
dataMap json SI Entidad que contiene la información adicional de la transacción.
messageResponse json SI
header json
status json SI
busResponseCode string NO Código de respuesta del WAS.
busResponseMessage string NO Mensaje de respuesta del WAS.
busResponseMsgId string NO Identificador único de la transacción.
srvResponseCode string NO Código de respuesta del servicio de negocio.
srvResponseMessage string NO Mensaje de respuesta del servicio de negocio.
respnseType string max 1 SI Tipo de respuesta de la invocación
body json
comercioMantenimiento
AfiliacionResponse
json
codigAccion string max 1 SI Código que indica el estado de la solicitud: 0(No Ok) – 1(ok). Sólo cuando es éxito
mensajeAccion string max 200 SI Mensaje que indica el estado de
la solicitud en caso de error o éxito
Sólo cuando es éxito
TRAMA ERRONEA: 400
header json Entidad que contiene información de la transacción en la Plataforma Canales.
merchantId string maxLength: 9 SI Código del comercio
traceNumber string maxLength: 6 NO Número de transacción
operationType string maxLength: 1 NO Tipo de operación
dateTime string maxLength: 14 SI Fecha de la transacción (Formato YYmmDDhhMMss)
amount string SI Importe
currencyId string maxLength: 3 NO Código de moneda
status string maxLength: 3 SI Código de respuesta
– 000 -> Éxito
– 400 -> Error
data String max 200 NO No devolverá datos para recurrentes.
dataMap json SI Entidad que contiene la información adicional de la transacción.
messageResponse json SI
header json
status json
busResponseCode string NO Código de respuesta del WAS.
busResponseMessage string NO Mensaje de respuesta del WAS.
busResponseMsgId string NO Identificador único de la transacción.
srvResponseCode string NO Código de respuesta del servicio de negocio.
srvResponseMessage string NO Mensaje de respuesta del servicio de negocio.
responseType string max 1 SI Tipo de respuesta de la invocación
body json
errorMessage json
message string max 200 NO Mensaje de error
TRAMA ERRONEA: 401
description text max 1000 NO Descripción relacionada al error. Este error se presenta cuando las credenciales no son válidas


  C.2 Trama de ejemplo:

  • Caso 200
  • Caso 400
  • Caso 401

Status Code 200 OK

Content-Type: application/json

{

 "header": "",

 "merchantId": "341198210",

 "traceNumber": null,

 "operationType": null,

 "dateTime": "201030000000",

 "amount": "000000000000",

 "currencyId": null,

 "status": "000",

 "data": null,

 "dataMap": {

  "messageResponse": {

   "header": {

    "status": {

     "busResponseCode": "0",

     "busResponseMessage": "EJECUCIÓN CON ÉXITO",

     "busResponseMsgId": "-",

     "srvResponseCode": "0",

     "srvResponseMessage": "EJECUCIÓN CON ÉXITO",

     "responseType": "0"

    }

   },

   "body": {

    "comercioMantenimientoAfiliacionResponse": {

     "codigoAccion": "1",

     "mensajeAccion": "EL PROCESO SE EJECUTO EXITOSAMENTE"

     }

   }

  }

 }

}



D. Códigos de Respuesta

Respuesta Descripción
200 Registro de afiliación realizada con éxito
400 Datos inválidos
401 Error relacionado al acceso no autorizado

API de Mantenimiento de lotes y cargos #

El comercio afiliado debe asegurar que su integración (desarrollo) sea lo más segura posible aplicando las medidas preventivas que considere necesario.

Todas las invocaciones a las APIs (servicios backend) de Niubiz tienen que ser realizadas host to host.


A. Endpoint

Ambiente URL de API
Testing https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.modifyCharge
Producción https://apipos.vnforapps.com/api.posservices/api/v1/service/recurrence.modifyCharge
Ambiente
Testing
URL de API
https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.modifyCharge
Producción
URL de API
https://apipos.vnforapps.com/api.posservices/api/v1/service/recurrence.modifyCharge


B. Request y casos

   B.1 Tabla de Parámetros

Campo Tipo Longitud Obligatorio Descripción
HEADER
accessToken Text Max 1000 SI Token generado con el API de Seguridad
BODY
terminalId String Max 9 SI Número de terminal
merchantId String Max 9 SI Código del comercio
merchantName String Max 40 SI Nombre del comercio
traceNumber String Max 6 NO Número de registro
referenceNumber String Max 6 NO Número de referencia
dateTime String Max 12 NO Fecha y hora para la operación en formato YYmmDDHHmmss
dataMap Json SI Entidad en donde se definen los datos para la transacción
dataMap.id int Max 32 SI Id del cargo o del lote
dataMap.merchantId String Max 9 SI Código del comercio
dataMap.chargeDate String Max 10 NO Fecha de cargo del pago. En este campo se puede manejar el concepto de periodo de gracia y solo puede ser modificable cuando la ‘Fecha Proceso Pago’ es 48 horas después que la fecha de hoy.
– Formato (YYYY-MM-DD)
dataMap.receiptNumber String Max 24 NO Número de recibo solo para mantenimiento de cargos
dataMap.chargeAmount String Max 16 NO Monto del cargo, precisión hasta 8 valores enteros con 2 decimales
dataMap.operationType String Max 1 SI Identificador que indica si el mantenimiento se realizará a los lotes(L) o a los cargos(C). Si se modifican lotes a una nueva fecha de proceso, este cambia de id.
dataMap.channelId String Max 1 SI Canal Consumidor. Puede ser:
– 6 Comercio Electrónico
– 2 Comercio


   B.2 Trama de Ejemplo

Request

POST /api.posservices/api/v1/service/recurrence.modifyCharge HTTP/1.1

Host: apitestposenv.vnforapps.com

Content-Type: application/json

Authorization:eyJraWQiOiJmWk1tV3pZR0RBckxHektvalNCK2w3SjFhMnNPXC9 zQnNwOTlNNmNuM3F5MD0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJkMTlhM2I0Zi 01NzYxLTRlYTEtYjBmYS1iNWNiNjU5OWQ5NWQiLCJjb2duaXRvOmdyb3VwcyI6Wy JjdXN0b2RpbyJdLCJldmVudF9pZCI6IjgyMDhjMmZiLTg2M2EtNGFmYi1hNmMwLT QyNTUyZWZmNTI3OSIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoiYXdzLm NvZ25pdG8uc2lnbmluLnVzZXIuYWRtaW4iLCJhdXRoX3RpbWUiOjE2MDQxMDkzMT QsImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYX dzLmNvbVwvdXMtZWFzdC0xXzJjSjFTZTFmSSIsImV4cCI6MTYwNDExMjkxNCwiaW F0IjoxNjA0MTA5MzE0LCJqdGkiOiIzZDRlZWQ5ZC05NTBjLTQxNDctODY3NS0zNW MxMDZmMDY3MjAiLCJjbGllbnRfaWQiOiIxMGx2MDYxN281ZGljNTFlYnNucWVpaW piNyIsInVzZXJuYW1lIjoiZ2lhbmNhZ2FsbGFyZG9AZ21haWwuY29tIn0.dbCqT_ f9gMq2KmeJwPug8FMZySVfzeQDZrIvkCxIECvtpVcwLG0IuMw4DzOKBDy4yUODwH HQiQPkDEiOw_UlHMm2H02i0Z8KfYehGXIvaIAFr1ZBbjD_e0j0-a8BVyS7cn2UKp -elWB7PH9EfLNQXRGtSrACSkYQZBjv1NPUe90J1wkau60ON6cCxdYsxQVMw9vd-N tu3TsAz3y-Y5s-Yah7WLgkFYbEXzEM3zU_pwpViTqA-aoY29DEuDIIJ1k5CJupK_ VKHoJkqoJ-K0iJZXGEkLMgijbsa8qaVItWLYlyHQrSB7GhIYKpyC6X7hCeX2sGC6 EQ3oVL4dWrcRwg0Q

{

 "terminalId": "614006066",

 "merchantId": "341198210",

 "merchantName": "PRUEBAS NIUBIZ",

 "dateTime": "1487346033729",

 "dataMap": {

  "id": 267045294,

  "merchantId": "341198210",

  "chargeDate": "2020-11-02",

  "receiptNumber": "129098",

  "chargeAmount": "20.00",

  "operationType": "C",

  "channelId": "6"

 }

}



   B.3 Lenguajes

  • Node
  • JavaScript
  • Python

const request = require('request');

const options = {

 method: 'POST',

 url: 'https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.modifyCharge',

 headers: {

  'Authorization': '{{accessToken}}',

  accept: 'application/json',

  'content-type': 'application/json'

 },

 body: {

  terminalId: "614006066",

  merchantId: "341198210",

  merchantName: "PRUEBAS NIUBIZ",

  dateTime: "1487346033729",

  dataMap: {

   Id: 267045294,

   merchantId: "341198210",

   chargeDate: "2020-11-02",

   receiptNumber: "129098",

   chargeAmount: "20.00",

   operationType: "C",

   channelId: "6"

  }

 },

 json: true

};

request(options, function (error, response, body) {

 if (error) throw new Error(error);

 console.log(body);

});



C. Response

   C.1 Tabla de Parámetros

Campo Tipo Longitud Obligatorio Descripción
TRAMA EXITOSA: 200
header Json NO Entidad que contiene información de la transacción en la Plataforma Canales.
merchantId String Max 9 SI Código del comercio
traceNumber String Max 6 NO Número de transacción
operationType String Max 1 NO Tipo de operación
dateTime String Max 20 SI Fecha de la transacción en formato YYmmDDhhMMss
amount String Max 12 NO Importe
currencyId String Max 3 Moneda de la transacción
– 604 Soles
– 840 Dólares
– null Ninguno
status String Max 3 SI Código de respuesta. Siempre es 000
data String Max 200 NO No se devuelve para productos Recurrentes
dataMap Json SI Entidad en donde se definen los datos para la transacción
dataMap.messageResponse Json SI
dataMap.messageResponse.header Json SI
dataMap.messageResponse
.header.status
Json SI
dataMap.messageResponse.header
.status.busResponseCode
String Max 4 SI Código de respuesta del WAS
dataMap.messageResponse
.header.status.busResponse
Message
String Max 200 SI Mensaje de respuesta del WAS
dataMap.messageResponse.
header.status.busResponseMsgId
String Max 20 NO Identificador único de la transacción
dataMap.messageResponse
.header.status.
srvResponseCode
String Max 4 SI Código de respuesta del servicio de negocio
dataMap.messageResponse
.header.status.srv
ResponseMessage
String Max 200 SI Mensaje de respuesta del servicio de negocio.
dataMap.messageResponse
.header.status.busReponseType
String Max 1 SI Tipo de respuesta de la invocación del servicio. Puede ser:
– 0 -> Éxito
– 1, 2 -> Error
dataMap.messageResponse.body Json SI
dataMap.messageResponse
.body.comercioMantenimientoLotes
CargosResponse
Json SI
dataMap.messageResponse
.body.comercioMantenimientoLotesCargos
Response.codigoAccion
String Max 1 SI Código que indica el estado de la solicitud:
– 0 -> Not ok
– 1 -> Ok
dataMap.messageResponse.
body.comercioMantenimientoLotesCargos
Response.mensajeAccion
String Max 200 SI Mensaje que indica el estado de la solicitud en caso de error o éxito
TRAMA ERRÓNEA: 400
header Json NO Entidad que contiene información de la transacción en la Plataforma Canales.
merchantId String Max 9 SI Código del comercio
traceNumber String Max 6 NO Número de transacción
operationType String Max 1 NO Tipo de operación
dateTime String Max 20 SI Fecha de la transacción en formato YYmmDDhhMMss
amount String Max 12 NO Importe
currencyId String Max 3 NO Moneda de la transacción
– 604 Soles
– 840 Dólares
– null Ningunos
status String Max 3 SI Código de respuesta. Siempre es 400
data String Max 200 NO No se devuelve para productos Recurrentes
dataMap Json SI Entidad en donde se definen los datos para la transacción
dataMap.messageResponse Json SI
dataMap.messageResponse.header Json SI
dataMap.messageResponse.header.status Json SI
dataMap.messageResponse.header.status.busResponseCode String Max 4 SI Código de respuesta del WAS
dataMap.messageResponse.header.status.busResponseMessage String Max 200 SI Mensaje de respuesta del WAS
dataMap.messageResponse.header.status.busResponseMsgId String Max 20 NO Identificador único de la transacción
dataMap.messageResponse.header.status.srvResponseCode String Max 4 SI Código de respuesta del servicio de negocio
dataMap.messageResponse.header.status.srvResponseMessage String Max 200 SI Mensaje de respuesta del servicio de negocio.
dataMap.messageResponse.header.status.busReponseType String Max 1 SI Tipo de respuesta de la invocación del servicio. Puede ser:
– 0 -> Éxito
– 1, 2 -> Error
dataMap.messageResponse.body Json SI
dataMap.messageResponse.body.errorMessage Json SI
dataMap.messageResponse.body.errorMessage.message String Max 200 SI Mensaje que indica el error
TRAMA ERRÓNEA: 401
description Text Max 1000 NO Descripción relacionada al error. Este error se presenta cuando las credenciales no son válidas


   C.2 Tramas de Ejemplo

  • Caso 200
  • Caso 400
  • Caso 401

Status Code 200 OK

Content-Type: application/json

{

 "header": "",

 "merchantId": "341198210",

 "traceNumber": null,

 "operationType": null,

 "dateTime": "1487346033729",

 "amount": "000000000000",

 "currencyId": null,

 "status": "000",

 "data": null,

 "dataMap": {

  "messageResponse": {

   "header": {

    "status": {

     "busResponseCode": "0",

     "busResponseMessage": "EJECUCIÓN CON ÉXITO",

     "busResponseMsgId": "-",

     "srvResponseCode": "0",

     "srvResponseMessage": "EJECUCIÓN CON ÉXITO",

     "responseType": "0"

    }

   },

   "body": {

   "comercioMantenimientoLotesCargosResponse": {

    "codigoAccion": "1",

     "mensajeAccion": "EL PROCESO SE EJECUTO EXITOSAMENTE"

    }

   }

  }

 }

}



D. Códigos de respuesta

Código Descripción
200 Mantenimiento de cargos o lotes realizado con éxito
400 Error en el mantenimiento
401 Error relacionado al acceso no autorizado

API de Suspender y Reactivar cargos #

El comercio afiliado debe asegurar que su integración (desarrollo) sea lo más segura posible aplicando las medidas preventivas que considere necesario.

Todas las invocaciones a las APIs (servicios backend) de Niubiz tienen que ser realizadas host to host.


A. Endpoint

Ambiente URL API
Testing https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.suspendCharge
Producción https://apipos.vnforapps.com/api.posservices/api/v1/service/recurrence.suspendCharge
Ambiente
Testing
URL de API
https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.suspendCharge
Producción
URL de API
https://apipos.vnforapps.com/api.posservices/api/v1/service/recurrence.suspendCharge


B. Request y casos

   B.1 Tabla de Parámetros

Campo Tipo Longitud Obligatorio Descripción
HEADER
accessToken Text Max 1000 SI Token generado con el API de Seguridad
BODY
terminalId String Max 8 SI Número de terminal
merchantId String Max 9 SI Código del comercio
merchantName String Max 40 SI Nombre del comercio
traceNumber String Max 6 NO Número de registro
referenceNumber String Max 6 NO Número de referencia
dateTime String Max 12 SI Fecha de la operación en formato YYmmDDHHmmss
dataMap Json SI Entidad en donde se definen los datos para la operación
dataMap.idCharge Array SI Array de los id de cargos a suspender o reactivar.
dataMap.merchantId String Max 9 SI Código de comercio
dataMap.operationType String Max 1 SI Identificador que indica si se realizará la reactivación o suspensión
– R Reactivación
– S Suspensión
dataMap.channelId String Max 1 SI Canal Consumidor. Puede ser: 6 CE


   B.2 Trama de Ejemplo

Request

POST /api.posservices/api/v1/service/recurrence.suspendCharge HTTP/1.1

Host: apitestposenv.vnforapps.com

Content-Type: application/json

Authorization:eyJraWQiOiJmWk1tV3pZR0RBckxHektvalNCK2w3SjFhMnNPXC9zQnNw OTlNNmNuM3F5MD0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJkMTlhM2I0Zi01NzYxLTRl YTEtYjBmYS1iNWNiNjU5OWQ5NWQiLCJjb2duaXRvOmdyb3VwcyI6WyJjdXN0b2RpbyJdL CJldmVudF9pZCI6ImM2OTZmZjVkLTZjOTctNDE4NC05MGIxLTA5NjM2MWY4M2E2ZSIsIn Rva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoiYXdzLmNvZ25pdG8uc2lnbmluLnVzZXI uYWRtaW4iLCJhdXRoX3RpbWUiOjE2MDIxMTM4NzksImlzcyI6Imh0dHBzOlwvXC9jb2du aXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbVwvdXMtZWFzdC0xXzJjSjFTZTFmS SIsImV4cCI6MTYwMjExNzQ3OSwiaWF0IjoxNjAyMTEzODc5LCJqdGkiOiJiOTVmOGU0ZS 1kZGE4LTRkZmUtOTc0NC1kOGQwZGEyMDFlMzMiLCJjbGllbnRfaWQiOiIxMGx2MDYxN28 1ZGljNTFlYnNucWVpaWpiNyIsInVzZXJuYW1lIjoiZ2lhbmNhZ2FsbGFyZG9AZ21haWwu Y29tIn0.GrO2XLoMnChN3Dg6H8G7LC3ZY4O_c1-DwvRYHCx8iiDqprFMK7jU43vo6W4IL NqP_QA1sDoEQaD9HJJ7iLfVBojh1tgiFyzFzkX4T3m63eHRSFfIZAToTGYOQoeZchsYb3 UAffvrzR1JlUPjwf3U1YRfBEu8ueIR6_OUMZdXC8TLS3pqEpXnPr6S-_bndpFRs5wZpt0 BPSJ4OnhM2AYh6pqFucjL9nsPmIaujJQVwdR8oNcrfeFuIv5t55H_DRDpQCSYstac1nFS m00P3EMdbOX6Lh8dTU5dBOXe17Bfh7mDEP-FnF_J47COVFB_sYh7JXyePfK6kKTlSeV0Ev0pew

{

 "terminalId": "1122334455",

 "merchantId": "341198210",

 "merchantName": "PRUEBAS NIUBIZ",

 "dateTime": "201030000000",

 "dataMap": {

  "idCharge": [

   270494146

  ],

  "merchantId": "341198210",

  "operationType": "R",

  "channelId": "6"

 }

}



   B.3 Lenguajes

  • Node
  • JavaScript
  • Python

const request = require('request');

const options = {

 method: 'POST',

 url: 'https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.suspendCharge',

 headers: {

  'Authorization': '{{accessToken}}',

  accept: 'application/json',

  'content-type': 'application/json'

 },

 body: {

  terminalId: "1122334455",

  merchantId: "341198210",

  merchantName: "PRUEBAS NIUBIZ",

  dateTime: "201030000000",

  dataMap: {

   idCharge: [

    270494146

   ],

   merchantId: "341198210",

   operationType: "R",

   channelId: "6"

  }

 },

 json: true

};

request(options, function (error, response, body) {

 if (error) throw new Error(error);

 console.log(body);

});



C. Response

   C.1 Tabla de Parámetros

Campo Tipo Longitud Obligatorio Descripción
TRAMA EXITOSA: 200
header Json NO Entidad que contiene información de la transacción en la Plataforma Canales.
merchantId String Max 9 SI Código del comercio
traceNumber String Max 6 NO Número de transacción
operationType String Max 1 NO Tipo de operación
dateTime String Max 20 SI Fecha de la transacción en formato YYmmDDhhMMss
amount String Max 12 SI Importe
currencyId String Max 3 SI Código de moneda
– 604 Soles
– 840 Dólares
status String Max 3 SI Código de respuesta
– 200 Éxito
– 500 Error
data String Max 200 NO No se devuelve para productos recurrentes
dataMap Json SI Entidad en donde se definen los datos para la operación
dataMap.messageResponse Json SI Respuesta
dataMap.messageResponse.
header
Json SI Cabecera
dataMap.messageResponse.
header.status
Json SI Estado
dataMap.messageResponse.
header.status.busReponseType
String Max 1 SI Tipo de respuesta
dataMap.messageResponse.header
.status.busResponseCode
String Max 4 SI Código del servicio
dataMap.messageResponse.header
.status.busResponseMessage
String Max 200 SI Mensaje del servicio
dataMap.messageResponse.header
.status.busResponseMsgId
String Max 20 SI Id de transacción interna
dataMap.messageResponse.header
.status.srvResponseCode
String Max 4 SI Código de respuesta
dataMap.messageResponse.header
.status.srvResponseMessage
String Max 200 SI Mensaje de respuesta
dataMap.messageResponse.body Json SI Cuerpo del mensaje
dataMap.messageResponse.body
.comercioSuspenderReactivarCargos
Response
Json SI Respuesta
dataMap.messageResponse.body.
comercioSuspenderReactivarCargos
Response.codigoAccion
String Max 1 SI Código que indica el estado de la solicitud. Siempre es 1
dataMap.messageResponse.body.
comercioSuspenderReactivarCargos
Response.mensajeAccion
String Max 200 SI Mensaje que indica el estado de la solicitud
TRAMA ERRÓNEA: 400
header Json NO Entidad que contiene información de la transacción en la Plataforma Canales.
merchantId String Max 9 SI Código del comercio
traceNumber String Max 6 NO Número de transacción
operationType String Max 1 NO Tipo de operación
dateTime String Max 20 SI Fecha de la transacción en formato YYmmDDhhMMss
amount String Max 12 SI Importe
currencyId String Max 3 SI Código de moneda
Status String Max 3 SI Código de respuesta. Siempre es 400
Data String Max 200 NO No se devuelve para productos recurrentes
dataMap Json SI Entidad en donde se definen los datos para la operación
dataMap.messageResponse Json SI Respuesta
dataMap.messageResponse
.header
Json Cabecera Código de error
dataMap.messageResponse.header.status Json SI Estado
dataMap.messageResponse.header
.status.busReponseType
String Max 1 SI Tipo de respuesta
dataMap.messageResponse.header
.status.busResponseCode
String Max 4 SI Código del servicio
dataMap.messageResponse.header
.status.busResponseMessage
String Max 200 SI Mensaje del servicio
dataMap.messageResponse.header
.status.busResponseMsgId
String Max 20 SI Id de transacción interna
dataMap.messageResponse.header
.status.srvResponseCode
String Max 4 SI Código de respuesta
dataMap.messageResponse.header.
status.srvResponseMessage
String Max 200 SI Mensaje de respuesta
dataMap.messageResponse.body Json SI Cuerpo
dataMap.messageResponse.body
.errorMessage
Json SI Mensaje de error
dataMap.messageResponse.body
.errorMessage.message
String Max 200 SI Mensaje que indica la causa del error
TRAMA ERRÓNEA: 401
description Text Max 1000 NO Descripción relacionada al error. Este error se presenta cuando las credenciales no son válidas


   C.2 Tramas de Ejemplo

  • Caso 200
  • Caso 400
  • Caso 401

Status Code 200 OK

Content-Type: application/json

{

 "header": "",

 "merchantId": "341198210",

 "traceNumber": null,

 "operationType": null,

 "dateTime": "201030000000",

 "amount": "000000000000",

 "currencyId": null,

 "status": "000",

 "data": null,

 "dataMap": {

  "messageResponse": {

   "header": {

    "status": {

     "busResponseCode": "0",

     "busResponseMessage": "EJECUCIÓN CON ÉXITO",

     "busResponseMsgId": "-",

     "srvResponseCode": "0",

     "srvResponseMessage": "EJECUCIÓN CON ÉXITO",

     "responseType": "0"

    }

   },

   "body": {

    "comercioSuspenderReactivarCargosResponse": {

    "codigoAccion": "1",

    "mensajeAccion": "EL PROCESO SE EJECUTÓ EXITOSAMENTE"

    }

   }

  }

 }

}



D. Códigos de respuesta

Código Descripción
200 Suspensión o reactivación de cargos realizada con éxito
400 Error en la suspensión o reactivación de cargos
401 Error relacionado al acceso no autorizado

API de Consulta de afiliación #

El comercio afiliado debe asegurar que su integración (desarrollo) sea lo más segura posible aplicando las medidas preventivas que considere necesario.

Todas las invocaciones a las APIs (servicios backend) de Niubiz tienen que ser realizadas host to host.


A. Endpoint

Ambiente URL de API
Testing https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.getAffiliationById
Producción https://apipos.vnforapps.com/api.posservices/api/v1/service/recurrence.getAffiliationById
Ambiente
Testing
URL de API
https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.getAffiliationById
Producción
URL de API
https://apipos.vnforapps.com/api.posservices/api/v1/service/recurrence.getAffiliationById


B. Request y Casos

  B.1 Tabla de campos

Campo Tipo Longitud Obligatorio Descripción
HEADER
accessToken Text max 1000 SI Token generado con el API de Seguridad
BODY
terminalId string max 8 SI Número de terminal
merchantId string max 9 SI Código del comercio
merchantName string max 40 SI Nombre del comercio
traceNumber string max 6 NO Número de registro
referenceNumber string max 6 NO Número de referencia
dateTime string max 12 SI Fecha de la operación en formato YYmmDDHHmmss
dataMap json SI Entidad en donde se definen los datos para la consulta
dataMap.idAfiliation integer($int32) SI Id de la afiliación
dataMap.merchantId string max 9 SI Código de Comercio
dataMap.channelId string max 1 SI Canal Consumidor. Puede ser: “6” CE


  B.2 Trama de ejemplo:

Request

POST /api.posservices/api/v1/service/recurrence.getAffiliationById HTTP/1.1

HOST: apitestposenv.vnforapps.com

Content-Type: application/json

Authorization:eyJraWQiOiJmWk1tV3pZR0RBckxHektvalNCK2w3SjFhMnNPXC9zQnNwO TlNNmNuM3F5MD0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJkMTlhM2I0Zi01NzYxLTRlYT EtYjBmYS1iNWNiNjU5OWQ5NWQiLCJjb2duaXRvOmdyb3VwcyI6WyJjdXN0b2RpbyJdLCJl dmVudF9pZCI6ImM2OTZmZjVkLTZjOTctNDE4NC05MGIxLTA5NjM2MWY4M2E2ZSIsInRva2 VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoiYXdzLmNvZ25pdG8uc2lnbmluLnVzZXIuYWRt aW4iLCJhdXRoX3RpbWUiOjE2MDIxMTM4NzksImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLW lkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbVwvdXMtZWFzdC0xXzJjSjFTZTFmSSIsImV4 cCI6MTYwMjExNzQ3OSwiaWF0IjoxNjAyMTEzODc5LCJqdGkiOiJiOTVmOGU0ZS1kZGE4LT RkZmUtOTc0NC1kOGQwZGEyMDFlMzMiLCJjbGllbnRfaWQiOiIxMGx2MDYxN281ZGljNTFl YnNucWVpaWpiNyIsInVzZXJuYW1lIjoiZ2lhbmNhZ2FsbGFyZG9AZ21haWwuY29tIn0.Gr O2XLoMnChN3Dg6H8G7LC3ZY4O_c1-DwvRYHCx8iiDqprFMK7jU43vo6W4ILNqP_QA1sDoE QaD9HJJ7iLfVBojh1tgiFyzFzkX4T3m63eHRSFfIZAToTGYOQoeZchsYb3UAffvrzR1JlU Pjwf3U1YRfBEu8ueIR6_OUMZdXC8TLS3pqEpXnPr6S-_bndpFRs5wZpt0BPSJ4OnhM2AYh 6pqFucjL9nsPmIaujJQVwdR8oNcrfeFuIv5t55H_DRDpQCSYstac1nFSm00P3EMdbOX6Lh 8dTU5dBOXe17Bfh7mDEP-FnF_J47COVFB_sYh7JXyePfK6kKTlSeV0Ev0pew

{

"terminalId": "1122334455",

"merchantId": "341198210",

"merchantName": "PRUEBAS NIUBIZ",

"dateTime": "201030000000",

"dataMap": {

 "idAffiliation": 21333179,

 "merchantId": "341198210",

 "channelId": "6"

 }

}



  B.3 Lenguajes:

  • Node
  • JavaScript
  • Python

const request = require('request');

const options = {

 method: 'POST',

 url: 'https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.getAffiliationById',

 headers: {

  'Authorization': '{{accessToken}}',

  accept: 'application/json',

  'content-type': 'application/json'

 },

 body: {

  terminalId: "1122334455",

  merchantId: "341198210",

  merchantName: "PRUEBAS NIUBIZ",

  dateTime: "201030000000",

  dataMap: {

   idAffiliation: 21333179,

   merchantId: "341198210",

   channelId: "6"

  }

 },

json: true

};

request(options, function (error, response, body) {

 if (error) throw new Error(error);

 console.log(body);

});



C. Response:

  C.1 Tabla de parámetros:

Campo Tipo Longitud Obligatorio Descripción
TRAMA EXITOSA: 200
header json NO Entidad que contiene información de la transacción en la Plataforma Canales.
merchantId string max 9 SI Código del comercio
traceNumber string max 6 NO Número de transacción
operationType string max 1 NO Tipo de operación
dateTime string max 20 SI Fecha de la transacción en formato YYmmDDhhMMss
amount string max 12 SI Importe
currencyId string max 3 SI Código de moneda
– 604 Soles
– 840 Dólares
status string max 3 SI Código de respuesta. Siempre es 200
data String Max 200 NO No se devuelve para productos recurrentes
dataMap json SI Entidad en donde se definen los datos para la consulta
dataMap.messageResponse json SI Respuesta
dataMap.messageResponse
.header
json SI Cabecera
dataMap.messageResponse
.header.status
json SI Estado
dataMap.messageResponse
.header.status.bus
ReponseType
string max 1 SI Tipo de respuesta
dataMap.messageResponse
.header.status.bus
ResponseCode
string max 4 SI Código del servicio
dataMap.messageResponse
.header.status.bus
ResponseMessage
string max 200 SI Mensaje del servicio
dataMap.messageResponse
.header.status.bus
ResponseMsgId
string max 20 SI Id de transacción interna
dataMap.messageResponse
.header.status.srv
ResponseCode
string max 4 SI Código de respuesta
dataMap.messageResponse
.header.status.srv
ResponseMessage
string max 200 SI Mensaje de respuesta
dataMap.messageResponse
.body
json SI Cuerpo del mensaje
dataMap.messageResponse
.body.comercioConsultar
AfiliacionResponse
json SI Respuesta
dataMap.messageResponse
.body.comercioConsultar
AfiliacionResponse.
codProducto
String max 40 SI Código de producto
dataMap.messageResponse
.body.comercioConsultar
AfiliacionResponse.
nomProducto
String max 50 SI Nombre de producto
dataMap.messageResponse
.body.comercioConsultar
AfiliacionResponse.
numTarjeta
String max 19 SI Número de tarjeta enmascarada
dataMap.messageResponse
.body.comercioConsultar
AfiliacionResponse.
mesExpTarjeta
String max 2 SI Número de mes de expiración en formato MM
dataMap.messageResponse
.body.comercioConsultar
AfiliacionResponse.
anoExpTarjeta
String max 4 SI Número de año de expiración en formato YYYY
dataMap.messageResponse
.body.comercioConsultar
AfiliacionResponse.
nomTarHabiente
String max 100 NO Nombre del tarjetahabiente
dataMap.messageResponse
.body.comercioCambiar
ProductoBeneficiarioResponse
.apePatTarHabiente
String max 100 NO Apellido del tarjetahabiente
dataMap.messageResponse
.body.comercioConsultar
AfiliacionResponse.
tipDocTarHabiente
String max 1 SI Tipo de documento de tarjetahabiente
– 0 DNI
– 1 Carnet
– 2 Pasaporte
dataMap.messageResponse
.body.comercioConsultar
AfiliacionResponse.
idDocTarHabiente
String max 50 SI Id de documento del tarjetahabiente
dataMap.messageResponse
.body.comercioConsultar
AfiliacionResponse.
telTarHabiente
String max 25 SI Teléfono del tarjetahabiente
dataMap.messageResponse
.body.comercioConsultar
AfiliacionResponse.
correoTarHabiente
String max 200 SI Correo del tarjetahabiente
dataMap.messageResponse
.body.comercioConsultar
AfiliacionResponse.
idBeneficiario
String max 50 SI Id del beneficiario
dataMap.messageResponse
.body.comercioConsultar
AfiliacionResponse.
nomBeneficiario
String max 100 NO Nombre del beneficiario
dataMap.messageResponse
.body.comercioConsultar
AfiliacionResponse.
apePatBeneficiario
String max 100 NO Apellido paterno del beneficiario
dataMap.messageResponse
.body.comercioConsultar
AfiliacionResponse.
monMaximo
String max 16 NO Monto máximo. Precisión hasta 8 valores enteros con 2 decimales
dataMap.messageResponse
.body.comercioConsultar
AfiliacionResponse.
tipoCargoCobro
String max 1 SI Tipo de cargo de cobro
– 0 Fijo
– 1 Variable
dataMap.messageResponse
.body.comercioConsultar
AfiliacionResponse.
monCargo
String max 16 SI Monto de cargo. Precisión hasta 8 valores enteros con 2 decimales
dataMap.messageResponse
.body.comercioConsultar
AfiliacionResponse.
fecCargoPago
String max 20 SI Fecha de proceso de pago en formato YYYY-mm-DD hh:MM:ss
dataMap.messageResponse
.body.comercioConsultar
AfiliacionResponse.
periodicidad
String max 1 SI Periodicidad
– 1 Mensual
– 2 Semestral
– 3 Anual
– 4 Trimestral
dataMap.messageResponse
.body.comercioConsultar
AfiliacionResponse.
reintentoAuto
String max 1 SI Reintentos automáticos
– 0 No
– 1 Si
dataMap.messageResponse
.body.comercioConsultar
AfiliacionResponse.
canalAfiliacion
String max 1 SI Canal de la afiliación.
TRAMA ERRONEA: 400
header json NO Entidad que contiene información de la transacción en la Plataforma Canales.
merchantId string max 9 SI Código del comercio
traceNumber string max 6 NO Número de transacción
operationType string max 1 NO Tipo de operación
dateTime string max 20 SI Fecha de la transacción en formato YYmmDDhhMMss
amount string max 12 SI Importe
currencyId string max 3 SI Código de moneda
status string max 3 SI Código de respuesta. Siempre es 400
data String Max 200 NO No se devuelve para productos recurrentes
dataMap json SI Entidad en donde se definen los datos para la consulta
dataMap.messageResponse
json SI Respuesta
dataMap.messageResponse
.header
json SI Cabecera
dataMap.messageResponse
.header.status
json SI Estado
dataMap.messageResponse
.header.status.bus
ReponseType
string max 1 SI Tipo de respuesta
dataMap.messageResponse
.header.status.bus
ResponseCode
string max 4 SI Código del servicio
dataMap.messageResponse
.header.status.bus
ResponseMessage
string max 200 SI Mensaje del servicio
dataMap.messageResponse
.header.status.bus
ResponseMsgId
string max 20 SI Id de transacción interna
dataMap.messageResponse
.header.status.srv
ResponseCode
string max 4 SI Código de respuesta
dataMap.messageResponse
.header.status.srv
ResponseMessage
string max 200 SI Mensaje de respuesta
dataMap.messageResponse
.body
json SI Cuerpo
dataMap.messageResponse
.body.errorMessage
json SI Mensaje de error
dataMap.messageResponse
.body.errorMessage.message
string max 200 SI Mensaje que indica la causa del error
TRAMA ERRONEA: 401
description text max 1000 NO Descripción relacionada al error. Este error se presenta cuando las credenciales no son válidas


  C.2 Trama de ejemplo:

  • Caso 200
  • Caso 400
  • Caso 401

Status Code 200 OK

Content-Type: application/json

{

 "header": "",

 "merchantId": "341198210",

 "traceNumber": null,

 "operationType": null,

 "dateTime": "201030000000",

 "amount": "000000000000",

 "currencyId": null,

 "status": "000",

 "data": null,

 "dataMap": {

  "messageResponse": {

   "header": {

    "status": {

     "busResponseCode": "0",

     "busResponseMessage": "EJECUCIÓN CON ÉXITO",

     "busResponseMsgId": "-",

     "srvResponseCode": "0",

     "srvResponseMessage": "EJECUCIÓN CON ÉXITO",

     "responseType": "0"

    }

   },

   "body": {

    "comercioConsultarAfiliacionResponse": {

     "codigoAccion": "1",

     "codProducto": "0187",

     "nomProducto": "MANTENIMIENTO",

     "numTarjeta": "447411******2240",

     "mesExpTarjeta": "10",

     "anoExpTarjeta": "2027",

     "nomTarHabiente": "JUAN",

     "apePatTarHabiente": "PEREZ",

     "tipDocTarHabiente": "0",

     "idDocTarHabiente": "11111111",

     "telTarHabiente": "22222222",

     "correoTarHabiente": "DRFERCQ@FEFE.COM",

     "idBeneficiario": "345346345634",

     "nomBeneficiario": "MARÍA",

     "apePatBeneficiario": null,

     "monMaximo": null,

     "tipoCargoCobro": "1",

     "monCargo": "0.00",

     "fecCargoPago": "2019-03-27 00:00:00.0",

     "periodicidad": "4",

     "reintentoAuto": "1",

     "canalAfiliacion": "0"

    }

   }

  }

 }

}



D. Códigos de Respuesta

Respuesta Descripción
200 Consulta de afiliación realizado con éxito
400 Error en la consulta de afiliación
401 Error relacionado al acceso no autorizado

API de Consulta de cargo #

El comercio afiliado debe asegurar que su integración (desarrollo) sea lo más segura posible aplicando las medidas preventivas que considere necesario.

Todas las invocaciones a las APIs (servicios backend) de Niubiz tienen que ser realizadas host to host.


A. Endpoint

Ambiente URL de API
Testing https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.getChargeById
Producción https://apipos.vnforapps.com/api.posservices/api/v1/service/recurrence.getChargeById
Ambiente
Testing
URL de API
https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.getChargeById
Producción
URL de API
https://apipos.vnforapps.com/api.posservices/api/v1/service/recurrence.getChargeById


B. Request y Casos

  B.1 Tabla de campos

Campo Tipo Longitud Obligatorio Descripción
HEADER
accessToken Text max 1000 SI Token generado con el API de Seguridad
BODY
terminalId string max 9 SI Número de terminal
merchantId string max 9 SI Código del comercio
merchantName string max 40 SI Nombre del comercio
traceNumber string max 6 NO Número de registro
referenceNumber string max 6 NO Número de referencia
dateTime string max 12 SI Fecha y hora para la operación en formato YYmmDDHHmmss
dataMap json SI Entidad en donde se definen los datos para la transacción
dataMap.idCharge string max 32 SI Identificador del cargo
dataMap.merchantId string max 9 SI Código de Comercio
dataMap.channelId string max 1 SI Canal Consumidor
– 6 CE (Comercio Electrónico)
– 2 C (Comercio)


  B.2 Trama de ejemplo:

Request

POST /api.posservices/api/v1/service/recurrence.getChargeById HTTP/1.1

HOST: apitestposenv.vnforapps.com

Content-Type: application/json

Authorization:eyJraWQiOiJmWk1tV3pZR0RBckxHektvalNCK2w3SjFhMnNPXC9zQnNw OTlNNmNuM3F5MD0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJkMTlhM2I0Zi01NzYxLTRl YTEtYjBmYS1iNWNiNjU5OWQ5NWQiLCJjb2duaXRvOmdyb3VwcyI6WyJjdXN0b2RpbyJdL CJldmVudF9pZCI6ImIyOGY2NDQ1LThkN2YtNDc5My05NGU4LWFkMTFmYWFlMTUyZCIsIn Rva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoiYXdzLmNvZ25pdG8uc2lnbmluLnVzZXI uYWRtaW4iLCJhdXRoX3RpbWUiOjE2MDQ1MDA4NTAsImlzcyI6Imh0dHBzOlwvXC9jb2du aXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbVwvdXMtZWFzdC0xXzJjSjFTZTFmS SIsImV4cCI6MTYwNDUwNDQ1MCwiaWF0IjoxNjA0NTAwODUwLCJqdGkiOiI1MzNhOGU5YS 02ZmZlLTQwN2ItYTVkNy0xYjc2YTk3NDI0MDgiLCJjbGllbnRfaWQiOiIxMGx2MDYxN28 1ZGljNTFlYnNucWVpaWpiNyIsInVzZXJuYW1lIjoiZ2lhbmNhZ2FsbGFyZG9AZ21haWwu Y29tIn0.BfSnMqNUNfbo2wrWMqmrwMfq_Bq0SOXPcGcnrHVd1MZPZ12RqIlBJzoCSGm2- o5z_XaqWedhkiXZG9BLB-Hj3xRkYhaiw9sXD3oZOdC5W8P2CBTY0HQD15XRYMeZqvRSag 7JLDfFfG0a1pWt-1_QH7PwbRRK9iuuvf2piajck9PsujYPewkmxeCPrPuDx_qR32ybMmD ftyIzgnAbLcOQuUy-e-M1UzbNwmP4OwzfIbDaQp1OnXaYZXlctj9SIMqAA9lOvfaAhNMd EgHbBS655wsMz3zy7H_XaOwX76rsO12hn6c-oeIXAbvRnrERIzKdW1LeOG6a0gm_cu-7I P3hFw

{

"terminalId": "614006066",

"merchantId": "341198210",

"merchantName": "PRUEBAS NIUBIZ",

"dateTime": "1487346033729",

"dataMap": {

 "idCharge": 267045293,

 "merchantId": "341198210",

 "channelId": "6"

 }

}



  B.3 Lenguajes:

  • Node
  • JavaScript
  • Python

const request = require('request');

const options = {

 method: 'POST',

 url: 'https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.getChargeById',

 headers: {

  'Authorization': '{{accessToken}}',

  accept: 'application/json',

  'content-type': 'application/json'

 },

 body: {

  terminalId: "614006066",

  merchantId: "341198210",

  merchantName: "PRUEBAS NIUBIZ",

  dateTime: "1487346033729",

  dataMap: {

   idCharge: 267045293,

   merchantId: "341198210",

   channelId: "6"

  }

 },

json: true

};

request(options, function (error, response, body) {

 if (error) throw new Error(error);

 console.log(body);

});



C. Response:

  C.1 Tabla de parámetros:

Campo Tipo Longitud Obligatoriedad Descripción
TRAMA EXITOSA: 200
header json NO Entidad que contiene información de la transacción en la Plataforma Canales.
merchantId string max 9 SI Código del comercio
traceNumber string max 6 NO Número de transacción
operationType string max 1 NO Tipo de operación
dateTime string max 20 SI Fecha de la transacción en formato YYmmDDhhMMss
amount string max 12 NO Importe
currencyId string max 3 NO Código de moneda
– null
status string max 3 SI Código de respuesta. Siempre es 000
data String Max 200 NO No se devuelve para productos recurrentes
dataMap json SI Entidad en donde se definen los datos para la transacción
dataMap.messageResponse json SI
dataMap.messageResponse
.header
json SI
dataMap.messageResponse
.header.status
json SI
dataMap.messageResponse
.header.status.bus
ReponseType
string max 1 SI Tipo de respuesta
dataMap.messageResponse
.header.status.bus
ResponseCode
string max 4 SI Código de respuesta del WAS
dataMap.messageResponse
.header.status.bus
ResponseMessage
string max 200 SI Mensaje de respuesta del WAS
dataMap.messageResponse
.header.status.bus
ResponseMsgId
string max 20 NO Identificador único de la transacción
dataMap.messageResponse
.header.status.srv
ResponseCode
string max 4 SI Código de respuesta del servicio de negocio.
dataMap.messageResponse
.header.status.srv
ResponseMessage
string max 200 SI Mensaje de respuesta del servicio de negocio.
dataMap.messageResponse
.header.status.bus
ReponseType
string max 1 SI Tipo de respuesta de la invocación del servicio. Puede ser:
– 0 -> Éxito
– 1, 2 -> Error
dataMap.messageResponse
.body
json SI
dataMap.messageResponse
.body.comercioConsultar
CargoResponse
json SI
dataMap.messageResponse
.body.comercioConsultar
CargoResponse.fecEstPago
String max 20 SI Fecha estimada de pago en formato “YYYY-MM-DD HH:MM:SS.MS
dataMap.messageResponse
.body.comercioConsultar
CargoResponse.fecProcPago
String max 20 SI Fecha de proceso de pago en formato “YYYY-MM-DD H:MM:SS.MS
dataMap.messageResponse
.body.comercioConsultar
CargoResponse.fecSuspension
String max 20 NO Fecha de suspensión en formato “YYYY-MM-DD HH:MM:SS.MS
dataMap.messageResponse
.body.comercioConsultar
CargoResponse.monCargo
double SI Monto de cargo. Precisión hasta 8 valores enteros con 2 decimales
dataMap.messageResponse
.body.comercioConsultar
CargoResponse.estadoCargo
String max 1 SI Estado del cargo
– 0 pendiente
– 1 suspendido
– 2 reactivado
– 3 desafiliado
– 4 en proceso
– 5 autorizado
– 6 denegado
– 7 no enviado
– 8 no enviado con reintento)
– Otros Nuevos
dataMap.messageResponse
.body.comercioConsultar
CargoResponse.motivoRechazo
String max 100 NO Motivo de rechazo
dataMap.messageResponse
.body.comercioConsultar
CargoResponse.nroLote
String max 32 SI Número de lote
TRAMA ERRONEA: 400
header json NO Entidad que contiene información de la transacción en la Plataforma Canales.
merchantId string max 9 SI Código del comercio
traceNumber string max 6 NO Número de transacción
operationType string max 1 NO Tipo de operación
dateTime string max 20 SI Fecha de la transacción en formato YYmmDDhhMMss
amount string max 12 NO Importe
currencyId string max 3 NO Código de moneda
null
status string max 3 SI Código de respuesta. Siempre es 400
data String Max 200 NO No se devuelve para productos Recurrentes
dataMap json SI Entidad en donde se definen los datos para la transacción
dataMap.messageResponse
json SI
dataMap.messageResponse
.header
json SI
dataMap.messageResponse
.header.status
json SI
dataMap.messageResponse
.header.status.bus
ResponseCode
string max 4 SI Código de respuesta del WAS
dataMap.messageResponse
.header.status.bus
ResponseMessage
string max 200 SI Mensaje de respuesta del WAS
dataMap.messageResponse
.header.status.bus
ResponseMsgId
string max 20 NO Identificador único de la transacción
dataMap.messageResponse
.header.status.srv
ResponseCode
string max 4 SI Código de respuesta del servicio de negocio
dataMap.messageResponse
.header.status.srv
ResponseMessage
string max 200 SI Mensaje de respuesta del servicio de negocio.
dataMap.messageResponse
.header.status.bus
ReponseType
string max 1 SI Tipo de respuesta de la invocación del servicio. Puede ser:
– 0 -> Éxito
– 1, 2 -> Error
dataMap.messageResponse
.body
json SI
dataMap.messageResponse
.body.errorMessage
json SI
dataMap.messageResponse
.body.comercioConsultar
CargoResponse.message
string max 200 SI Mensaje que indica la causa del error
TRAMA ERRONEA: 401
description text max 1000 NO Descripción relacionada al error. Este error se presenta cuando las credenciales no son válidas


  C.2 Trama de ejemplo:

  • Caso 200
  • Caso 400
  • Caso 401

Status Code 200 OK

Content-Type: application/json

{

 "header": "",

 "merchantId": "341198210",

 "traceNumber": null,

 "operationType": null,

 "dateTime": "1487346033729",

 "amount": "000000000000",

 "currencyId": null,

 "status": "000",

 "data": null,

 "dataMap": {

  "messageResponse": {

   "header": {

    "status": {

     "busResponseCode": "0",

     "busResponseMessage": "EJECUCIÓN CON ÉXITO",

     "busResponseMsgId": "-",

     "srvResponseCode": "0",

     "srvResponseMessage": "EJECUCIÓN CON ÉXITO",

     "responseType": "0"

    }

   },

   "body": {

    "comercioConsultarCargoResponse": {

     "fecEstPago": "2020-01-30 00:00:00.0",

     "fecProcPago": "2020-01-01 00:00:00.0",

     "fecSuspension": null,

     "monCargo": "10.0",

     "estadoCargo": "0",

     "motivoRechazo": null,

     "nroLote": "204473403"

    }

   }

  }

 }

}



D. Códigos de Respuesta

Respuesta Descripción
200 Consulta de cargo realizado con éxito
400 Error en la consulta
401 Error relacionado al acceso no autorizado

API de Consulta de lotes #

El comercio afiliado debe asegurar que su integración (desarrollo) sea lo más segura posible aplicando las medidas preventivas que considere necesario.

Todas las invocaciones a las APIs (servicios backend) de Niubiz tienen que ser realizadas host to host.


A. Endpoint

Ambiente URL de API
Testing https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.getBatchById
Producción https://apipos.vnforapps.com/api.posservices/api/v1/service/recurrence.getBatchById
Ambiente
Testing
URL de API
https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.getBatchById
Producción
URL de API
https://apipos.vnforapps.com/api.posservices/api/v1/service/recurrence.getBatchById


B. Request y Casos

  B.1 Tabla de campos

Campo Tipo Longitud Obligatorio Descripción
HEADER
accessToken Text max 1000 SI Token generado con el API de Seguridad
BODY
terminalId string max 8 SI Número de terminal
merchantId string max 9 SI Código del comercio
merchantName string max 40 SI Nombre del comercio
traceNumber string max 6 NO Número de registro
referenceNumber string max 6 NO Número de referencia
dateTime string max 12 SI Fecha de la operación en formato YYmmDDHHmmss
dataMap json SI Entidad en donde se definen los datos para la transacción
dataMap.idBatch integer($int32) SI Número de lote
dataMap.merchantId string max 9 SI Código de Comercio
dataMap.channelId string max 1 SI Canal Consumidor. Puede ser: 6 CE


  B.2 Trama de ejemplo:

Request

POST /api.posservices/api/v1/service/recurrence.getBatchById HTTP/1.1

HOST: apitestposenv.vnforapps.com

Content-Type: application/json

Authorization:eyJraWQiOiJmWk1tV3pZR0RBckxHektvalNCK2w3SjFhMnNPXC9zQnN wOTlNNmNuM3F5MD0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJkMTlhM2I0Zi01NzYxLT RlYTEtYjBmYS1iNWNiNjU5OWQ5NWQiLCJjb2duaXRvOmdyb3VwcyI6WyJjdXN0b2Rpby JdLCJldmVudF9pZCI6ImM2OTZmZjVkLTZjOTctNDE4NC05MGIxLTA5NjM2MWY4M2E2ZS IsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoiYXdzLmNvZ25pdG8uc2lnbmluLn VzZXIuYWRtaW4iLCJhdXRoX3RpbWUiOjE2MDIxMTM4NzksImlzcyI6Imh0dHBzOlwvXC 9jb2duaXRvLWlkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbVwvdXMtZWFzdC0xXzJjSj FTZTFmSSIsImV4cCI6MTYwMjExNzQ3OSwiaWF0IjoxNjAyMTEzODc5LCJqdGkiOiJiOT VmOGU0ZS1kZGE4LTRkZmUtOTc0NC1kOGQwZGEyMDFlMzMiLCJjbGllbnRfaWQiOiIxMG x2MDYxN281ZGljNTFlYnNucWVpaWpiNyIsInVzZXJuYW1lIjoiZ2lhbmNhZ2FsbGFyZG 9AZ21haWwuY29tIn0.GrO2XLoMnChN3Dg6H8G7LC3ZY4O_c1-DwvRYHCx8iiDqprFMK7 jU43vo6W4ILNqP_QA1sDoEQaD9HJJ7iLfVBojh1tgiFyzFzkX4T3m63eHRSFfIZAToTG YOQoeZchsYb3UAffvrzR1JlUPjwf3U1YRfBEu8ueIR6_OUMZdXC8TLS3pqEpXnPr6S-_ bndpFRs5wZpt0BPSJ4OnhM2AYh6pqFucjL9nsPmIaujJQVwdR8oNcrfeFuIv5t55H_DR DpQCSYstac1nFSm00P3EMdbOX6Lh8dTU5dBOXe17Bfh7mDEP-FnF_J47COVFB_sYh7JX yePfK6kKTlSeV0Ev0pew

{

"terminalId": "1122334455",

"merchantId": "341198210",

"merchantName": "PRUEBAS NIUBIZ",

"dateTime": "201030000000",

"dataMap": {

 "idBatch": 204479986,

 "merchantId": "341198210",

 "channelId": "6"

 }

}



  B.3 Lenguajes:

  • Node
  • JavaScript
  • Python

const request = require('request');

const options = {

 method: 'POST',

 url: 'https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.getBatchById',

 headers: {

  'Authorization': '{{accessToken}}',

  accept: 'application/json',

  'content-type': 'application/json'

 },

 body: {

  terminalId: "1122334455",

  merchantId: "341198210",

  merchantName: "PRUEBAS NIUBIZ",

  dateTime: "201030000000",

  dataMap: {

   idBatch: 204479986,

   merchantId: "341198210",

   channelId: "6"

  }

 },

json: true

};

request(options, function (error, response, body) {

 if (error) throw new Error(error);

 console.log(body);

});



C. Response:

  C.1 Tabla de parámetros:

Campo Tipo Longitud Obligatorio Descripción
TRAMA EXITOSA: 200
header json NO Entidad que contiene información de la transacción en la Plataforma Canales.
merchantId string max 9 SI Código del comercio
traceNumber string max 6 NO Número de transacción
operationType string max 1 NO Tipo de operación
dateTime string max 20 SI Fecha de la transacción en formato YYmmDDhhMMss
amount string max 12 SI Importe
currencyId string max 3 SI Código de moneda
– 604 Soles
– 840 Dólares
status string max 3 SI Código de respuesta. Siempre es 200
data String Max 200 NO No se devuelve para productos recurrentes
dataMap json SI Entidad en donde se definen los datos para la consulta
dataMap.messageResponse json SI Respuesta
dataMap.messageResponse
.header
json SI Cabecera
dataMap.messageResponse
.header.status
json SI Estado
dataMap.messageResponse
.header.status.bus
ReponseType
string max 1 SI Tipo de respuesta
dataMap.messageResponse
.header.status.bus
ResponseCode
string max 4 SI Código del servicio
dataMap.messageResponse
.header.status.bus
ResponseMessage
string max 200 SI Mensaje del servicio
dataMap.messageResponse
.header.status.bus
ResponseMsgId
string max 20 SI Id de transacción interna
dataMap.messageResponse
.header.status.srv
ResponseCode
string max 4 SI Código de respuesta
dataMap.messageResponse
.header.status.srv
ResponseMessage
string max 200 SI Mensaje de respuesta
dataMap.messageResponse
.body
json SI Cuerpo del mensaje
dataMap.messageResponse
.body.comercioConsultarLotes
Response
json SI Respuesta
dataMap.messageResponse
.body.comercioConsultarLotes
Response.codComercio
String max 9 SI Código de comercio
dataMap.messageResponse
.body.comercioConsultarLotes
Response.nomComercio
String max 50 SI Nombre del comercio
dataMap.messageResponse
.body.comercioConsultarLotes
Response.codProducto
String max 9 SI Código de producto
dataMap.messageResponse
.body.comercioConsultarLotes
Response.nomProducto
string max 50 SI Nombre de producto
dataMap.messageResponse
.body.comercioConsultarLotes
Response.fecProceso
String max 19 SI Fecha de proceso de pago en formato YYYY-mm-DD hh:MM:ss
dataMap.messageResponse
.body.comercioConsultarLotes
Response.nroCargos
String max 10 SI Número de cargos
dataMap.messageResponse
.body.comercioConsultarLotes
Response.mtoTotal
String max 16 SI Monto total. Precisión hasta 8 valores enteros con 2 decimales
dataMap.messageResponse
.body.comercioConsultarLotes
Response.moneda
String max 1 SI Tipo de moneda
– 0 PEN
– 1 USD
dataMap.messageResponse
.body.comercioConsultarLotes
Response.moneda
String max 1 SI Estado de lote
– 0 Pendiente
– 1 En proceso
– 2 Procesado
– 3 Inactivo
TRAMA ERRONEA: 400
header json NO Entidad que contiene información de la transacción en la Plataforma Canales.
merchantId string max 9 SI Código del comercio
traceNumber string max 6 NO Número de transacción
operationType string max 1 NO Tipo de operación
dateTime string max 20 SI Fecha de la transacción en formato YYmmDDhhMMss
amount string max 12 SI Importe
currencyId string max 3 SI Código de moneda
status string max 3 SI Código de respuesta. Siempre es 400
data String Max 200 NO No se devuelve para productos recurrentes
dataMap json SI Entidad en donde se definen los datos para la consulta
dataMap.messageResponse
json SI Respuesta
dataMap.messageResponse
.header
json SI Cabecera
dataMap.messageResponse
.header.status
json SI Estado
dataMap.messageResponse
.header.status.bus
ReponseType
string max 1 SI Tipo de respuesta
dataMap.messageResponse
.header.status.bus
ResponseCode
string max 4 SI Código del servicio
dataMap.messageResponse
.header.status.bus
ResponseMessage
string max 200 SI Mensaje del servicio
dataMap.messageResponse
.header.status.bus
ResponseMsgId
string max 20 SI Id de transacción interna
dataMap.messageResponse
.header.status.srv
ResponseCode
string max 4 SI Código de respuesta
dataMap.messageResponse
.header.status.srv
ResponseMessage
string max 200 SI Mensaje de respuesta
dataMap.messageResponse
.body
json SI Cuerpo
dataMap.messageResponse
.body.errorMessage
json SI Mensaje de error
dataMap.messageResponse
.body.errorMessage.message
string max 200 SI Mensaje que indica la causa del error
TRAMA ERRONEA: 401
description text max 1000 NO Descripción relacionada al error. Este error se presenta cuando las credenciales no son válidas


  C.2 Trama de ejemplo:

  • Caso 200
  • Caso 400
  • Caso 401

Status Code 200 OK

Content-Type: application/json

{

 "header": "",

 "merchantId": "341198210",

 "traceNumber": null,

 "operationType": null,

 "dateTime": "201030000000",

 "amount": "000000000000",

 "currencyId": null,

 "status": "000",

 "data": null,

 "dataMap": {

  "messageResponse": {

   "header": {

    "status": {

     "busResponseCode": "0",

     "busResponseMessage": "EJECUCIÓN CON ÉXITO",

     "busResponseMsgId": "-",

     "srvResponseCode": "0",

     "srvResponseMessage": "EJECUCIÓN CON ÉXITO",

     "responseType": "0"

    }

   },

   "body": {

    "comercioConsultarLotesResponse": {

     "codComercio": "341198214",

     "nomComercio": "REC VISANET SOLES",

     "codProducto": "1",

     "nomProducto": "MENSUALIDAD 1",

     "fecProceso": "2020-05-28 00:00:00.0",

     "nroCargos": "0",

     "mtoTotal": "0.00",

     "moneda": "0",

     "estadoLote": "3"

    }

   }

  }

 }

}



D. Códigos de Respuesta

Respuesta Descripción
200 Consulta de lotes realizado con éxito
400 Error en la consulta de lotes
401 Error relacionado al acceso no autorizado

API de Listado de afiliaciones #

El comercio afiliado debe asegurar que su integración (desarrollo) sea lo más segura posible aplicando las medidas preventivas que considere necesario.

Todas las invocaciones a las APIs (servicios backend) de Niubiz tienen que ser realizadas host to host.


A. Endpoint

Ambiente URL de API
Testing https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.getAffiliation
Producción https://apipos.vnforapps.com/api.posservices/api/v1/service/recurrence.getAffiliation
Ambiente
Testing
URL de API
https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.getAffiliation
Producción
URL de API
https://apipos.vnforapps.com/api.posservices/api/v1/service/recurrence.getAffiliation


B. Request y Casos

  B.1 Tabla de campos

Campo Tipo Longitud Obligatorio Descripción
HEADER
accessToken Text max 1000 SI Token generado con el API de Seguridad
BODY
terminalId string max 8 SI Número de terminal
merchantId string max 9 SI Código del comercio
merchantName string max 40 SI Nombre del comercio
traceNumber string max 6 NO Número de registro
referenceNumber string max 6 NO Número de referencia
dateTime string max 12 SI Fecha de la operación en formato YYmmDDHHmmss
dataMap json SI Entidad en donde se definen los datos para la consulta
dataMap.channelAffiliation string max 1 SI Canal de afiliación
– 0 Plataforma
– 1 Homebaking
– 2 Comercio
– 3 Adquiriente
– 4 Emisor
– 5 Externo
– 6 Comercio Electrónico
dataMap.documentTypeCardHolder string max 1 NO Tipo de documento de tarjetahabiente
– 0 DNI
– 1 Carnet extranjería
– 2 Pasaporte
dataMap.documentIdCardHolder string max 50 NO Id documento del tarjetahabiente
dataMap.cardNumber string max 40 NO Número de tarjeta
dataMap.expirationMonth string max 2 NO Mes de expiración de tarjeta en formato MM
dataMap.expirationYear string max 4 NO Año de expiración de tarjeta en formato YYYY
dataMap.beneficiaryId string max 4 NO Id beneficiario
dataMap.requestDateFrom string max 10 NO Fecha de creación de solicitud desde en formato YYYY-mm-DD
dataMap.requestDateTo string max 10 NO Fecha de creación de solicitud hasta en formato YYYY-mm-DD
dataMap.affiliationDateFrom string max 10 SI Fecha de creación de afiliación desde en formato YYYY-mm-DD
dataMap.affiliationDateTo string max 10 SI Fecha de creación de afiliación hasta en formato YYYY-mm-DD
dataMap.status string max 1 NO Estado de afiliación
– 0 Afiliado
– 1 Desafiliado
dataMap.merchantId string max 9 SI Código de comercio
dataMap.issuerId string max 40 NO Código de emisor
dataMap.channelId string max 1 SI Canal Consumidor. Puede ser: 6 CE


  B.2 Trama de ejemplo:

Request

POST /api.posservices/api/v1/service/recurrence.getAffiliation HTTP/1.1

HOST: apitestposenv.vnforapps.com

Content-Type: application/json

Authorization:eyJraWQiOiJmWk1tV3pZR0RBckxHektvalNCK2w3SjFhMnNPXC9zQnNwO TlNNmNuM3F5MD0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJkMTlhM2I0Zi01NzYxLTRlYT EtYjBmYS1iNWNiNjU5OWQ5NWQiLCJjb2duaXRvOmdyb3VwcyI6WyJjdXN0b2RpbyJdLCJl dmVudF9pZCI6ImM2OTZmZjVkLTZjOTctNDE4NC05MGIxLTA5NjM2MWY4M2E2ZSIsInRva2 VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoiYXdzLmNvZ25pdG8uc2lnbmluLnVzZXIuYWRt aW4iLCJhdXRoX3RpbWUiOjE2MDIxMTM4NzksImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLW lkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbVwvdXMtZWFzdC0xXzJjSjFTZTFmSSIsImV4 cCI6MTYwMjExNzQ3OSwiaWF0IjoxNjAyMTEzODc5LCJqdGkiOiJiOTVmOGU0ZS1kZGE4LT RkZmUtOTc0NC1kOGQwZGEyMDFlMzMiLCJjbGllbnRfaWQiOiIxMGx2MDYxN281ZGljNTFl YnNucWVpaWpiNyIsInVzZXJuYW1lIjoiZ2lhbmNhZ2FsbGFyZG9AZ21haWwuY29tIn0.Gr O2XLoMnChN3Dg6H8G7LC3ZY4O_c1-DwvRYHCx8iiDqprFMK7jU43vo6W4ILNqP_QA1sDoE QaD9HJJ7iLfVBojh1tgiFyzFzkX4T3m63eHRSFfIZAToTGYOQoeZchsYb3UAffvrzR1JlU Pjwf3U1YRfBEu8ueIR6_OUMZdXC8TLS3pqEpXnPr6S-_bndpFRs5wZpt0BPSJ4OnhM2AYh 6pqFucjL9nsPmIaujJQVwdR8oNcrfeFuIv5t55H_DRDpQCSYstac1nFSm00P3EMdbOX6Lh 8dTU5dBOXe17Bfh7mDEP-FnF_J47COVFB_sYh7JXyePfK6kKTlSeV0Ev0pew

{

"terminalId": "1122334455",

"merchantId": "341198210",

"merchantName": "PRUEBAS NIUBIZ",

"dateTime": "201030000000",

"dataMap": {

 "channelAffiliation": "0",

 "affiliationDateFrom": "2019-03-26",

 "affiliationDateTo": "2019-03-26",

 "merchantId": "341198210",

 "channelId": "6"

 }

}



  B.3 Lenguajes:

  • Node
  • JavaScript
  • Python

const request = require('request');

const options = {

 method: 'POST',

 url: 'https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.getAffiliation',

 headers: {

  'Authorization': '{{accessToken}}',

  accept: 'application/json',

  'content-type': 'application/json'

 },

 body: {

  terminalId: "1122334455",

  merchantId: "341198210",

  merchantName: "PRUEBAS NIUBIZ",

  dateTime: "201030000000",

  dataMap: {

   channelAffiliation: "0",

   affiliationDateFrom: "2019-03-26",

   affiliationDateTo: "2019-03-26",

   merchantId: "341198210",

   "channelId": "6"

  }

 },

json: true

};

request(options, function (error, response, body) {

 if (error) throw new Error(error);

 console.log(body);

});



C. Response:

  C.1 Tabla de parámetros:

Campo Tipo Longitud Obligatorio Descripción
TRAMA EXITOSA: 200
header json NO Entidad que contiene información de la transacción en la Plataforma Canales.
merchantId string max 9 SI Código del comercio
traceNumber string max 6 NO Número de transacción
operationType string max 1 NO Tipo de operación
dateTime string max 20 SI Fecha de la transacción en formato YYmmDDhhMMss
amount string max 12 SI Importe
currencyId string max 3 SI Código de moneda
– 604 Soles
– 840 Dólares
status string max 3 SI Código de respuesta. Siempre es 200
data String max200 NO No se devuelve para productos recurrentes
dataMap json SI Entidad en donde se definen los datos para la consulta
dataMap.messageResponse
json SI Respuesta
dataMap.messageResponse
.header
json SI Cabecera
dataMap.messageResponse
.header.status
json SI Estado
dataMap.messageResponse
.header.status.busReponseType
string max 1 SI Tipo de respuesta
dataMap.messageResponse
.header.status.busResponseCode
string max 4 SI Código del servicio
dataMap.messageResponse
.header.status.busResponseMessage
string max 200 SI Mensaje del servicio
dataMap.messageResponse
.header.status.busResponseMsgId
string max 20 SI Id de transacción interna
dataMap.messageResponse
.header.status.srvResponseCode
string max 4 SI Código de respuesta
dataMap.messageResponse
.header.status.srvResponseMessage
string max 200 SI Mensaje de respuesta
dataMap.messageResponse
.body
json SI Cuerpo del mensaje
dataMap.messageResponse
.body.comercioListadoAfiliacionResponse
array SI Respuesta
dataMap.messageResponse
.body.comercioListadoAfiliacionResponse.
idAfiliacion
String max 12 SI Id de afiliación
dataMap.messageResponse
.body.comercioListadoAfiliacionResponse.
numTarjeta
String max 19 SI Número de tarjeta enmascarada
dataMap.messageResponse
.body.comercioListadoAfiliacionResponse.
mesExpTarjeta
String max 2 SI Número de mes de expiración en formato MM
dataMap.messageResponse
.body.comercioListadoAfiliacionResponse.
anoExpTarjeta
String max 4 SI Número de año de expiración en formato YYYY
dataMap.messageResponse
.body.comercioListadoAfiliacionResponse.
tipDocTarHabiente
String max 1 SI Tipo de documento de tarjetahabiente
– 0 DNI
– 1 Carnet
– 2 Pasaporte
dataMap.messageResponse
.body.comercioListadoAfiliacionResponse.
idDocTarHabiente
String max 50 SI Id de documento del tarjetahabiente
dataMap.messageResponse
.body.comercioListadoAfiliacionResponse.
nomTarHabiente
String max 100 SI Nombre del tarjetahabiente
dataMap.messageResponse
.body.comercioListadoAfiliacionResponse.
apePatTarHabiente
String max 100 NO Apellido del tarjetahabiente
dataMap.messageResponse
.body.comercioListadoAfiliacionResponse.
telTarHabiente
String max 25 SI Teléfono del tarjetahabiente
dataMap.messageResponse
.body.comercioListadoAfiliacionResponse.
correoTarHabiente
String max 200 SI Correo del tarjetahabiente
dataMap.messageResponse
.body.comercioListadoAfiliacionResponse.
idBeneficiario
String max 50 SI Id del beneficiario
dataMap.messageResponse
.body.comercioListadoAfiliacionResponse.
nomBeneficiario
String max 100 NO Nombre del beneficiario
dataMap.messageResponse
.body.comercioListadoAfiliacionResponse.
apePatBeneficiario
String max 100 NO Apellido paterno del beneficiario
dataMap.messageResponse
.body.comercioListadoAfiliacionResponse.
codProducto
String max 40 SI Código de producto
dataMap.messageResponse
.body.comercioListadoAfiliacionResponse.
nomProducto
String max 50 SI Nombre de producto
dataMap.messageResponse
.body.comercioListadoAfiliacionResponse.
canalAfiliacion
String max 1 SI Canal de la afiliación
dataMap.messageResponse
.body.comercioListadoAfiliacionResponse.
monMaximo
String max 16 NO Monto máximo. Precisión hasta 8 valores enteros con 2 decimales
dataMap.messageResponse
.body.comercioListadoAfiliacionResponse.
fecSolicitudAfiliacion
String max 20 SI Fecha de solicitud de afiliación en formato YYYY-mm-DD hh:MM:ss
dataMap.messageResponse
.body.comercioListadoAfiliacionResponse.
fecAfiliacion
String max 20 SI Fecha de afiliación en formato YYYY-mm-DD hh:MM:ss
dataMap.messageResponse
.body.comercioListadoAfiliacionResponse.
estadoAfiliacion
String max 1 SI Estado de afiliación
– 0 Afiliado
– 1 Desafiliado
dataMap.messageResponse
.body.comercioListadoAfiliacionResponse.
fechaExpiracion
String max 7 SI Fecha de expiración en formato mmYYYY
TRAMA ERRONEA: 400
header json NO Entidad que contiene información de la transacción en la Plataforma Canales.
merchantId string max 9 SI Código del comercio
traceNumber string max 6 NO Número de transacción
operationType string max 1 NO Tipo de operación
dateTime string max 20 SI Fecha de la transacción en formato YYmmDDhhMMss
amount string max 12 SI Importe
currencyId string max 3 SI Código de moneda
status string max 3 SI Código de respuesta. Siempre es 400
data String Max 200 NO No se devuelve para productos recurrentes
dataMap json SI Entidad en donde se definen los datos para la consulta
dataMap.messageResponse
json SI Respuesta
dataMap.messageResponse
.header
json SI Cabecera
dataMap.messageResponse
.header.status
json SI Estado
dataMap.messageResponse
.header.status.busReponseType
string max 1 SI Tipo de respuesta
dataMap.messageResponse
.header.status.busResponseCode
string max 4 SI Código del servicio
dataMap.messageResponse
.header.status.busResponseMessage
string max 200 SI Mensaje del servicio
dataMap.messageResponse
.header.status.busResponseMsgId
string max20 SI Id de transacción interna
dataMap.messageResponse
.header.status.srvResponseCode
string max 4 SI Código de respuesta
dataMap.messageResponse
.header.status.srvResponseMessage
string max 200 SI Mensaje de respuesta
dataMap.messageResponse
.body
json SI Cuerpo
dataMap.messageResponse
.body.errorMessage
json SI Mensaje de error
dataMap.messageResponse
.body.errorMessage.message
string max 200 SI Mensaje que indica la causa del error
TRAMA ERRONEA: 401
description text max 1000 Descripción relacionada al error. Este error se presenta cuando las credenciales no son válidas


  C.2 Trama de ejemplo:

  • Caso 200
  • Caso 400
  • Caso 401

Status Code 200 OK

Content-Type: application/json

{

 "header": "",

 "merchantId": "341198210",

 "traceNumber": null,

 "operationType": null,

 "dateTime": "201030000000",

 "amount": "000000000000",

 "currencyId": null,

 "status": "000",

 "data": null,

 "dataMap": {

  "messageResponse": {

   "header": {

    "status": {

     "busResponseCode": "0",

     "busResponseMessage": "EJECUCIÓN CON ÉXITO",

     "busResponseMsgId": "-",

     "srvResponseCode": "0",

     "srvResponseMessage": "EJECUCIÓN CON ÉXITO",

     "responseType": "0"

    }

   },

   "body": {

    "comercioListadoAfiliacionResponse": [

     "idAfiliacion": "21333179",

     "numTarjeta": "447411******2240",

     "mesExpTarjeta": "10",

     "anoExpTarjeta": "2027",

     "tipDocTarHabiente": "0",

     "idDocTarHabiente": "11111111",

     "nomTarHabiente": "JUAN",

     "apePatTarHabiente": "PEREZ",

     "telTarHabiente": "22222222",

     "correoTarHabiente": "DRFERCQ@FEFE.COM",

     "idBeneficiario": "345346345634",

     "nomBeneficiario": "MARÍA",

     "apePatBeneficiario": null,

     "codProducto": "0187",

     "nomProducto": "MANTENIMIENTO",

     "canalAfiliacion": "0",

     "monMaximo": null,

     "fecSolicitudAfiliacion": "2019-03-26 12:09:33.0",

     "fecAfiliacion": "2019-03-26 12:24:17.0",

     "estadoAfiliacion": "0",

     "fechaExpiracion": "10-2027"

    }

   }

  }

 }

}



D. Códigos de Respuesta

Respuesta Descripción
200 Consulta de afiliación realizado con éxito
400 Error en la consulta de afiliación
401 Error relacionado al acceso no autorizado

API de Listado de Cargos #

El comercio afiliado debe asegurar que su integración (desarrollo) sea lo más segura posible aplicando las medidas preventivas que considere necesario.

Todas las invocaciones a las APIs (servicios backend) de Niubiz tienen que ser realizadas host to host.


A. Endpoint

Ambiente URL de API
Testing https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.getCharges
Producción https://apipos.vnforapps.com/api.posservices/api/v1/service/recurrence.getCharges
Ambiente
Testing
URL de API
https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.getCharges
Producción
URL de API
https://apipos.vnforapps.com/api.posservices/api/v1/service/recurrence.getCharges


B. Request y Casos

  B.1 Tabla de campos

Campo Tipo Longitud Obligatorio Descripción
HEADER
accessToken Text max 1000 SI Token generado con el API de Seguridad
BODY
terminalId string max 9 SI Número de terminal
merchantId string max 9 SI Código del comercio
merchantName string max 40 SI Nombre del comercio
traceNumber string max 6 NO Número de registro
referenceNumber string max 6 NO Número de referencia
dateTime string max 12 SI Fecha y hora para la operación en formato YYmmDDHHmmss
dataMap json SI Entidad en donde se definen los datos para la transacción
dataMap.channelAffiliation string max 1 SI Canal de afiliación
– 0 Plataforma
– 1 Homebaking
– 2 Comercio
– 3 Adquiriente
– 4 Emisor
– 5 Externo
– 6 Comercio Electrónico
dataMap.cardNumber string max 40 NO Número de tarjeta
dataMap.expirationMonth string max 2 NO Mes expiración tarjeta
dataMap.expirationYear string max 4 NO Año de expiración de tarjeta en formato YYYY
dataMap.documentTypeCardholder string max 1 NO Tipo de documento de tarjetahabiente
– 0 DNI
– 1 Carnet extranjería
– 2 Pasaporte
dataMap.documentIdCardholder string max 50 NO Id documento del tarjetahabiente
dataMap.beneficiaryId string max 50 NO Id beneficiario
dataMap.requestDateFrom string max 10 SI Fecha de proceso desde. Formato (YYYY-MM-DD)
dataMap.requestDateTo string max 10 SI Fecha de proceso de solicitud. Formato (YYYY-MM-DD)
dataMap.status string max 1 SI Estado de Cargo – 0 Pendiente
– 1 Suspendido
– 2 Reactivado
– 3 Desafiliado
– 4 En proceso
– 5 Autorizado
dataMap.merchantId string max 9 SI Código de comercio
dataMap.issuerId string max 40 NO Código de Emisor
dataMap.channelId string max 1 SI Canal Consumidor, el cual puede ser:
– 6 Comercio Electrónico
– 2 Comercio


  B.2 Trama de ejemplo:

Request

POST /api.posservices/api/v1/service/recurrence.getCharges HTTP/1.1

HOST: apitestposenv.vnforapps.com

Content-Type: application/json

Authorization:eyJraWQiOiJmWk1tV3pZR0RBckxHektvalNCK2w3SjFhMnNPXC9zQnNwO TlNNmNuM3F5MD0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJkMTlhM2I0Zi01NzYxLTRlYT EtYjBmYS1iNWNiNjU5OWQ5NWQiLCJjb2duaXRvOmdyb3VwcyI6WyJjdXN0b2RpbyJdLCJl dmVudF9pZCI6ImUwMzRlYWE0LTQwOGYtNDhlOC04N2IyLTVkZDU4Y2U1NGI2ZSIsInRva2 VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoiYXdzLmNvZ25pdG8uc2lnbmluLnVzZXIuYWRt aW4iLCJhdXRoX3RpbWUiOjE2MDQ0NjY0NDYsImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLW lkcC51cy1lYXN0LTEuYW1hem9uYXdzLmNvbVwvdXMtZWFzdC0xXzJjSjFTZTFmSSIsImV4 cCI6MTYwNDQ3MDA0NiwiaWF0IjoxNjA0NDY2NDQ2LCJqdGkiOiJjYWQ2YjkwYS0yM2M2LT RjZDItYWU4MS00N2UwMDllNThmMWUiLCJjbGllbnRfaWQiOiIxMGx2MDYxN281ZGljNTFl YnNucWVpaWpiNyIsInVzZXJuYW1lIjoiZ2lhbmNhZ2FsbGFyZG9AZ21haWwuY29tIn0.gc Ib9E1Z1ySkEJH96-65bjvFaxgFSQV8V8CSEiNthEFz4zTLeWyDydTvKSr2IGJw1R4ElHq9 ZcfSgwV5OLhGp4kOWCC4fDzWF6JuPa4L1JFtY9Ywadlmxhga4jXL7dQFaUt3LwgN0_P9H6 inmxO-nxEHxmifokAJpXlxbp1vYt_ulgvb_vxYPYq8wyuof-rB-B4AiQeDs247xKRiuDKC MHBWxDb5S41RQbv6RLlGSaXtrMwykrUzeVph7mxCq8sUIrYnoXH7xADIaEJ4E3HjVlSjNT Qe9ISOy8SNe-gVpGYJGPkOYhdtwZOZbnb8U7l4DPRjuBrLKlUo0XbA_-QJbA

{

"terminalId": "614006066",

"merchantId": "341198210",

"merchantName": "PRUEBAS NIUBIZ",

"dateTime": "1487346033729",

"dataMap": {

 "channelAffiliation": "6",

 "requestDateFrom": "2020-01-01",

 "requestDateTo": "2020-12-31",

 "status": "0",

 "merchantId": "341198210",

 "channelId": "6"

 }

}



  B.3 Lenguajes:

  • Node
  • JavaScript
  • Python

const request = require('request');

const options = {

 method: 'POST',

 url: 'https://apitestposenv.vnforapps.com/api.posservices/api/v1/service/recurrence.getCharges',

 headers: {

  'Authorization': '{{accessToken}}',

  accept: 'application/json',

  'content-type': 'application/json'

 },

 body: {

  terminalId: "614006066",

  merchantId: "341198210",

  merchantName: "PRUEBAS NIUBIZ",

  dateTime: "1487346033729",

  dataMap: {

   channelAffiliation: "6",

   affiliationDateFrom: "2019-03-26",

   requestDateFrom: "2020-01-01",

   requestDateTo: "2020-12-31",

   status: "0",

   merchantId: "341198210",

   channelId: "6"

  }

 },

json: true

};

request(options, function (error, response, body) {

 if (error) throw new Error(error);

 console.log(body);

});



C. Response:

  C.1 Tabla de parámetros:

Campo Tipo Longitud Obligatorio Descripción
TRAMA EXITOSA: 200
header json NO Entidad que contiene información de la transacción en la Plataforma Canales.
merchantId string max 9 SI Código del comercio
traceNumber string max 6 NO Número de transacción
operationType string max 1 NO Tipo de operación
dateTime string max 20 SI Fecha de la transacción en formato YYmmDDhhMMss
amount string max 12 NO Importe
currencyId string max 3 NO Código de moneda
– 604 Soles
– 840 Dólares
– null Ninguno
status string max 3 SI Código de respuesta. Siempre es 000
data String max 200 NO No se devuelve para productos recurrentes
dataMap json SI Entidad en donde se definen los datos para la transacción
dataMap.messageResponse
json SI
dataMap.messageResponse
.header
json SI
dataMap.messageResponse
.header.status
json SI
dataMap.messageResponse
.header.status.bus
ResponseCode
string max 4 SI Código de respuesta del WAS
dataMap.messageResponse
.header.status.bus
ResponseMessage
string max 200 SI Mensaje de respuesta del WAS
dataMap.messageResponse
.header.status.bus
ResponseMsgId
string max 20 NO Identificador único de la transacción
dataMap.messageResponse
.header.status.srv
ResponseCode
string max 4 SI Código de respuesta del servicio de negocio
dataMap.messageResponse
.header.status.srv
ResponseMessage
string max 200 SI Mensaje de respuesta del servicio de negocio.
dataMap.messageResponse
.header.status.bus ReponseType
string max 1 SI Tipo de respuesta de la invocación del servicio. Puede ser:
– 0 -> Éxito
– 1, 2 -> Error
dataMap.messageResponse
.body
json SI
dataMap.messageResponse
.body.comercioListadoCargo
Response
array SI
dataMap.messageResponse
.body.comercioListadoCargo
Response.idTransaccion
String max 20 NO Código de transacción cuando el cargo es autorizado.
dataMap.messageResponse
.body.comercioListadoCargo
Response.idCargo
String max 10 SI Identificador del Cargo
dataMap.messageResponse
.body.comercioListadoCargo
Response.numTarjeta
String max 19 SI Número de tarjeta
dataMap.messageResponse
.body.comercioListadoCargo
Response.mesExpTarjeta