OPEN BANKING - BNB


INFORMACIÓN

 
Título Open Banking BNB, servicios para negocios
Versión 2.0.0
Protocolo de desarrolo HTTP
Protocolo de producción HTTPS

DESCRIPCIÓN

El Open Banking BNB, permite integrar a través de APIs (interfaces de programación de aplicaciones) nuevas capacidades financieras en productos tecnológicos e innovadores de tu empresa, con el objetivo de incrementar el valor a tus plataformas y soluciones digitales.

SERVICIOS DISPONIBLES:

  • Sandbox QR Simple
  • Sandbox QR Simple por terceros
  • Sandbox Domiciliación
  • Sandbox Extracto de Cuentas
  • Sandbox Consulta de Saldo


BankStatement

/Enterprise/BankStatement

Campos de la solicitud requeridos para poder ejecutar el extracto de los últimos 10 movimientos


Campos

Campo Descripción
userKey Clave de usuario
accountNumber Número de cuenta

Parámetros Header

Content-Type Tipo de cuerpo MIME de la solicitud.
Ejemplo: application/json

Sandbox URI

http://bnbapideveloperv1.azurewebsites.net/

Ejemplo:

{

"userKey": e8k7crKA9S0:APA91bGDZ76NccQkYXIzS5

"accountNumber": 1501243627

}


RESPUESTA:

Campos de Respuesta


Campo Descripción
accountNumber Número de cuenta
accountType Tipo de cuenta
List movements Lista de movimientos bancarios

Consulta de Saldo

/Enterprise/Balance

Campos de la solicitud requeridos para poder obtener el saldo de una cuenta determinada


Campos

Campo Descripción
userKey Clave de usuario
accountNumber Número de cuenta

Parámetros Header

Content-Type Tipo de cuerpo MIME de la solicitud.
Ejemplo: application/json

Sandbox URI

http://bnbapideveloperv1.azurewebsites.net/

Ejemplo:

{

"userKey": e8k7crKA9S0:APA91bGDZ76NccQkYXIzS5

"accountNumber": 1501243627

}


RESPUESTA:

Campos de Respuesta


Campo Descripción
account Cuenta

Extracto de Cuentas

/Enterprise/AccountBalances

Campos de la solicitud requeridos para poder obtener el saldos de todas las cuentas


Campos

Campo Descripción
userKey Clave de usuario

Parámetros Header

Content-Type Tipo de cuerpo MIME de la solicitud.
Ejemplo: application/json

Sandbox URI

http://bnbapideveloperv1.azurewebsites.net/

Ejemplo:

{

"userKey": e8k7crKA9S0:APA91bGDZ76NccQkYXIzS5

}


RESPUESTA:

Campos de Respuesta


Campo Descripción
success Resultado
message Mensaje
code Código de Respuesta

RegisterGuaranteeBill

/Enterprise/RegisterGuaranteeBill

Campos de la solicitud requeridos para poder ejecutar el registro de la Boleta de Garantía


Campos

Campo Descripción
userKey Clave de usuario
clientCode Código de cliente
bailType Tipo de fianza
bailConcept Concepto de la fianza
operationType Tipo de operación: Operación Prepagada/Operación bajo línea de crédito
isRenewal Si es renovación de otra boleta de garantía
guaranteeBillRenewal Nro. Operación de la boleta que se está renovando (si aplica)
Currency Moneda de la boleta
amountGuaranteeBill Monto de la boleta
termEndDate Fecha fin de vigencia de la boleta
termAmountDays Cantidad de días de vigencia de la boleta
accountNumberForPrepaid Número de cuenta cuando el tipo de operación es prepago
loanLineAccountNumber Línea de crédito cuando el tipo de operación es bajo línea de crédito
branchOfficePick Oficina en la que se recogerá el título
fullNamePick Nombre de la persona que recogerá el título
documentNumberPick Número de documento de la persona que recogerá el título
guaranteeInFavorOf Boleta de garantía en favor de
guaranteeObjectFor Objeto de la boleta de garantía
guaranteeOnBehalfOf Boleta de garantía por cuenta de
accountNumberCommissionPay Número de cuenta de donde se debitará la comisión
includeTitle Incluir el texto: Título irrevocable, renovable y de ejecución inmediata en el objeto de la boleta

Parámetros Header

Content-Type Tipo de cuerpo MIME de la solicitud.
Ejemplo: application/json

Sandbox URI

http://bnbapideveloperv1.azurewebsites.net/

Ejemplo:

{

"userKey": "XrYi9OrZ0CCw7LGgOVDFh8aYT3M5KnPyAt",

"clientCode":"1010026582",

"bailType""1014",

"bailConcept""5",

"operationType""1",

"isRenewal""true",

"guaranteeBillRenewal""1012227119",

"currency""2003",

"amountGuaranteeBill""133",

"termEndDate""2017-08-01",

"termAmountDays""365",

"accountNumberForPrepaid""1520468087",

"loanLineAccountNumber""1520468087",

"branchOfficePick""1",

"fullNamePick""IVAN SERGIO ESPINAL ALVAREZ",

"documentNumberPick""8264274",

"guaranteeInFavorOf""TERCERO",

"guaranteeObjectFor""OBJETO",

"guaranteeOnBehalfOf""GARANTE",

"accountNumberCommissionPay""1520468087",

"includeTitle""true",

}


RESPUESTA:

Campos de Respuesta


Campo Descripción
operationNumber Número de operación

Simple

/Enterprise/TransferQR

Campos de la solicitud requeridos para poder realizar el Pago Simple


Campos

Campo Descripción
userKey Clave de usuario
destinationAccountNumber Número de cuenta origen
currency Moneda
reference Referencia de la transacción
onlyUse Uso único

Parámetros Header

Content-Type Tipo de cuerpo MIME de la solicitud.
Ejemplo: application/json

Sandbox URI

http://bnbapideveloperv1.azurewebsites.net/

Ejemplo:

{

"userKey": "e8k7crKA9S0:APA91bGDZ76NccQkYXIzS5",

"sourceAccountNumber":"1520468087",

"destinationAccountNumber""1520468060",

"currency""2003",

"ammount""10",

"reference""TEST",

"onlyUse""false",

}


RESPUESTA:

Campos de Respuesta


Campo Descripción
qr Imagen del QR generado
qrCode Código del QR
success Resultado
message Mensaje
code Código de Respuesta

Token

/auth/token

Con éste método se genera un token de seguridad que se utilizará para hacer las solicitudes posteriores. Recibe como parámetros el accountId y el authorizationId otorgados por el Banco.


Campos

Campo Descripción
accountId Identificador de cuenta
authorizationId Identificador de autorización

Parámetros Header

Content-Type Tipo de cuerpo MIME de la solicitud.
Ejemplo: application/json

Sandbox URI

https://clientauthenticationapiv2.azurewebsites.net/api/v1/

Ejemplo:

{

"accountId": "I8Bl1/IZBWyZk+qJCaMahw==",

"authorizationId":"xGTy/5MpdpjgSeuBPIEVwA=="

}


RESPUESTA:

Campos de Respuesta


Campo Descripción
success Resultado
message Mensaje

QR Simple

/main/getQRWithImageAsync

Genera un QR de cobro simple, devuelve el mismo en un array de bytes


Campos

Campo Descripción
currency Moneda del pago
gloss Descripción del pago (EJ. ID de reserva)
amount Monto del pago
expirationDate Fecha de caducidad del QR
singleUse Define si el uso del QR es único o no

Parámetros Header

Content-Type Tipo de cuerpo MIME de la solicitud.
Ejemplo: application/json

Sandbox URI

https://qrsimpleapiv2.azurewebsites.net/api/v1/

Ejemplo:

{

"currency": "BOB",

"gloss":"Prueba BOA",

"amount":"20",

"singleUse":"true",

"expirationDate":"2019-09-10"

}


RESPUESTA:

Campos de Respuesta


Campo Descripción
success Resultado
message Mensaje

getQRbyGenerationDateAsync

/main/getQRbyGenerationDateAsync

Obtiene información de los Qrs generados en una fecha dada.


Campos

Campo Descripción
generationDate Fecha en la que se generaron los QRs

Parámetros Header

Content-Type Tipo de cuerpo MIME de la solicitud.
Ejemplo: application/json

Sandbox URI

https://qrsimpleapiv2.azurewebsites.net/api/v1/

Ejemplo:

{

"generationDate": "2020-12-31"

}


RESPUESTA:

Campos de Respuesta


Campo Descripción
dTOqrDetails Lista de detalles de los QRs generados en la fecha enviada
success Flag que define si la consulta fue exitosa o no
message Mensaje de error en caso de que la consulta no fuera exitosa.

getQRStatusAsync

/main/getQRStatusAsync

Obtiene el estado de un QR según su identificador


Campos

Campo Descripción
qrId Identificador del QR consultado

Parámetros Header

Content-Type Tipo de cuerpo MIME de la solicitud.
Ejemplo: application/json

Sandbox URI

https://qrsimpleapiv2.azurewebsites.net/api/v1/

Ejemplo:

{

"qrId": "59"

}


RESPUESTA:

Campos de Respuesta


Campo Descripción
id Identificador del QR consultado
qrId 1=No Usado; 2= Usado 3=Expirado; 4=Con error;
expirationDate Fecha de caducidad del QR
success Flag que define si la consulta fue exitosa o no
message Mensaje de error en caso de que la consulta no fuera exitosa.

getBalanceAsync

/Transactions/getBalanceAsync

Obtiene el saldo de las cuentas del cliente autenticado, no recibe ningún parámetro mas que la cabecera que contiene el token con las credenciales del cliente.


Campos

Parámetros Header

Content-Type Tipo de cuerpo MIME de la solicitud.
Ejemplo: application/json

Sandbox URI

https://accountapiv1.azurewebsites.net/api/v1/

Ejemplo:


RESPUESTA:

Campos de Respuesta


Campo Descripción
accountBalance Estructura que contiene la lista de saldos de las cuentas asociadas al cliente autenticado
accountNumber Numero de cuenta del cliente
accountType id del tipo de la cuenta. 1=Cuenta corriene; 2=Caja de ahorro
Currency Moneda de la cuenta
balanceAmount Saldo actual de la cuenta
partyName Nombre o razón social del cliente autenticado
success Flag que define si la consulta fue exitosa o no
message Mensaje de error en caso de que la consulta no fuera exitosa

getAccountBalanceAsync

/Transactions/getAccountBalanceAsync

Obtiene el saldo de las cuentas del cliente autenticado, no recibe ningún parámetro mas que la cabecera que contiene el token con las credenciales del cliente.


Campos

Campo Descripción
AccountNumber Número de cuenta para la consulta

Parámetros Header

Content-Type Tipo de cuerpo MIME de la solicitud.
Ejemplo: application/json

Sandbox URI

https://accountapiv1.azurewebsites.net/api/v1/

Ejemplo:

{

"AccountNumber": "18888888888"

}


RESPUESTA:

Campos de Respuesta


Campo Descripción
accountBalance Estructura que contiene la lista de saldos de las cuentas asociadas al cliente autenticado
accountNumber Numero de cuenta del cliente
accountType id del tipo de la cuenta. 1=Cuenta corriene; 2=Caja de ahorro
Currency Moneda de la cuenta
balanceAmount Saldo actual de la cuenta
partyName Nombre o razón social del cliente autenticado
success Flag que define si la consulta fue exitosa o no
message Mensaje de error en caso de que la consulta no fuera exitosa

Pago de Servicios

/Transactions/GetCompanyQRWithImageAsync

Genera un QR de cobro simple, devuelve el mismo en un array de bytes


Campos

Campo Descripción
QueryCompanyId Identificador de la empresa para la cual se esta solicitando el QR
currency Moneda del pago
gloss Descripción del pago (EJ. ID de reserva)
amount Monto del pago
expirationDate Fecha de caducidad del QR
singleUse Define si el uso del QR es único o no

Parámetros Header

Content-Type Tipo de cuerpo MIME de la solicitud.
Ejemplo: application/json

Sandbox URI

https://accountapiv1.azurewebsites.net/api/v1/

Ejemplo:

{

"QueryCompanyId": 100

"currency": "BOB"

"gloss": "Prueba QR"

"amount": 20

"expirationDate": "2021-09-10"

"singleUse": true

}


RESPUESTA:

Campos de Respuesta


Campo Descripción
id Identificador del QR generado
qr Array de bytes que contiene la imagen del QR.
Success Flag que define si la consulta fue exitosa o no
Message Mensaje de error en caso de que la consulta no

Token

/ClientAuthentication.API/api/v1/auth/token

Este servicio genera un token de seguridad que se utilizará para hacer todas las solicitudes posteriores. El mismo recibe como parámetros de entrada el “accountId” y el “authorizationId” otorgados por el Banco.


Campos

Campo Descripción
accountId Identificador de cuenta
authorizationId Identificador de autorización

Parámetros Header

Content-Type Tipo de cuerpo MIME de la solicitud.
Ejemplo: application/json

Sandbox URI

http://test.bnb.com.bo/ClientAuthentication.API/api/v1/auth/token

Ejemplo:

{

"accountId": "s9CG8FE7Id75ef2jeX9bUA==",

"authorizationId":"713K7PvTlACs1gdmv9jGgA=="

}


RESPUESTA:

Campos de Respuesta


Campo Descripción
success Obtendrá como resultado correcto: true, caso contrario: false.
message Obtendrá el "token" como resultado correcto. Caso contrario "mensaje de error".

QR Monto Fijo

/Services/GetQRFixedAmount

Genera un código QR de domiciliación con monto fijo: - El código QR debe ser escaneado y aprobado por otra EIF para su efectividad. - Debe generarse un código QR para cada domiciliación de un cliente. - Adicionalmente se registra su respectivo plan de pagos para control posterior.


Campos

Campo Descripción
currencyCode Moneda que se va a utilizar para la transacción: - 1: Bolivianos. - 2: Dólares.
amount Monto fijo debe ser mayor que cero “0”. Maneja el punto(.) con 2 decimales.
reference Descripción del servicio a domiciliar.
serviceCode Código de servicio o contrato que identifica el servicio a domiciliar.
dueDate Fecha de vencimiento del QR de domiciliación.
installmentsQuantity Especifica el número de cuotas en el que se debe dividir el monto a domiciliar.
chargeType Tipo de domiciliación: - 1: automático. - 2: manual.
chargeDate (Es requerido cuando “chargeType” es definido como automático) Día de cobro de la domiciliación.

Parámetros Header

Content-Type Tipo de cuerpo MIME de la solicitud.
Ejemplo: application/json

Sandbox URI

http://test.bnb.com.bo/DirectDebit/api/Services/GetQRFixedAmount

Ejemplo:

{

"currencyCode": 1,

"amount":1000,

"reference":"Pago de telefonía TIGO",

"serviceCode":"KH2XI",

"dueDate":"2023-12-10",

"installmentsQuantity":1,

"chargeType":1,

"chargeDate":20

}


RESPUESTA:

Campos de Respuesta


Campo Descripción
method Tipo de registro de domiciliación: - “QR”.
qrId Código único de domiciliación.
qrContent Base 64 que contiene la imagen del QR Domiciliación.
installments Cuotas disponibles en el plan de pagos.
id Identificador de la cuota.
amount Monto de la cuota.
success Obtendrá como resultado correcto: true, caso contrario: false.
message Obtendrá vacio(“”) como resultado correcto, caso contrario "mensaje de error".
code Código de respuesta.

QR Monto Variable

/Services/GetQRVariableAmount

Genera un código QR de domiciliación con monto variable: - El código QR debe ser escaneado y aprobado por otra EIF para su efectividad. - Una vez escaneado y confirmado el QR, la domiciliación está vigente hasta que el destinatario revoque la misma. - Debe generarse un código QR para cada domiciliación de un cliente. - Adicionalmente se registra su respectivo plan de pagos para control posterior.


Campos

Campo Descripción
currencyCode Moneda que se va a utilizar para la transacción: - 1: Bolivianos. - 2: Dólares.
amount Monto fijo debe ser mayor que cero “0”. Maneja el punto(.) con 2 decimales.
reference Descripción del servicio a domiciliar.
serviceCode Código de servicio o contrato que identifica el servicio a domiciliar.
dueDate Fecha de vencimiento del QR de domiciliación.
installmentsQuantity Especifica el número de cuotas en el que se debe dividir el monto a domiciliar.
chargeType Tipo de domiciliación: - 1: automático. - 2: manual.
chargeDate (Es requerido cuando “chargeType” es definido como automático) Día de cobro de la domiciliación.

Parámetros Header

Content-Type Tipo de cuerpo MIME de la solicitud.
Ejemplo: application/json

Sandbox URI

http://test.bnb.com.bo/DirectDebit/api/Services/GetQRVariableAmount

Ejemplo:

{

"currencyCode": 1,

"amount":1000,

"reference":"Pago de internet",

"serviceCode":"KH2XI",

"dueDate":"2023-12-10",

"installmentsQuantity":1,

"chargeType":1,

"chargeDate":15

}


RESPUESTA:

Campos de Respuesta


Campo Descripción
method Tipo de registro de domiciliación: - “QR”.
qrId Código único de domiciliación.
qrContent Base 64 que contiene la imagen del QR Domiciliación.
installments Cuotas disponibles en el plan de pagos.
id Identificador de la cuota.
amount El monto de la cuota se muestra en cero “0” hasta que se actualice el mismo.
success Obtendrá como resultado correcto: true, caso contrario: false.
message Obtendrá vacio(“”) como resultado correcto, caso contrario "mensaje de error".
code Código de respuesta.

Domiciliaciones generadas

/Services/GetTransactionOutgoing

Recupera una lista de las domiciliaciones generadas dentro de un intervalo de fechas.


Campos

Campo Descripción
startDate Fecha de inicio de la consulta.El formato que maneja es (yyyy-MM-dd).
closureDate Fecha final de la consulta.El formato que maneja es (yyyy-MM-dd). Tiene como restricción la consulta de 30 días.

Parámetros Header

Content-Type Tipo de cuerpo MIME de la solicitud.
Ejemplo: application/json

Sandbox URI

http://test.bnb.com.bo/DirectDebit/api/Services/GetTransactionOutgoing

Ejemplo:

{

"startDate": "2023-01-01",

"closureDate":"2023-01-22"

}


RESPUESTA:

Campos de Respuesta


Campo Descripción
qrId Código único domiciliación.
type Tipo de domiciliación: - 1: monto fijo. - 2: monto variable.
reference Descripción de la domiciliación.
active Estado de la domiciliación: - true: activa. - false: pendiente de escaneo.
success Obtendrá como resultado correcto: true, caso contrario: false.
message Obtendrá vacio(“”) como resultado correcto, caso contrario "mensaje de error".
code Código de respuesta.

Cobros Rechazados

/Services/GetTransactionRejected

Recupera la lista de cobros de domiciliaciones rechazadas, dentro de un intervalo de fechas.


Campos

Campo Descripción
startDate Fecha de inicio de la consulta.El formato que maneja es (yyyy-MM-dd).
closureDate Fecha final de la consulta.El formato que maneja es (yyyy-MM-dd). Tiene como restricción la consulta de 30 días.

Parámetros Header

Content-Type Tipo de cuerpo MIME de la solicitud.
Ejemplo: application/json

Sandbox URI

http://test.bnb.com.bo/DirectDebit/api/Services/GetTransactionRejected

Ejemplo:

{

"startDate": "2023-01-01",

"closureDate":"2023-01-22"

}


RESPUESTA:

Campos de Respuesta


Campo Descripción
qrId Código único domiciliación.
type Tipo de domiciliación: - 1: monto fijo. - 2: monto variable.
retryNumber Contador de reintentos asignado para cada cobro.
retryDate Ultima fecha de reintento registrada.
result Descripción del último rechazo.
success Obtendrá como resultado correcto: true, caso contrario: false.
message Obtendrá vacio(“”) como resultado correcto, caso contrario "mensaje de error".
code Código de respuesta.

Orden de débito

/Services/SendDebitOrder

Envía una solicitud para una orden de débito asociada a una domiciliación bancaria existente con otra EIF.


Campos

Campo Descripción
qrId Código único domiciliación.
installmentId Identificador de la cuota.
amount Monto para el cobro de la cuota, debe ser mayor que cero “0”.
fundsSource Declaración del origen de fondos.
fundsDestination Declaración del destino de fondos.

Parámetros Header

Content-Type Tipo de cuerpo MIME de la solicitud.
Ejemplo: application/json

Sandbox URI

http://test.bnb.com.bo/DirectDebit/api/Services/SendDebitOrder

Ejemplo:

{

"qrId": "ACJSS1231",

"installmentId":1,

"amount":1000,

"fundsSource":"Salario",

"fundsDestination":"Pago de Servicios"

}


RESPUESTA:

Campos de Respuesta


Campo Descripción
transactionId Código asignado a la transacción realizada
success Obtendrá como resultado correcto: true, caso contrario: false.
message Obtendrá vacio(“”) como resultado correcto, caso contrario "mensaje de error".
code Código de respuesta.

Detalle de domiciliación

/Services/GetDetail

Obtiene el detalle de una domiciliación a partir del Id de QR.


Campos

Campo Descripción
qrId Código único domiciliación.

Parámetros Header

Content-Type Tipo de cuerpo MIME de la solicitud.
Ejemplo: application/json

Sandbox URI

http://test.bnb.com.bo/DirectDebit/api/Services/GetDetail

Ejemplo:

{

"qrId": "ACJSS1231"

}


RESPUESTA:

Campos de Respuesta


Campo Descripción
currencyCode Moneda que se va a utilizar para la transacción: - 1: Bolivianos. - 2: Dólares .
amount Monto del servicio o bien para la domiciliación.
reference Descripción del servicio a domiciliar.
serviceCode Código de servicio o contrato que identifica el servicio a domiciliar.
chargeType Tipo de domiciliación: - 1: automático. - 2: manual.
chargeDate Día de cobro de la domiciliación.
id Identificador de la cuota
amount Monto de la cuota.
status 0: Cobro pendiente 1: Cobro realizado 2: Cobro rechazado
date Fecha asignada al estado (“status”), corresponde a la fecha programada, de cobro y rechazada respectivamente.
success Obtendrá como resultado correcto: true, caso contrario: false.
message Obtendrá vacio(“”) como resultado correcto, caso contrario "mensaje de error".
code Código de respuesta.

Actualizar cuota

/Services/UpdatePendingQuota

Actualiza las cuotas dentro del plan de pagos que se encuentren en estado pendiente.


Campos

Campo Descripción
qrId Código único domiciliación.
installments Cuotas disponibles en el plan de pagos.
id Identificador de la cuota.
amount Monto de la cuota.
date Fecha de cobro programada en formato (yyyy-MM-dd).

Parámetros Header

Content-Type Tipo de cuerpo MIME de la solicitud.
Ejemplo: application/json

Sandbox URI

http://test.bnb.com.bo/DirectDebit/api/Services/UpdatePendingQuota

Ejemplo:

{

"id": 1,

"amount": 1000,

"date": "2023-01-20"

}


RESPUESTA:

Campos de Respuesta


Campo Descripción
qrId Código único domiciliación.
installments Cuotas disponibles en el plan de pagos.
id Identificador de la cuota.
status Estado de actualización del monto para el plan de pagos de cada domiciliación: - true: exitoso. - false: fallido.
errorMessage Mensaje de error en caso de que la actualización de una cuota sea fallido.
success Obtendrá como resultado correcto: true, caso contrario: false.
message Obtendrá vacio(“”) como resultado correcto, caso contrario "mensaje de error".
code Código de respuesta.