Los errores son molestos - lo sabemos. Por eso tenemos artículos dedicados para cada error en nuestro DevPortal para ayudarte a resolverlos. Echa un vistazo al error a continuación, o simplemente busca el código de error que estás encontrando para ir directamente a las causas y soluciones.
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. |
403 | ❌ Prohibido - No tienes los permisos requeridos para realizar esta acción. |
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. |
409 | ❌ Conflicto - La solicitud no pudo completarse debido a un conflicto con el estado actual del recurso. |
428 | ❌ Token MFA Requerido - Se requirió un token MFA por la institución 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 requerido.",
"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.
Aquí está nuestra recomendación en términos de reintento en errores:
Implemente un retroceso exponencial automatizado de hasta cinco reintentos. Recomendamos que utilice 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 es después de 6 segundos (2*3), el tercer reintento es después de 12 segundos (2*6), el cuarto reintento es después de 24 segundos (2*12), y el quinto reintento es después de 48 segundos (2*24).
No deberías intentar nuevamente hacer solicitudes si recibes una respuesta 40x ya que esto es un error del cliente.
La única excepción es el error "Too Many Sessions", ya que significa que tu usuario está accediendo a la cuenta desde otro navegador al mismo tiempo. En este caso, por favor implementa la misma política de reintento que con los errores 50x.
Al implementar tu integración con Belvo, asegúrate de considerar el almacenamiento del request_id
cuando recibas un error. De esta manera, cuando proporciones a nuestros ingenieros el ID, podrán solucionar el problema rápidamente y volver a poner todo en funcionamiento.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Institution | No* |
Enrichment | Institution | No* |
Payment Initiation | N/A | N/A |
* Este error normalmente no se muestra en el widget. Sin embargo, hay excepciones donde sí se refleja en el widget para algunas instituciones como BBVA en México. Contáctanos en support@belvo.com si tienes alguna pregunta.
[
{
"code": "activation_failed",
"message": "The credentials provided were not accepted by the institution.",
"request_id": "3e7b283c6efa449c9c028a16b5c249gg"
}
]
Causa
Este error ocurre cuando Belvo no pudo activar automáticamente el acceso a la banca por internet para el usuario debido a información faltante (por ejemplo, el 🇲🇽 CVV o 🇲🇽 NIP faltaban o se proporcionaron incorrectamente).
Solución
Pide al usuario que primero active su acceso a la banca por internet (ya sea contactando directamente al banco o intentando iniciar sesión en su cuenta de banca por internet) y luego pídeles que conecten su cuenta nuevamente.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregación | N/A | N/A |
Enriquecimiento | N/A | N/A |
Iniciación de Pagos | Solicitud | No |
[
{
"field": "details",
"request_id": "a0c3b0e58e58409d9b1d49de9be35a3d",
"pix_key": {
"value": {
"message": "This `pix_key__value` already exists. It is linked to BankAccount: d5c8cb5f-7845-4a23-a1fa-76c7ae7e5e36",
"code": "already_exists"
}
}
}
]
Causa
Estás intentando registrar una cuenta bancaria proporcionando un valor que ya está vinculado a una cuenta bancaria registrada en Belvo. Esto podría incluir:
- El identificador de la clave PIX de la cuenta bancaria
- El número de cuenta bancaria
{
"institution": "f512d996-583a-4a91-8b5b-eba2e103b068",
"holder": {
"type": "BUSINESS",
"information": {
"identifier_type": "CNPJ",
"name": "Caetano Veloso Entertainment Universe",
"identifier": "231.002.990-00"
}
},
"details": {
"country": "BRA",
"account_type": "CHECKINGS",
"agency": "0444",
"number": "45722-01" // Número de cuenta ya registrado en Belvo.
}
}
Solución
Haz una solicitud para obtener todas las cuentas bancarias para recibir una lista de todas las cuentas bancarias que has registrado, filtrando los resultados por los últimos cuatro dígitos de la cuenta bancaria para obtener los detalles.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Request | No |
Enrichment | Request | No |
Payment Initiation | Request | No |
[
{
"field": "institution",
"request_id": "b9abda13c9afbbc64a265c6d4f937d06",
"message": "This field may not be blank.",
"code": "null"
}
]
Causa
Enviaste una solicitud con una cadena vacía para un campo requerido. Por ejemplo:
{
"institution": "", // Este campo es requerido y no puede ser una cadena vacía.
"username": "bnk100",
"password": "full",
}
Solución
- Revisa el mensaje de error para ver qué campo necesitas proporcionar. Si no estás seguro de qué información proporcionar o el formato, simplemente revisa nuestra documentación de referencia de la API.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Payment Initiation | Request | No |
[
{
"request_id": "b9abda13c9afbbc64a265c6d4f937d06",
"message": "Payment Intent cannot be canceled because it is not SCHEDULED",
"code": "cancellation_error"
}
]
Causa
Este error puede ocurrir cuando:
- Intentaste cancelar un payment intent que no estaba programado.
- Enviaste tu solicitud de cancelación después de las 23:59:00 (GMT-3) del día anterior a la fecha de liquidación programada.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Request | No |
Enrichment | Request | No |
[
{
"field": "institution",
"request_id": "744da6621cb09b3cbb8271d89fe09060",
"message": "Object with name=narnia does not exist.",
"code": "does_not_exist"
}
]
Causa
Enviaste una solicitud donde proporcionaste un valor que no existe en la base de datos de Belvo. Por ejemplo:
{
"institution": "narnia", // Esta institución no existe en la base de datos de Belvo.
"username": "bnk100",
"password": "full"
}
Solución
Revisa el mensaje de error para ver en qué campo proporcionaste un valor incorrecto. Luego:
- Asegúrate de que no hayas cometido errores tipográficos.
- Verifica si el valor que estás proporcionando debería estar presente en nuestra base de datos (por ejemplo, si haces una solicitud para un enlace que aún no fue registrado, recibirás un error).
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Request | Sí |
Enrichment | Request | No |
[
{
"request_id": "744da6621cb09b3cbb8271d89fe09060",
"message": "Link already exists",
"code": "duplicated",
"institution_user_id": "4jlgn6vL7yifxMlhwFwTjbbzYxYoEEkJqK_CJhhZetI="
}
]
Causa
Este error puede ocurrir cuando:
- Intentaste crear un link que ya ha sido asociado con tu cuenta.
- Tu usuario intentó crear un link con una cuenta que ya han conectado.

Solución
Puedes:
- Consultar tu base de datos para encontrar el
institution_user_id
y verificar si el link asociadoid
sigue siendo válido usando la solicitud Obtener los detalles de un link. Si elstatus
no esvalid
, entonces solicita a tu usuario que actualice sus credenciales usando el Belvo widget en modo de actualización. - Consultar tu base de datos para encontrar el
institution_user_id
y usar el link asociadoid
para eliminar el link de la base de datos de Belvo usando la solicitud Eliminar un link. Una vez que hayas eliminado el link, puedes pedir a tu usuario que conecte su cuenta nuevamente.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Request | No |
Enrichment | Request | No |
[
{
"field": "institution",
"request_id": "b9abda13c9afbbc64a265c6d4f937d06",
"message": "This field may not be null.",
"code": "null"
}
]
Causa
Hiciste una solicitud sin proporcionar datos en un campo requerido. Por ejemplo:
{
"institution": , // Este campo es requerido.
"username": "bnk100",
"password": "full",
}
Solución
Revisa el mensaje de error para ver qué campo necesitas proporcionar. Si no estás seguro de qué información proporcionar o el formato, simplemente revisa nuestra documentación de referencia de la API.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Request | No |
Enrichment | Request | No |
Payment Initiation | Request | No |
[
{
"field": "username",
"request_id": "b9abda13c9afbbc64a265c6d4f937d06",
"message": "Este campo es requerido.",
"code": "required"
}
]
Causa
Enviaste una solicitud sin un campo requerido. Por ejemplo:
{
"institution": "erebor_mx_retails",
"password": "full"
// Cuando estás registrando un nuevo enlace, debes proporcionar un username.
}
Solución
- Revisa el mensaje de error para ver qué campo necesitas proporcionar. Si no estás seguro de qué información proporcionar o el formato, simplemente revisa nuestra documentación de referencia de la API.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Institution | Sí |
Enrichment | Institution | Sí |
Payment Initiation | N/A | N/A |
[
{
"code": "institution_down",
"message": "The financial institution is down, try again later",
"request_id": "3e7b283c6efa449c9c028a16b5c249fd"
}
]
Causa
Este error ocurre cuando el sitio web de la institución a la que estás intentando acceder está caído debido a mantenimiento u otros problemas, lo que significa que Belvo no puede crear nuevos enlaces o recuperar nuevos datos.
Solución
Puedes intentar acceder a la institución más tarde. Asegúrate de suscribirte a nuestra Página de Estado de Instituciones para saber tan pronto como una institución no esté disponible.
Puedes eliminar una institución que actualmente no está disponible utilizando el parámetro institutions
en la configuración de inicio y omitiendo la institución de la lista.
Mensaje de error del widget
Idioma | Título del error | Descripción del error |
---|---|---|
🇬🇧 Inglés | Something went wrong | The institution you tried to access is temporarily unavailable. Please come back in a bit and we will be able to process your request |
🇧🇷 Portugués | Ocorreu um erro | Esta instituição está temporariamente inacessível. Tente novamente mais tarde e poderemos processar sua solicitação |
🇪🇸 Español | Ha habido un error | Esta institución está temporalmente inaccesible. Por favor, inténtalo de nuevo más tarde y podremos procesar tu petición |
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Institution | Sí |
Enrichment | Institution | Sí |
Payment Initiation | N/A | N/A |
[
{
"code": "institution_inactive",
"message": "The institution has been temporarily deactivated",
"request_id": "3e7b283c6efa449c9c028a16b5c249fd"
}
]
Causa
Este error ocurre cuando nosotros (Belvo) hemos desactivado la institución en nuestra API.
Solución
Puedes intentar nuevamente más tarde, una vez que Belvo haya reactivado la institución.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Institution | Sí |
Enrichment | Institution | Sí |
Payment Initiation | N/A | N/A |
[
{
"code": "institution_unavailable",
"message": "The financial institution is unavailable",
"request_id": "3e7b283c6efa449c9c028a16b5c249fd"
}
]
Causa
Este error ocurre cuando el sitio web de la institución a la que estás intentando acceder está inactivo debido a mantenimiento u otros problemas, lo que significa que Belvo no puede crear nuevos enlaces o recuperar nuevos datos.
Solución
Puedes intentar acceder a la institución más tarde. Asegúrate de suscribirte a nuestra Página de Estado de Instituciones para saber tan pronto como una institución no esté disponible.
Puedes eliminar una institución que actualmente no está disponible utilizando el parámetro institutions
en la configuración de inicio y omitiendo la institución de la lista.
Mensaje de error del widget
Idioma | Título del error | Descripción del error |
---|---|---|
🇬🇧 Inglés | Something went wrong | The institution you tried to access is temporarily unavailable. Please come back in a bit and we will be able to process your request. |
🇧🇷 Portugués | Ocorreu um erro | O serviço está temporariamente inacessível. Tente novamente mais tarde e poderemos processar sua solicitação |
🇪🇸 Español | Ha habido un error | Esta institución está temporalmente inaccesible. Por favor, inténtalo de nuevo más tarde y podremos procesar tu petición |
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Request | No |
Enrichment | Request | No |
Payment Initiation | Request | No |
[
{
"field": "date_to",
"request_id": "a7ad9a4ad8b13f8f800f8f5b69c7856f",
"message": "La fecha tiene un formato incorrecto. Usa uno de estos formatos en su lugar: YYYY-MM-DD.",
"code": "invalid"
}
]
Causa
Enviaste una solicitud donde proporcionaste un valor en un formato inválido. Esto podría incluir:
- El formato de las credenciales de inicio de sesión es incorrecto.
- El formato de la fecha es incorrecto.
- El UUID no es válido.
- El terminal_id no es válido.
- El form_id no es válido.
- Los recursos que has incluido en
fetch_resources
no son compatibles con la institución.
Por ejemplo:
{
"link": "a6c007b9-e99c-4073-834b-8c7705132de7",
"date_from": "2020-01-01",
"date_to": "2020-02" // Aquí, el formato de la fecha debe ser YYYY-MM-DD
}
Solución
Revisa el mensaje de error para ver qué campo es inválido y por qué. Luego, si necesitas más información, consulta nuestra documentación de la API para saber cuál es el formato válido para el campo.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Request | No |
Enrichment | Request | No |
[
{
"field": "access_mode",
"request_id": "ce49b6af6710bb0c7a2a456c223dde21",
"message": "\"Dominik\" is not a valid choice.",
"code": "invalid_choice"
}
]
Causa
Hiciste una solicitud en la que en uno de los campos proporcionaste un valor que no era válido (por ejemplo, puede que solo acepte ciertas cadenas, similar a un enum). Por ejemplo:
{
"institution": "erebor_mx_retail",
"username": "bnk100",
"password": "full",
"access_mode": "Australia" // Este no es un valor válido, ya que en la documentación se indica que es un enum: single o recurrent
}
Solución
- Revisa el mensaje de error para ver en qué campo proporcionaste un valor incorrecto. Luego consulta nuestra documentación para ver qué valor deberías proporcionar para este campo.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Request | No |
Enrichment | Request | No |
[
{
"request_id": "ce49b6af6710bb0c7a2a456c223dde21",
"message": "Recurrent links must store the credentials",
"code": "invalid_credentials_storage"
}
]
Causa
Hiciste una solicitud donde para un enlace recurrente configuraste el parámetro credentials_storage
a nostore
o a un rango de fechas entre 1d
a 365d
.
{
"institution": "tatooine_mx_fiscal",
"username": "PFIS010101000",
"password": "individual",
"access_mode": "recurrent",
"credentials_storage": "nostore" // Para enlaces recurrentes, esto debe configurarse para almacenar
}
Solución
- Si deseas crear un enlace recurrente, cambia el valor de
credentials_storage
astore
. - Si deseas crear un enlace único y no almacenar credenciales, cambia el
access_mode
asingle
.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Request | No |
Enrichment | Request | No |
[
{
"request_id": "ce49b6af6710bb0c7a2a456c223dde21",
"message": "Single links without stored credentials must fetch resources",
"code": "invalid_fetch_resources"
}
]
Causa
Intentaste crear un enlace donde configuraste el parámetro credentials_storage
a nostore
y no pasaste ningún recurso en el parámetro fetch_resources
. Para enlaces donde no almacenamos credenciales, debes pasar al menos un recurso en fetch_resources
.
{
"institution": "tatooine_mx_fiscal",
"username": "PFIS010101000",
"password": "individual",
"access_mode": "recurrent",
"credentials_storage": "nostore",
"fetch_resources": []
}
Solución
Enumera los recursos que deseas recuperar en el parámetro fetch_resources
. Por ejemplo: "fetch_resources": ["ACCOUNTS", "OWNERS", "TRANSACTIONS"]
.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregación | Link | No |
Enriquecimiento | Link | No |
Iniciación de Pago | N/A | N/A |
[
{
"code": "invalid_link",
"message": "The link has been invalidated. You may need to update link credentials",
"request_id": "9b7b283c6efa449c9c028a16b5c249fd"
}
]
Causa
Este error ocurre cuando intentas acceder a una cuenta pero las credenciales del usuario ya no son válidas, lo que provoca un error por parte de la institución.
El estado de un Link cambia de valid
a invalid
después de seis solicitudes POST fallidas
Solución
Pide a tu usuario que proporcione sus credenciales actualizadas. Para facilitar las cosas, te recomendamos encarecidamente que uses nuestro Widget en Modo de Actualización.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Belvo | No |
Enrichment | Belvo | No |
Payment Initiation | N/A | N/A |
[
{
"message": "The number of days between date_from and date_to must be at least 90 days",
"code": "invalid_period",
"request_id": "a66a4fdae4ab8cfc1ed9ee9246aa6890"
}
]
Causa
Este error ocurre cuando solicitas ingresos para un enlace dentro de un rango de fechas dado, sin embargo, el período entre date_from
y date_to
es menor a 90 días.
Solución
Asegúrate de que el período entre date_from
y date_to
sea igual o mayor a 90 días.
Actualmente estamos refinando nuestros mensajes de login_error
para proporcionar una mayor granularidad y mejorar la resolución de problemas.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Link | Sí |
Enrichment | Link | Sí |
[
{
"code": "login_error",
"message": "Invalid credentials provided to login to the institution.",
"request_id": "3e7b283c6efa449c9c028a16b5c249fd"
}
]
Causa
Este error puede ocurrir cuando:
- las credenciales que tu usuario proporciona son incorrectas o faltan.
- el token MFA que tu usuario proporciona no es compatible con Belvo.
- hay un problema con la institución que impide los inicios de sesión.
- la cuenta del usuario está bloqueada o el usuario no tiene permiso para acceder a su banca por internet.
A continuación se muestra una lista de posibles message
s de error que puedes recibir:
- Invalid credentials provided to login to the institution.
- A MFA token is required by the institution, but it’s not supported yet by Belvo.
- Impossible to login, something unexpected happened while logging into the institution. Try again later.
- Login not attempted due to invalid credentials.
- Missing credentials to login to the institution.
- The user account access was forbidden by the institution.
- The user account is locked, user needs to contact the institution to unlock it.
Solución
- Pide a tu usuario que proporcione sus credenciales correctas o el token MFA. Usa nuestro widget para hacerlo aún más fácil (nosotros hacemos todo el trabajo pesado por ti).
- Pide a tu usuario que confirme con su banco que su cuenta está activa y que no está bloqueada.
- Si hay un problema con la institución, intenta iniciar sesión más tarde.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | N/A | N/A |
Enrichment | N/A | N/A |
Payment Initiation | Request | No |
[
{
"field": "amount",
"request_id": "a0c3b0e58e58409d9b1d49de9be35a3d",
"message": "Ensure that there are no more than 12 digits in total.",
"code": "max_digits"
}
]
Causa
Enviaste una solicitud con el formato de cantidad incorrecto.
Solución
Revisa el mensaje de error para ver por qué el formato de la cantidad es inválido. Si no estás seguro de qué información proporcionar o el formato, simplemente consulta nuestra documentación de referencia de la API para saber cuál es el formato válido para el campo.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregación | N/A | N/A |
Enriquecimiento | N/A | N/A |
Iniciación de Pago | Solicitud | No |
[
{
"field": "amount",
"request_id": "a0c3b0e58e58409d9b1d49de9be35a3d",
"message": "Asegúrate de que no haya más de 2 decimales.",
"code": "max_decimal_places"
}
]
Causa
Enviaste una solicitud con el formato de cantidad incorrecto (demasiados decimales).
Solución
Revisa el mensaje de error para ver por qué el formato de la cantidad es inválido. Si no estás seguro de qué información proporcionar o el formato, simplemente revisa nuestra documentación de referencia de la API para saber cuál es el formato válido para el campo.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | N/A | N/A |
Enrichment | N/A | N/A |
Payment Initiation | Request | No |
[
{
"field": "amount",
"request_id": "a0c3b0e58e58409d9b1d49de9be35a3d",
"message": "Ensure this value is greater than or equal to 0.01.",
"code": "min_value"
}
]
Causa
Enviaste una solicitud con el formato de cantidad incorrecto (la cantidad es menor que el valor mínimo permitido).
Solución
Revisa el mensaje de error para ver por qué el formato de la cantidad es inválido. Si no estás seguro de qué información proporcionar o el formato, simplemente revisa nuestra documentación de referencia de la API para saber cuál es el formato válido para el campo.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Solicitud | No |
Enrichment | Solicitud | No |
Payment Initiation | Solicitud | No |
[
{
"message": "Expected a list but got type \"str\".",
"code": "not_a_list",
"request_id": "d5af76cc66e0231e2be7f7be5c41170a"
}
]
Causa
Enviaste una solicitud donde en lugar de enviar un array de datos, enviaste solo una lista. Por ejemplo:
{
"fetch_resources": "ACCOUNTS,OWNERS" // Aquí, fetch_resources tiene que ser un array de valores
}
Solución
Revisa tu solicitud JSON y consulta nuestra documentación para ver qué campo debería ser un array.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Request | No |
Enrichment | Request | No |
Payment Initiation | Request | No |
[
{
"message": "JSON parse error - Expecting property name enclosed in double quotes: line 3 column 1 (char 54)",
"code": "parse_error",
"request_id": "d5af76cc66e0231e2be7f7be5c41170a"
}
]
Causa
Enviaste una solicitud con JSON inválido. Por ejemplo:
{
"link": "a6c007b9-e99c-4073-834b-8c7705132de7", // Aquí, el JSON no es válido porque tiene una coma al final
}
Solución
Revisa el payload JSON (quizás solo te falta una coma o una comilla) e inténtalo de nuevo.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Request | Sí |
Enrichment | Request | Sí |
[
{
"code": "session_expired",
"message": "The session you are trying to resume has expired, please start again from register/retrieve endpoint",
"request_id": "6e7b283c6efa449c9c028a16b5c249fa"
}
]
Causa
Este error ocurre cuando intentas reanudar una sesión de solicitud que ya ha expirado. Esto generalmente se debe a que el usuario tardó demasiado en proporcionar su token de autenticación.
Para las solicitudes que requieren un token, hay un período de tiempo en el que el usuario puede proporcionar su token. El período varía de una institución a otra. Puedes verificar cuánto tiempo tiene el usuario para ingresar su token utilizando el parámetro
expiry
en la respuesta 428token_required
.
Solución
Desafortunadamente, necesitarás comenzar todo el proceso de inicio de sesión con tu usuario nuevamente.
Mensaje de error del widget
Idioma | Título del error | Descripción del error |
---|---|---|
🇬🇧 Inglés | Please try again! | Please try again to link your account as the session with this institution just expired |
🇧🇷 Portugués | Por favor, faça login novamente | A sessão com essa instituição expirou. Por favor, digite suas credenciais novamente |
🇪🇸 Español | Por favor, ingresa de nuevo | Por favor, ingresa de nuevo tus credenciales ya que la sesión con esta institución ha expirado |
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Request | Sí |
[
{
"code": "session_expired_ob",
"request_id": "6e7b283c6efa449c9c028a16b5c249fa"
}
]
Causa
Puedes recibir este error por las siguientes razones:
- El
access_token
que generaste no se utilizó dentro del período de expiración de 10 minutos. - En lugar de generar un nuevo
access_token
para el widget para el usuario dado, utilizaste unaccess_token
generado para otro usuario que ya creó un enlace usando el widget. - Tu usuario no hizo clic en el botón Ir para a instituição (Ir a la institución) en el widget dentro de los 60 segundos de aparecer la pantalla.
Solución
Desafortunadamente, necesitarás iniciar el proceso del widget con tu usuario nuevamente. Por favor asegúrate de que:
- Asegúrate de usar el
access_token
para generar el widget tan pronto como se cree. Si pasan 10 minutos o más, necesitarás crear un nuevoaccess_token
. - Asegúrate de crear siempre un nuevo
access_token
para cada usuario. - Nuestro equipo de UX está mejorando el flujo para incitar al usuario a continuar el flujo dentro de los 60 segundos asignados.
Mensaje de error del widget
Idioma | Título del error | Descripción del error |
---|---|---|
🇬🇧 Inglés | Session expired | Your connection session expired, please refresh the page to try again to link your account |
🇧🇷 Portugués | Sessão expirada | Sua sessão expirou, atualize a página e tente vincular sua conta novamente. |
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Link | Sí |
Enrichment | Link | Sí |
Payment Initiation | Link | Sí |
[
{
"code": "too_many_sessions",
"message": "Impossible to login, a session is already opened with the institution for these credentials",
"request_id": "3e7b283c6efa449c9c028a16b5c249fd"
}
]
Causa
Este error ocurre cuando:
- un usuario está intentando iniciar sesión en su institución a través de Belvo mientras ya está conectado a su institución en un navegador web o aplicación móvil.
- realizas una solicitud de información mientras Belvo está extrayendo datos de la institución para ese usuario.
Solución
Intenta:
- Informar a tu usuario que cierre sus sesiones web y de aplicaciones para la institución dada.
- Esperar 120 segundos y volver a intentar tu solicitud, asegurándote de que Belvo haya terminado el proceso de extracción de datos.
Mensaje de error del widget
Idioma | Título del error | Descripción del error |
---|---|---|
🇬🇧 Inglés | A session is already open | It seems you are logged in to your account with another device. This institution only allows one logged in session at a time. Log out and try linking your account again. |
🇧🇷 Portugués | Muitas sessões abertas | Parece que já existe uma sessão aberta nesta instituição com seu usuário. Esta instituição permite apenas uma sessão aberta por vez |
🇪🇸 Español | Demasiadas sesiones abiertas | Parece que ya hay una sesión abierta en esta institución con tu usuario. Esta institución solo permite una sesión abierta a la vez. |
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Request | No |
Enrichment | N/A | No |
Payment Initiation | N/A | N/A |
[
{
"message": "The institution did not return any data for the request.",
"code": "unavailable_data",
"request_id": "c76f4d0320b923eb3068f5e2c0fab18f"
}
]
Causa
Este error ocurre cuando tu solicitud fue correctamente formada y enviada, sin embargo, la institución no devolvió ningún dato para tu solicitud.
Solución
Recomendamos primero verificar nuestra Página de Estado de Instituciones para ver si hay algún incidente con la institución que esté prohibiendo la extracción de datos. Si no hay incidentes activos para la institución, puedes reintentar la solicitud. Si sigues recibiendo este error, contacta a nuestro equipo de soporte, asegurándote de incluir el request_id
que recibes en el mensaje.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Link | No |
Enrichment | Link | No |
Payment Initiation | N/A | N/A |
[
{
"message": "The link creation has not been completed yet",
"code": "unconfirmed_link",
"request_id": "c76f4d0320b923eb3068f5e2c0fab18f"
}
]
Causa
Este error ocurre cuando intentas acceder a un link que fue pausado previamente (y como tal no está activo ahora).
El estado de un Link se establece en unconfirmed_link
cuando tu usuario no ha completado el proceso de creación del Link exitosamente (por ejemplo, podrían no proporcionar un token MFA válido)
Solución
Pide a tu usuario que proporcione un token MFA a través de nuestro widget en modo de actualización para completar un primer inicio de sesión. Después de que el usuario complete el proceso exitosamente, podrás recuperar datos.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Belvo | No |
Enrichment | Belvo | No |
Payment Initiation | N/A | N/A |
[
{
"message": "El recurso al que intentas acceder no es soportado por esta institución",
"code": "unsupported_operation",
"request_id": "a66a4fdae4ab8cfc1ed9ee9246aa6890"
}
]
Causa
Este error ocurre cuando:
- Intentas acceder a alguna operación de datos que Belvo no soporta para una institución. Por ejemplo, intentar acceder al recurso Transactions para instituciones fiscales.
- Realizas una solicitud que requiere que se complete alguna lógica de negocio. Por ejemplo, al usar el parámetro
fetch_resources
en la creación de un enlace individual, también debes establecerfetch_historical
a true
Solución
Asegúrate de que:
- La operación de recurso (por ejemplo, solicitar Transactions) es soportada para esa institución.
- Tu solicitud cumple con toda la lógica de negocio requerida.
Mensaje de error del widget
Idioma | Título del error | Descripción del error |
---|---|---|
🇬🇧 Inglés | Something went wrong | There was an error with your request. Please try again, and if the problem persists, we will try to fix it as soon as possible |
🇧🇷 Portugués | Ocorreu um erro | Ocorreu um erro com a sua solicitação. Tente novamente e, se o problema persistir, o corrigiremos o mais breve possível |
🇪🇸 Español | Ha habido un error | Hemos tenido un error con tu petición. Por favor, inténtalo de nuevo y si el problema persiste, lo arreglaremos lo más pronto posible |
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Request | No |
Enrichment | Request | No |
Payment Initiation | N/A | N/A |
[
{
"message": "Bad request",
"code": "validation_error",
"request_id": "e912d014d7976c3172bb8e65c7a22194"
}
]
Causa
Enviaste una solicitud donde:
- Las credenciales proporcionadas no coincidieron con los campos esperados, lo que llevó a un error de validación de campos por parte de la institución.
Por ejemplo:
{
"link": "a6c007b9-e99c-4073-834b-8c7705132de7",
"date_from": "2020-01-01",
"date_to": "2021-03-30" // Entre date_from y date_to hay más de 365 días
}
Solución
Obtén los detalles de la institución usando nuestro endpoint de Instituciones y revisa el objeto form_fields
para obtener información sobre qué campos deben proporcionarse y su formato.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Belvo | No |
Enrichment | Belvo | No |
Payment Initiation | N/A | N/A |
[
{
"message": "Invalid Secret Keys",
"code": "authentication_failed",
"request_id": "5c09677ecf78e1d4501547252a0c4e77"
}
]
Causa
Este error ocurre cuando intentas hacer una llamada a la API usando credenciales incorrectas de la API de Belvo (ya sea tu clave secreta o contraseña secreta, o ambas, son incorrectas).
Solución
Verifica las credenciales que estás usando comparándolas con las de tu panel de control. Quizás estás usando tus credenciales de sandbox para acceder a datos de producción (o viceversa). Nota: Si no estás seguro sobre tu secretPassword, revisa el correo de confirmación que recibiste de Belvo.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Belvo | No |
Enrichment | N/A | N/A |
Payment Initiation | N/A | N/A |
[
{
"message": "Information cannot be retrieved as the consent has no associated accounts",
"code": "consent_without_accounts",
"request_id": "5c09677ecf78e1d4501547252a0c4e77"
}
]
Causa
Este error ocurre cuando el usuario ha eliminado cuentas asociadas con el consentimiento que proporcionaron. Por ejemplo, cuando el usuario generó su consentimiento por primera vez, tenía una cuenta corriente y una cuenta de préstamo en la institución, pero ha cerrado esas cuentas desde entonces.
Solución
Comuníquese con su usuario para confirmar si ha eliminado su cuenta y pídale que genere un nuevo consentimiento en su institución actual.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Belvo | No |
Enrichment | Belvo | No |
Payment Initiation | Belvo | No |
[
{
"message": "You don’t have access to production API.",
"code": "access_to_production_denied",
"request_id": "d5af76cc66e0231e2be7f7be5c41170a"
}
]
Causa
Este error ocurre cuando intentas acceder al entorno de producción de Belvo sin los permisos correctos.
Solución
Contacta a nuestro equipo de ventas para solicitar acceso al entorno de producción.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Belvo | No |
Enrichment | Belvo | No |
Payment Initiation | N/A | N/A |
[
{
"message": "You don't have access to this resource.",
"code": "access_to_resource_denied",
"request_id": "d5af76cc66e0231e2be7f7be5c41170a"
}
]
Causa
Este error ocurre cuando intentas acceder a un recurso de Belvo sin los permisos correctos.
Solución
Contacta a nuestro equipo de ventas para solicitar acceso a este recurso.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Belvo | No |
Enrichment | Belvo | No |
<html><head><title>403 Prohibido</title></head><body>
<center><h1>403 Prohibido</h1></center>
<hr><center>openresty/1.15.8.2</center>
</body></html>
Causa
Este error ocurre cuando realizas un gran volumen de solicitudes (más de 80 solicitudes en 30 segundos) en rápida sucesión desde la misma dirección IP.
Solución
Si esperas tener consistentemente grandes volúmenes de llamadas desde la misma dirección IP, por favor contacta a nuestro equipo de Éxito del Cliente.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Belvo | No |
Enrichment | Belvo | No |
Payment Initiation | Belvo | No |
Causa
Este error ocurre cuando nosotros (Belvo) tenemos prohibido acceder a un recurso determinado en la institución, o has excedido tu límite de solicitudes.
Solución
Si pudiste acceder a este recurso anteriormente, intenta nuevamente más tarde. Nosotros (Belvo) monitoreamos activamente estos errores y asignamos ingenieros para corregir la situación lo antes posible.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Belvo | No |
Enrichment | Belvo | No |
Payment Initiation | N/A | N/A |
[
{
"message": "The quota limit has been reached.",
"code": "quota_limit_reached",
"request_id": "1d1c4f427dac394a96c3fa49568f2a38"
}
]
El quota_limit_reached
solo es aplicable para el entorno de desarrollo
Causa
Este error ocurre cuando has excedido el límite de Link en el entorno de desarrollo.
Solución
Para seguir usando el entorno de desarrollo, necesitas eliminar suficientes Links para estar por debajo del límite del entorno.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Request | No |
Enrichment | Request | No |
Payment Initiation | Request | No |
[
{
"message": "Not found.",
"code": "not_found",
"request_id": "1d1c4f427dac394a96c3fa49568f2a38"
}
]
Causa
Hiciste una solicitud donde:
- proporcionaste la URL incorrecta.
- usaste un ID (para un link, cuenta, transacción, etc.) que no está asociado con tu cuenta de Belvo.
- hiciste una solicitud para un link donde el
credentials_storage
estaba configurado comono_store
o30d
, y Belvo ya no tiene estas credenciales almacenadas para recuperar información.
Solución
Asegúrate de que:
- Estás usando la URL correcta (verifica errores tipográficos y nuestra documentación de referencia de la API).
- Estás usando un ID que está asociado con tu cuenta de Belvo.
En el caso de que el link se haya creado con el credentials_storage
configurado como no_store
o 30d
, necesitarás pedirle al usuario que vuelva a conectar su cuenta.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Belvo | No |
Enrichment | Belvo | No |
Payment Initiation | Belvo | No |
[
{
"message": "Method \"PATCH\" not allowed.",
"code": "method_not_allowed",
"request_id": "8ea4cd36ad39db3823b89b31aea74581"
}
]
Causa
Este error ocurre cuando intentas usar un método de API que no está permitido para el recurso dado (por ejemplo, una solicitud PATCH para endpoints fiscales).
Solución
Verifica qué métodos están permitidos para el recurso dado en nuestra Documentación de Referencia de API.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Belvo | No |
Enrichment | Belvo | No |
Payment Initiation | Belvo | No |
[
{
"code": "request_timeout",
"message": "The request timed out, you can retry asking for less data by changing your query parameters",
"request_id": "5c7b283c6efa449c9c028a16b5c249fd"
}
]
Causa
Belvo tiene un límite respecto al tiempo que toma iniciar sesión, recuperar datos de la cuenta y cerrar sesión, que está establecido en cinco (5) minutos. Ocurre un timeout cuando hay una gran cantidad de datos y no se pudo obtener todo dentro del tiempo asignado.
Por ejemplo, si una cuenta tiene más de 2000 transacciones por cuenta por mes, podrías recibir un error de
request_timeout
.
Solución
Cuando ocurre un timeout, nuestra API aún guarda la mayor cantidad de datos que pudo recuperar. Así que, puedes intentar hacer la misma solicitud nuevamente y recuperar todos los datos con éxito.
Si sigues recibiendo errores de timeout para varios links, o tres timeouts para el mismo link, repórtalo a Belvo y proporciona los request_id
s.
Mensaje de error del widget
Idioma | Título del error | Descripción del error |
---|---|---|
🇬🇧 Inglés | The connection has timed out | The response took too long and the connection could not be established successfully. Please try again in a few minutes. |
🇧🇷 Portugués | Tempo limite de conexão atingido | O tempo de resposta está demorando mais do que o normal e a conexão não pode ser estabelecida. Por favor, tente novamente em alguns minutos. |
🇪🇸 Español | La conexión ha expirado | El tiempo de respuesta ha sido demasiado largo y la conexión no se ha podido establecer. Por favor, inténtalo de nuevo en unos minutos. |
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregación | Link | No |
Enriquecimiento | Link | No |
[
{
"code": "link_refreshed",
"message": "The link has already been refreshed. Please wait X minutes before trying again.",
"request_id": "9e7b283c6efa449c9c028a16b5c249fb"
}
]
Causa
Este error ocurre cuando realizas una solicitud al método Trigger a historical update for a link para un link que ha sido actualizado en los últimos 10 minutos.
Solución
Espera a que pase el período de enfriamiento antes de realizar otra solicitud para el mismo link. El mensaje de error indicará cuántos minutos necesitas esperar.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Institution | No |
Enrichment | Institution | No |
Payment Initiation | N/A | N/A |
[
{
"code": "activation_required",
"message": "This user doesn't have web access activated yet.",
"request_id": "3e7b283c6efa449c9c028a16b5c249jk"
}
]
Causa
Este error ocurre cuando el usuario no ha activado su acceso a la banca por internet.
Solución
Pida al usuario que primero active su acceso a la banca por internet y luego pídale que conecte su cuenta nuevamente.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Link | Sí |
Enrichment | Link | Sí |
[
{
"code": "token_required",
"message": "A MFA token is required by the institution to login",
"request_id": "8c7b283c6efa449c9c028a16b5c249fa",
"session": "2675b703b9d4451f8d4861a3eee54449",
"expiry": 9600,
"link": "30cb4806-6e00-48a4-91c9-ca55968576c8",
"token_generation_data": {
"instructions": "Use this code to generate the token",
"type": "numeric",
"value": "12345"
}
}
]
Causa
Este error ocurre cuando la institución requiere MFA para iniciar sesión.
Solución
Consulta nuestro artículo sobre cómo manejar MFA. Sin embargo, te recomendamos encarecidamente que uses nuestro Connect Widget ya que manejaremos estos tipos de errores por ti y guiaremos a tu usuario a través de los pasos para proporcionar su token de autenticación.
Mensaje de error del widget
En el caso de que tu usuario ingrese incorrectamente su token (o el token que ingresa esté caducado) mientras usa el widget, se muestran los siguientes mensajes de error:
Idioma | Título del error | Descripción del error |
---|---|---|
🇬🇧 Inglés | Invalid token | It looks like the token has expired, generate a new one and try again. |
🇧🇷 Portugués | Token inválido | É provável que o token tenha expirado, gere um novo e tente novamente |
🇪🇸 Español | Token inválido | Es probable que el token haya caducado, genera uno nuevo y vuelve a intentarlo |
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Belvo | No |
Enrichment | Belvo | No |
[
{
"code": "service_unavailable",
"message": "Belvo is unable to process the request due to an internal system issue or to an unsupported response from an institution",
"request_id": "4a7b283c6efa449c9c028a16b5c249fd"
}
]
Causa
Este error ocurre cuando nosotros (Belvo) hemos encontrado un error interno del sistema (lo sentimos).
Solución
Puedes intentar de nuevo más tarde. Si sigues recibiendo este error, contacta a nuestro equipo de soporte, asegurándote de incluir el request_id
que recibes en el mensaje.
API | Tipo de error | ¿Reflejado en el widget? |
---|---|---|
Aggregation | Belvo | Sí |
Enrichment | Belvo | Sí |
Payment Initiation | Belvo | Sí |
[
{
"code": "unexpected_error",
"message": "Belvo is unable to process the request due to an internal system issue or to an unsupported response from an institution",
"request_id": "4a7b283c6efa449c9c028a16b5c249fd"
}
]
Causa
Este error ocurre cuando nosotros (Belvo) hemos encontrado un error interno del sistema (lo sentimos) o debido a una respuesta no soportada de la institución.
Este tipo de error puede ser intermitente o persistente.
Solución
Recomendamos que intentes realizar tu solicitud original un máximo de tres veces, en caso de que el problema sea intermitente.
Si el error sigue ocurriendo con la misma solicitud, contacta a nuestro equipo de soporte, asegurándote de incluir el request_id
que recibes en el mensaje de error.
Mensaje de error del widget
Idioma | Título del error | Descripción del error |
---|---|---|
🇬🇧 Inglés | Something went wrong | There was an error linking your account. Please try again, and if the problem persists, we will try to fix it as soon as possible. |
🇧🇷 Portugués | Ocorreu um erro | Ocorreu um erro ao vincular sua conta. Tente novamente e, se o problema persistir, o corrigiremos o mais breve possível |
🇪🇸 Español | Ha habido un error | Hemos tenido un error vinculando tu cuenta. Por favor, inténtalo de nuevo y si el problema persiste, lo arreglaremos lo más pronto posible |