Documentación de la API de Belvo (1.222.0)
Alcanza nuevas audiencias y convierte más usuarios conectándote fácil y seguramente a sus datos financieros, entendiendo su comportamiento y habilitando pagos instantáneos con finanzas abiertas. A través de nuestra API, puedes acceder a:
Belvo es una API de banca abierta para América Latina que permite a las empresas acceder a información bancaria y fiscal de manera segura y ágil.
A través de nuestra API, puedes acceder a:
- Información Bancaria en Brasil
- Información Laboral en Brasil
- Información Laboral en México
- Información Fiscal en México
- Información Fiscal en Chile
También puedes usar nuestra API para realizar pagos en:
- Brasil
- México
Si deseas la documentación de respuesta en formato Excel o CSV, por favor descárgalos desde nuestro Repositorio Público de GitHub: Diccionarios de Datos de Belvo Open Finance.
Nuestros archivos EXCEL y CSV están adicionalmente localizados en español y portugués (Brasil).
Disponible para:
- 🟢 Agregación y Enriquecimiento
- ⚪️ Iniciación de Pagos
Usa nuestro entorno Sandbox para construir tu integración. Ofrecemos datos ficticios que imitan casos de uso del mundo real, lo que significa que puedes probar todos los endpoints, usar el widget e implementar webhooks, tal como lo harías con datos reales.
Todo lo que necesitas para comenzar con el entorno Sandbox es obtener tus claves API. Realmente recomendamos que comiences creando tu integración en este entorno.
Disponible para:
- 🟢 Agregación y Enriquecimiento
- 🟢 Iniciación de Pagos
Después de haber probado tu integración en el entorno Sandbox y estar listo para ir en vivo, necesitarás solicitar acceso a nuestro entorno de Producción. Después de solicitar acceso, nuestro equipo de ventas se pondrá en contacto contigo para programar una reunión solo para asegurarse de que se cumplan tus necesidades, y luego solo necesitarás pasar por un proceso de certificación con uno de nuestros ingenieros para asegurarte de que tu integración esté funcionando de manera óptima. Para prepararte para la reunión de certificación, solo sigue nuestra lista de verificación de integración.
Una vez que tu integración esté certificada, todo lo que necesitarás hacer es:
- Solicitar claves API de Producción (y cambiar tus claves API de Sandbox en el código por estas nuevas).
- Cambiar la URL base a la que haces solicitudes de
sandbox.belvo.com
aapi.belvo.com
. - Si estás usando webhooks, asegúrate de establecer una URL de Producción para tus webhooks.
Usamos el siguiente código de estado HTTP en la respuesta dependiendo del éxito o fracaso:
Código de Estado | Descripción |
---|---|
200 | ✅ Éxito - El contenido está disponible en el cuerpo de la respuesta. |
201 | ✅ Éxito - El contenido fue creado exitosamente en Belvo. |
204 | ✅ Éxito - No hay contenido para devolver. |
400 | ❌ Error de Solicitud Incorrecta - La solicitud devolvió un error, detalle en el contenido. |
401 | ❌ No Autorizado - Las credenciales de Belvo proporcionadas no son válidas. |
404 | ❌ No Encontrado - El recurso al que intentas acceder no se puede encontrar. |
405 | ❌ Método No Permitido - El método HTTP que estás usando no es aceptado para este recurso. |
408 | ❌ Tiempo de Solicitud Agotado - La solicitud se agotó y fue terminada por el servidor. |
428 | ❌ Se Requiere Token MFA - La institución requirió un token MFA para conectar. |
500 | ❌ Error Interno del Servidor - El detalle del error está disponible en el cuerpo de la respuesta. |
Los errores de la API de Belvo se devuelven en formato JSON. Por ejemplo, un error podría verse así:
[
{
"request_id": "a6e1c493d7a29d91aed4338e6fcf077d",
"message": "Este campo es obligatorio.",
"code": "required",
"field": "link"
}
]
Típicamente, una respuesta de error tendrá los siguientes parámetros:
request_id
: un ID único para la solicitud, debes compartirlo con el equipo de soporte de Belvo para investigaciones.message
: descripción del error en lenguaje humano.code
: un código único para el error. Consulta la tabla a continuación para ver cómo manejar cada código de error.field
(opcional): El campo específico en el cuerpo de la solicitud que tiene un problema.
Cuando necesites ayuda con un error específico, incluye el identificador de solicitud (request_id
) en tu mensaje al equipo de soporte de Belvo. Esto acelerará las investigaciones y te permitirá volver a funcionar en poco tiempo.
Para una lista completa de errores y cómo solucionarlos, por favor consulta nuestro artículo dedicado Manejo de Errores.
Implementa un retroceso exponencial automatizado de hasta cinco reintentos. Recomendamos usar un intervalo base de tres segundos con un factor de dos. Por ejemplo, el primer reintento debe ser después de tres segundos, el segundo reintento después de seis segundos (2 * 3), el tercer reintento después de 12 segundos (2 * 6), el cuarto reintento después de 24 segundos (2 * 12), y el quinto reintento después de 48 segundos (2 * 24).
No debes reintentar hacer solicitudes si recibes una respuesta 40x, ya que esto es un error del cliente.
La única excepción es el error de "Demasiadas Sesiones", ya que significa que tu usuario final está accediendo a la cuenta desde otro navegador al mismo tiempo. En este caso, por favor implementa la misma política de reintentos que con los errores 50x.
En nuestro esquema, puedes ver que un campo ha sido marcado como deprecated
. Esto significa que este campo ya no es mantenido por el equipo de Belvo. Aún puedes recibir datos para este campo dependiendo de la institución, sin embargo, no debes confiar en este campo.
En nuestra especificación de API, verás que algunos parámetros de respuesta tendrán una anotación de required. Según la especificación de OpenAPI, cuando un parámetro de respuesta está marcado como required, esto significa que la clave de respuesta debe ser devuelta. Sin embargo, el valor de ese parámetro de respuesta puede ser null
.
📘 Info
En resumen, cualquier parámetro de respuesta marcado como requerido será devuelto por nuestra API, pero el valor puede ser establecido en null.
https://developers.belvo.com/_mock/es/apis/belvoopenapispec/
https://sandbox.belvo.com/
Institutions
Una institución es una entidad de la que Belvo puede acceder a información. Puede ser una:
- institución bancaria, como Nubank Brasil.
- institución fiscal, como el Servicio de Administración Tributaria (SAT) en México.
- institución de empleo, como el Instituto Mexicano del Seguro Social (IMSS) en México o el Instituto Nacional do Seguro Social (INSS) en Brasil.
Links
Un Link es un conjunto de credenciales asociadas al acceso de un usuario final a una institución. Necesitarás registrar un Link antes de acceder a la información de ese usuario final específico, como los detalles de cuenta o transacciones.
Recomendamos usar el Belvo Hosted Widget para gestionar el proceso de conexión.
Solicitud
Modifique la configuración de recuperación de datos para un enlace específico. Actualmente puede:
- Cambiar el modo de acceso de un enlace de
single
arecurrent
o derecurrent
asingle
. - Modificar el período
stale_in
para el enlace. - Modificar los recursos históricos que desea recuperar para el enlace (
fetch_resources
).
Cambiando el access_mode
de un enlace
Cuando cambia un enlace de single
a recurrent
, al día siguiente se activa una actualización histórica de los recursos principales para el enlace (lo que resulta en que reciba webhooks de historical_update
para el enlace). Se le cobrará por estas actualizaciones históricas.
Modificando stale_in
Si solo modifica el período stale_in
para un enlace, esto no activará una actualización histórica. Para activar una actualización histórica para el enlace, debe cambiar el access_mode
.
Modificando fetch_resources
Si solo modifica los fetch_resources
para un enlace, esto no activará una actualización histórica. Para activar una actualización histórica para el enlace, debe cambiar el access_mode
.
El tipo de enlace a crear.
- Usa
single
para realizar solicitudes POST ad hoc de una sola vez para cuentas, propietarios y transacciones. - Usa
recurrent
para que Belvo acceda a la información de manera recurrente, de modo que siempre tengas datos actualizados de cuentas, propietarios, saldos y transacciones.
Para más información, consulta nuestro artículo de Enlaces.
Indica cuánto tiempo se debe almacenar cualquier dato derivado del usuario en la base de datos de Belvo para el enlace (tanto único como recurrente). Por ejemplo, si envías 90d
, Belvo eliminará cualquier dato relacionado con el usuario de su base de datos después de 90 días. Para más información, consulta la sección stale_in de nuestro artículo sobre controles de retención de datos.
📘 Info
Belvo solo eliminará datos para enlaces que no se hayan actualizado en el período que proporciones en
stale_in
. Belvo solo eliminará datos para enlaces que no se hayan actualizado en el período que proporciones enstale_in
.
Por defecto, Belvo almacena los datos del usuario durante 365 días, a menos que el enlace sea eliminado.
Una matriz de recursos para los que te gustaría recibir una actualización histórica.
Para instituciones bancarias, puedes seleccionar los siguientes recursos:
ACCOUNTS
OWNERS
TRANSACTIONS
BILLS
INVESTMENTS
INVESTMENT_TRANSACTIONS
INCOMES
RECURRING_EXPENSES
RISK_INSIGHTS
Para instituciones fiscales, puedes seleccionar los siguientes recursos:
FINANCIAL_STATEMENTS
INVOICES
TAX_COMPLIANCE_STATUS
TAX_RETENTIONS
TAX_RETURNS
TAX_STATUS
Para instituciones de empleo, puedes seleccionar los siguientes recursos:
EMPLOYMENT_RECORDS
(Solo para el IMSS e ISSTE de México)EMPLOYMENT_METRICS
(Solo para el IMSS de México)EMPLOYMENTS
(Solo para el INSS de Brasil)
- Mock server
https://developers.belvo.com/_mock/es/apis/belvoopenapispec/api/links/{id}/
- Sandbox
https://sandbox.belvo.com/api/links/{id}/
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PATCH \
-u <username>:<password> \
https://developers.belvo.com/_mock/es/apis/belvoopenapispec/api/links/e4bb1afb-4a4f-4dd6-8be0-e615d233185b/ \
-H 'Content-Type: application/json' \
-d '{
"access_mode": "single",
"stale_in": "42d",
"fetch_resources": [
"ACCOUNTS",
"TRANSACTIONS"
]
}'
De acuerdo
Identificador único de Belvo para el elemento actual.
El tipo de enlace. Para más información, consulta nuestro artículo de Enlaces. Devolvemos uno de los siguientes valores de enum:
single
recurrent
null
La marca de tiempo ISO-8601 del acceso más reciente y exitoso de Belvo a la institución para el enlace dado.
La marca de tiempo ISO-8601 de cuando se creó el punto de datos en la base de datos de Belvo.
Un identificador adicional para el enlace, proporcionado por usted, para almacenar en la base de datos de Belvo. No puede incluir ninguna Información Personal Identificable (PII). Debe tener al menos tres caracteres de longitud.
Si identificamos que el identificador contiene PII, forzaremos un valor null
. Para más información, consulte nuestro artículo sobre la creación de enlaces.
📘 Información
Solo aplicable para enlaces creados después del 08-02-2022.
Una cadena única de 44 caracteres que se puede usar para identificar a un usuario en una institución determinada.
📚 Consulta nuestro artículo del DevPortal Evitar enlaces duplicados para obtener más información y consejos sobre cómo usarlo.
El estado actual del enlace. Para más información, consulta nuestro artículo de Link en el devportal. Devolvemos uno de los siguientes valores:
valid
invalid
unconfirmed
token_required
El ID único para el usuario que creó este elemento.
La frecuencia de actualización para el enlace recurrente. Para más información, consulta nuestra documentación sobre enlaces recurrentes en nuestro DevPortal. Devolvemos uno de los siguientes valores de enum:
6h
12h
24h
7d
(predeterminado)30d
(una vez al mes)null
(para enlaces únicos)
Indica si se deben almacenar las credenciales (y la duración durante la cual se almacenarán las credenciales).
- Para enlaces recurrentes, esto se establece en
store
por defecto (y no se puede cambiar). - Para enlaces únicos, esto se establece en
365d
por defecto.
Puede ser:
store
para almacenar credenciales (hasta que se elimine el enlace)nostore
para no almacenar credenciales- Cualquier valor entre
1d
y365d
para indicar el número de días que deseas que se almacenen las credenciales.
Para más información, consulta la sección credentials_storage de nuestro artículo sobre controles de retención de datos.
Un conjunto de recursos para los que recibirás una actualización histórica.
Indica cuánto tiempo se debe almacenar cualquier dato derivado del usuario en la base de datos de Belvo para el enlace (tanto único como recurrente). Por ejemplo, si envías 90d
, Belvo eliminará cualquier dato relacionado con el usuario de su base de datos después de 90 días. Para más información, consulta la sección stale_in de nuestro artículo sobre controles de retención de datos.
📘 Info
Belvo solo eliminará datos para enlaces que no se hayan actualizado en el período que proporciones en
stale_in
. Belvo solo eliminará datos para enlaces que no se hayan actualizado en el período que proporciones enstale_in
.
Por defecto, Belvo almacena los datos del usuario durante 365 días, a menos que el enlace sea eliminado.
{ "id": "0d3ffb69-f83b-456e-ad8e-208d0998d71d", "institution": "erebor_mx_retail", "access_mode": "recurrent", "last_accessed_at": "2021-03-09T10:28:40.000Z", "created_at": "2022-02-09T08:45:50.406032Z", "external_id": "56ab5706-6e00-48a4-91c9-ca55968678d9", "institution_user_id": "sooE7XJWEKypZJR603ecaWYk-8Ap0oD8Nr1pBQ4eG9c=", "status": "valid", "created_by": "bcef7f35-67f2-4b19-b009-cb38795faf09", "refresh_rate": "7d", "credentials_storage": "27d", "fetch_resources": [ "ACCOUNTS", "TRANSACTIONS" ], "stale_in": "42d" }
Solicitud
Actualiza las credenciales de un enlace específico. Si el enlace actualizado con éxito es recurrente, automáticamente activamos una actualización del enlace. Si encontramos datos nuevos, recibirás webhooks de actualización histórica.
👍 Usa nuestro Connect Widget
Recomendamos usar nuestro Connect Widget para manejar la actualización de enlaces
invalid
otoken_required
.
La contraseña del usuario final utilizada para iniciar sesión en la institución.
La segunda contraseña del usuario final utilizada para iniciar sesión en la institución.
📘 Info
Esto solo es requerido por algunas instituciones. Para saber qué instituciones requieren una segunda contraseña, consulta nuestra solicitud de List institution y verifica el array
form_fields
en la respuesta.
- Mock server
https://developers.belvo.com/_mock/es/apis/belvoopenapispec/api/links/{id}/
- Sandbox
https://sandbox.belvo.com/api/links/{id}/
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PUT \
-u <username>:<password> \
'https://developers.belvo.com/_mock/es/apis/belvoopenapispec/api/links/{id}/' \
-H 'Content-Type: application/json' \
-d '{
"password": "password",
"password2": "pin",
"token": "1234ab"
}'
De acuerdo
Identificador único de Belvo para el elemento actual.
El tipo de enlace. Para más información, consulta nuestro artículo de Enlaces. Devolvemos uno de los siguientes valores de enum:
single
recurrent
null
La marca de tiempo ISO-8601 del acceso más reciente y exitoso de Belvo a la institución para el enlace dado.
La marca de tiempo ISO-8601 de cuando se creó el punto de datos en la base de datos de Belvo.
Un identificador adicional para el enlace, proporcionado por usted, para almacenar en la base de datos de Belvo. No puede incluir ninguna Información Personal Identificable (PII). Debe tener al menos tres caracteres de longitud.
Si identificamos que el identificador contiene PII, forzaremos un valor null
. Para más información, consulte nuestro artículo sobre la creación de enlaces.
📘 Información
Solo aplicable para enlaces creados después del 08-02-2022.
Una cadena única de 44 caracteres que se puede usar para identificar a un usuario en una institución determinada.
📚 Consulta nuestro artículo del DevPortal Evitar enlaces duplicados para obtener más información y consejos sobre cómo usarlo.
El estado actual del enlace. Para más información, consulta nuestro artículo de Link en el devportal. Devolvemos uno de los siguientes valores:
valid
invalid
unconfirmed
token_required
El ID único para el usuario que creó este elemento.
La frecuencia de actualización para el enlace recurrente. Para más información, consulta nuestra documentación sobre enlaces recurrentes en nuestro DevPortal. Devolvemos uno de los siguientes valores de enum:
6h
12h
24h
7d
(predeterminado)30d
(una vez al mes)null
(para enlaces únicos)
Indica si se deben almacenar las credenciales (y la duración durante la cual se almacenarán las credenciales).
- Para enlaces recurrentes, esto se establece en
store
por defecto (y no se puede cambiar). - Para enlaces únicos, esto se establece en
365d
por defecto.
Puede ser:
store
para almacenar credenciales (hasta que se elimine el enlace)nostore
para no almacenar credenciales- Cualquier valor entre
1d
y365d
para indicar el número de días que deseas que se almacenen las credenciales.
Para más información, consulta la sección credentials_storage de nuestro artículo sobre controles de retención de datos.
Un conjunto de recursos para los que recibirás una actualización histórica.
Indica cuánto tiempo se debe almacenar cualquier dato derivado del usuario en la base de datos de Belvo para el enlace (tanto único como recurrente). Por ejemplo, si envías 90d
, Belvo eliminará cualquier dato relacionado con el usuario de su base de datos después de 90 días. Para más información, consulta la sección stale_in de nuestro artículo sobre controles de retención de datos.
📘 Info
Belvo solo eliminará datos para enlaces que no se hayan actualizado en el período que proporciones en
stale_in
. Belvo solo eliminará datos para enlaces que no se hayan actualizado en el período que proporciones enstale_in
.
Por defecto, Belvo almacena los datos del usuario durante 365 días, a menos que el enlace sea eliminado.
{ "id": "0d3ffb69-f83b-456e-ad8e-208d0998d71d", "institution": "erebor_mx_retail", "access_mode": "recurrent", "last_accessed_at": "2021-03-09T10:28:40.000Z", "created_at": "2022-02-09T08:45:50.406032Z", "external_id": "56ab5706-6e00-48a4-91c9-ca55968678d9", "institution_user_id": "sooE7XJWEKypZJR603ecaWYk-8Ap0oD8Nr1pBQ4eG9c=", "status": "valid", "created_by": "bcef7f35-67f2-4b19-b009-cb38795faf09", "refresh_rate": "7d", "credentials_storage": "27d", "fetch_resources": [ "ACCOUNTS", "TRANSACTIONS" ], "stale_in": "42d" }
Solicitud
Elimina un enlace específico y todos los datos asociados (por ejemplo: transacciones, cuentas, facturas, declaraciones de impuestos, empleos, etc.) de ese enlace de tu cuenta de Belvo. Esta acción es irreversible y no podrás recuperar los datos eliminados.
Recomendamos encarecidamente establecer el encabezado X-Belvo-Request-Mode
a async
para habilitar la eliminación asincrónica. De esta manera, evitarás el límite de tasa de 5 eliminaciones por minuto. Cuando se establece, el endpoint responderá con un estado 202 Accepted
y proporcionará un ID de solicitud para rastrear el proceso de eliminación. Una vez que el proceso esté completo, recibirás una notificación webhook link_deleted
.
Si no configuras este encabezado, el endpoint responderá con un estado 204 No Content
, pero estarás sujeto al límite de tasa de 5 eliminaciones por minuto. Si excedes este límite, recibirás un error 429 Too Many Requests
.
- Mock server
https://developers.belvo.com/_mock/es/apis/belvoopenapispec/api/links/{id}/
- Sandbox
https://sandbox.belvo.com/api/links/{id}/
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X DELETE \
-u <username>:<password> \
'https://developers.belvo.com/_mock/es/apis/belvoopenapispec/api/links/{id}/' \
-H 'X-Belvo-Request-Mode: async'
{ "request_id": "266ea41d-adf5-480b-af50-15b940c2b846" }
Owners
Un owner representa a la persona que tiene acceso a un Link y es el propietario de todas las cuentas dentro del Link.
Puedes usar este endpoint para obtener información útil sobre tu cliente, como:
- su nombre completo
- información de contacto clave
- información sobre el documento de identificación que usaron al abrir la cuenta
Accounts
Una cuenta es la representación de una cuenta bancaria dentro de una institución financiera. Un usuario puede tener una o más cuentas en una institución.
Por ejemplo, un usuario (o enlace) puede tener una cuenta corriente, varias tarjetas de crédito y una cuenta de préstamo.
Consultar la información de la cuenta de un usuario es útil ya que puedes obtener información sobre:
- qué tipos de cuentas tiene el usuario.
- el saldo de cada cuenta (ahorros, cuenta corriente, tarjeta de crédito, préstamo, etc.).
- información detallada sobre sus gastos con tarjeta de crédito.
- la situación actual de cualquier préstamo que puedan tener.
Employments Brazil
Nuestro recurso de empleos para Brasil te permite obtener una vista completa del historial laboral actual de tu usuario y la información salarial.
Para cada usuario, proporcionamos:
- historial laboral (incluyendo ocupaciones y datos del empleador)
- información salarial histórica y actual (por empleador)
En este momento, el recurso de empleos está disponible para:
- 🇧🇷 Brasil (INSS)
Employment Records Mexico
Nuestro recurso de registros de empleo para México te permite obtener una visión completa de las contribuciones actuales al seguro social y el historial laboral de tu usuario.
Con el recurso de registros de empleo de Belvo para México, puedes acceder a información sobre las contribuciones actuales al seguro social y el historial laboral de tu usuario. Para cada usuario, proporcionamos:
- datos personales
- historial laboral
- salario base diario histórico y actual
- ¡y más!
En este momento, el recurso de registros de empleo está disponible para:
- 🇲🇽 México (IMSS)
- 🇲🇽 México (ISSSTE)
Current Employments Mexico
El recurso de Empleos Actuales proporciona acceso en tiempo real al estado de empleo actual de individuos en México. Este recurso ofrece información detallada sobre si una persona está actualmente empleada o desempleada, junto con sus registros de empleo activos.
Incomes
Utiliza el endpoint de Incomes para obtener información sobre las fuentes de ingresos de una cuenta en los últimos 365 días. Este endpoint es particularmente útil cuando deseas verificar los ingresos de una persona.
📘 Información
El recurso de incomes está solo disponible para cuentas de Checking y Savings asociadas con enlaces bancarios.
Recurring Expenses
La API de Gastos Recurrentes de Belvo te permite identificar los pagos regulares de un usuario para servicios de suscripción, como Netflix o membresías de gimnasio, así como pagos de servicios públicos, como facturas de electricidad o teléfono. Devolvemos información de hasta 365 días.
📘 Info
El recurso de gastos recurrentes está solo disponible para cuentas de Cheques, Ahorros y Tarjetas de Crédito asociadas con enlaces bancarios.
Bank Accounts (Brazil)
Para recibir pagos entrantes en la cuenta bancaria de su organización, debe registrar las cuentas bancarias (individuales y empresariales) utilizando la Payments API de Belvo.
- Las cuentas bancarias individuales deben ser creadas para cada pagador (su cliente).
- Las cuentas bancarias empresariales deben ser creadas para el beneficiario del pago (su organización).
Payment Intents (Brazil)
Un payment intent es un punto único de acceso para crear pagos utilizando cualquier método de pago ofrecido por Belvo.
Un payment intent captura toda la información del pago (como el monto a cobrar, la descripción del pago, el proveedor, etc.) y guía a tus clientes a través del flujo de pago.
Nota: Para las instituciones que requieren el
username_type
en el arrayform_fields
, debes enviar este valor en tu solicitud PATCH.