OPEN BANKING - BNB


INFORMACIÓN DEL API

 
Título Servicios de Negocios
Versión 1.0.0
Protocolo HTTP
Sandbox URI http://bnbapideveloperv1.azurewebsites.net
Live URI http://bnbapideveloperv1.azurewebsites.net/api/

DESCRIPCIÓN

El API (v 1.0.0) permite que aplicaciones de terceros realizar diferentes operaciones que realizarian dentro del Banco Nacional de Bolivia, algunas de estas son:

EMPRESAS:
  • Live Sandbox Transferencias
  • Live Sandbox Consulta de Saldo
  • Live Sandbox Obtención de Extractos
  • Live Sandbox Boletas de Garantía
  • Live Sandbox Giros
  • Live Sandbox Simple
  • Sandbox Transferencias QR
  • Sandbox Botón de pago

PERSONAS:
  • Sandbox Transferencias
  • Sandbox Consulta de Saldo
  • Sandbox Obtención de Extractos


HISTORIAL DE VERSIONES

A continuación se observa el historial de versiones del API:

Versión Fecha de Lanzamiento Link Documentación
1.0.0 Mayo 2019 Link

Transferencias Locales

/Enterprise/Transfer

Campos de la solicitud requeridos para poder ejecutar la transferencia


Campos

Campo Descripción
userKey Clave de usuario
sourceAccountNumber Número de cuenta origen
destinationAccountNumber Número de cuenta origen
currency Moneda
ammount Monto de la transferencia
reference Referencia de la transacción

Parámetros Header

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

Sandbox URI

http://bnbapideveloperv1.azurewebsites.net/

Ejemplo:

{

"userKey": 1234

"sourceAccountNumber": 4548987

"destinationAccountNumber": 5

"currency": 1

"ammount": 1000.54

"reference": desc

}


RESPUESTA:

Campos de Respuesta


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

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

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=Usado; 2= No usado 3=Expirado
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

Botón de pago

/api/v1/main/getPaymentButton

Brinda medios de pago digitales a personas naturales o jurídicas. Genera links de pago para que cobres a tus clientes mediante Tarjeta de Débito , Tarjeta de Crédito o QR Simple


Campos

Campo Descripción
photo Fotografía
title Título
detail Detalle del pago
currency Tipo de moneda
amount Monto del pago

Parámetros Header

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

Sandbox URI

https://botonpagoapiv1.azurewebsites.net/api/v1/main/getPaymentButton

Ejemplo:

{

"photo": "yJ2ZNYNk/kai3YCXD4hoNg==",

"title":"Camisas"

"detail": "Camisas Ejecutivas, Talla M , Colores Rojo y Blanco",

"currency":"BOB"

"amount": 123

}


RESPUESTA:

Campos de Respuesta


Campo Descripción
success Resultado
message Mensaje
url Link del pago

Simuladores de Crédito

/LoanSimulator.WebApi/

Servicio generador de ofertas, en base a los parámetros de entrada con información del cliente, se calcula la oferta que el banco brinda al cliente con características como monto a financiar, cuotas mensuales de crédito, plazo, requisitos y beneficios.


Campos

Campo Descripción
idBranchOffice Parámetro del departamento en que se está solicitando el crédito
age Edad del cliente
netMonthlyIncome_Bs Ingreso económico liquido del cliente expresado moneda nacional
includesSpouseIncome Valor que indica si el ingreso declarado incluye el de su conyugue
hasCreditCard Si el cliente tiene Tarjeta de Crédito
creditCardLimit_Bs Valor del límite de sus Tarjeta de Crédito
hasHousingLoan Si el cliente tiene crédito de hipotecario vigente
housingLoanFee Valor de cuota mensual de su crédito de vivienda
hasOtherLoans Si el cliente tiene otro tipo de créditos (Consumo)
otherLoansFee_Bs Valor de cuota mensual del crédito de consumo
vehicleCost_Usd Valor del vehículo expresado en Dólares
vehicleStatus Estado del vehículo
vehicleModelYear Año del vehículo
hasPersonalContribution Si el cliente tiene contribución personal
personalContributionAmount_Usd Monto del aporte propio expresado en Dólares

Parámetros Header

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

Sandbox URI

http://test.bnb.com.bo/LoanSimulator.WebApi/

Ejemplo:

{

"idBranchOffice": 1,

"age": 25

"netMonthlyIncome_Bs": 4500,

"includesSpouseIncome": false,

"hasCreditCard": false,

"creditCardLimit_Bs": 7000,

"hasHousingLoan": false,

"housingLoanFee": 0,

"hasOtherLoans": false,

"otherLoansFee_Bs": 0,

"vehicleCost_Usd": 15000,

"vehicleStatus": 8214,,

"vehicleModelYear": 2022,

"hasPersonalContribution": true,

"personalContributionAmount_Usd": 5000,

}


RESPUESTA:

Campos de Respuesta


Campo Descripción
success Resultado de ejecución
message Descripción del resultado en caso de que suceda algún error
idLoanOffer Identificador único de la oferta
amountToFinance_Bs Monto máximo a financiar en bolivianos
amountToFinance_Usd Monto máximo a financiar en dólares
amountToFinanceFee_Bs Cuota mensual del monto máximo a financiar en bolivianos
amountToFinanceFee_Usd Cuota mensual del monto máximo a financiar en dólares
requestedAmountToFinance_Bs Valor del monto solicitado a financiar en bolivianos
requestedAmountToFinance_Usd Valor del monto solicitado a financiar en dólares
requestedAmountFee_Bs Valor de la cuota mensual del monto solicitado en bolivianos
requestedAmountFee_Usd Valor de la cuota mensual del monto solicitado en bolivianos
installment_Months Plazo en meses
idProduct Tipo Crédito
description Descripción del crédito
fixedFeeInMonths Cantidad de meses con tasa fija
benefits Listado de beneficios
requirement Listado de requisitos
amountToFinanceInsuranceInfo.Insuranse Información de los seguros en base al monto máximo a financiar
requestedAmountInsuranceInfo.Insuranse Información de los seguros en base al monto solicitado
interestRate Valor que representa la tasa de interés de la oferta
variableInterestRate Valor que representa la tasa de interés variable de la oferta
termsDetail Descripción de las condiciones incluye información de Tasa de interés Fija+plazo e interés variable

Transferencias al Exterior

/LoanSimulator.WebApi/

La API de Giros al Exterior le permite registrar nuevas solicitudes de servicio en forma programática haciendo uso del estándar REST para todas las solicitudes.


Campos

Campo Descripción
beneficiaryBank
country Código del país
verificationCode Código SWIFT del banco destino
bankName Nombre del banco destino
bankAddress Dirección del banco destino
bankCityState Ciudad/Estado del banco destino
bankAgency Agencia del banco destino
intermediaryBank
country País del banco intermediario
verificationCode Código SWIFT del banco destino
bankName Nombre del banco destino
bankAddress Dirección del banco destino
bankCityState Ciudad/Estado del banco destino
bankAccountNumber Número de cuenta del banco intermediario
beneficiaryInformation
typeOfPerson Tipo de persona
fullName Nombre completo del beneficiario
accountNumber Número de cuenta del beneficiario
address Dirección del beneficiario
cityState Ciudad/Estado del beneficiario
country País del beneficiario
phoneNumber Número de teléfono del beneficiario
economicActivity Actividad económica del beneficiario
documentNumber Número de documento del beneficiario
documentIssuedIn Documento expedido en
nationality Nacionalidad del beneficiario
wireTransferDetails
amount Monto total del giro
currency Moneda del giro
commissionType Tipo de comisión
bankAccountNumber Número de cuenta para el débito
includeCertification Incluye certificación
bankCost Costos del banco corresponsal
email Correo electrónico
invoiceBusinessName Nombre o razón social para la factura
invoiceDocumentNumber Número de documento para la factura
invoiceDocumentIsDNI ¿El número de documento es documento de identidad?
statement
reason Motivo de la transferencia
origin Origen de los fondos
destination Destino de la transferencia
destinationOther Otro destino

Parámetros Header

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

Sandbox URI

http://test.bnb.com.bo/LoanSimulator.WebApi/

Ejemplo:

{

{

"beneficiaryBank": {

"country": "DE":

"verificationCode": "DEUTDEFFXXX":

"bankCityState": "FRANKFURT AM MAIN"

},

"beneficiaryInformation": {

"typeOfPerson": 2,

"fullName": "PROVEEDOR ALEMAN S.R.L.":

"accountNumber": "215115001510":

"address": "TAUNUSANLAGE 12":

"cityState": "FRANKFURT AM MAIN":

"country": "DE":

"phoneNumber": "251051005":

"economicActivity": 3

},

"wireTransferDetails": {

"amount": 125000,

"currency": "EUR":

"commissionType": 2,

"bankAccountNumber": "1234567890":

"includeCertification": true,

"bankCost": 1,

"email": "john.doe@empresa.com":

"invoiceBusinessName": "John Doe S.R.L.":

"invoiceDocumentNumber": "101010101010":

"invoiceDocumentIsDNI": false

},

"statement": {

"reason": "Compra de materia prima":

"origin": "Utilidades de la empresa":

"destination": 2

}

}

}


RESPUESTA:

Campos de Respuesta


Campo Descripción
success Si el registro fue correcto
message Mensaje de respuesta correcto o incorrecto

Geolocalización de Puntos de Atención

/LoanSimulator.WebApi/

Obtiene Atms y Agencias en base a una Oficina.


Campos

Campo Descripción
departmentId Identificador del Departamento

Parámetros Header

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

Sandbox URI

http://test.bnb.com.bo/LoanSimulator.WebApi/

Ejemplo:

{

"departmentId": 1,

}


RESPUESTA:

Campos de Respuesta


Campo Descripción
agency
id Identificador de Agencia
agencyTypeId Id de la Agencia
locality Localidad de la Agencia
department Departamento de la Agencia
city Ciudad de la Agencia
type Tipo de Agencia
subType Subtipo de Agencia
description Descripción de la Agencia
address Dirección de la Agencia
attentionSchedule Módulo de Atención
ticketing Etiqueta
numberPhone1 Número de Celular
numberPhone2 Número de Celular
internalPhone1 Número de de Interno
internalPhone2 Número de de Interno
fax Número de Fax
longitude Longitud
latitude Latitud
imageUrl URL de la Imagen
atm
id Identificador de ATM
locality Localidad de ATM
department Departamento de la ATM
city Ciudad de la ATM
type Tipo de ATM
subType Subtipo de ATM
description Descripción de la ATM
address Dirección de la ATM
attentionSchedule Módulo de Atención
ticketing Etiqueta
numberPhone1 Número de Celular
numberPhone2 Número de Celular
internalPhone1 Número de de Interno
internalPhone2 Número de de Interno
fax Número de Fax
longitude Longitud
latitude Latitud
imageUrl URL de la Imagen
atm

Indicadores Económicos

/LoanSimulator.WebApi/

Servicio que devuelve el tipo de cambio en base a una fecha indicada.


Campos

Campo Descripción
currency Tipo de Moneda
dateExchange Fecha

Parámetros Header

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

Sandbox URI

http://test.bnb.com.bo/LoanSimulator.WebApi/

Ejemplo:

{

"currency": 1,

"dateExchange": "2022-01-01"

}


RESPUESTA:

Campos de Respuesta


Campo Descripción
success Resultado de ejecución
currency Tipo de Moneda
date Fecha
purchase Valor de Compra
sale Valor de Venta
accounting Valor Contable
official Valor Oficial