Pular para o conteúdo
Última atualização

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.

Códigos de Respuesta

Usamos el siguiente código de estado HTTP en la respuesta dependiendo del éxito o fracaso:

Código de EstadoDescripció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.
400Error de Solicitud Incorrecta - La solicitud devolvió un error, detalle en el contenido.
401No Autorizado - Las credenciales de Belvo proporcionadas no son válidas.
403Prohibido - No tienes los permisos requeridos para realizar esta acción.
404No Encontrado - El recurso al que intentas acceder no se puede encontrar.
405Método No Permitido - El método HTTP que estás usando no es aceptado para este recurso.
408Tiempo de Solicitud Agotado - La solicitud se agotó y fue terminada por el servidor.
409Conflicto - La solicitud no pudo completarse debido a un conflicto con el estado actual del recurso.
428Token MFA Requerido - Se requirió un token MFA por la institución para conectar.
500Error 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í:

Ejemplo de un error 400 de Solicitud Incorrecta
[
  {
    "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.

Notas generales sobre el manejo de errores

Aquí está nuestra recomendación en términos de reintento en errores:

Errores 50x

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).

Errores 40x

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.

Almacena el request_id

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.

400 activation_failed

APITipo de error¿Reflejado en el widget?
AggregationInstitutionNo*
EnrichmentInstitutionNo*
Payment InitiationN/AN/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.

Activation Failed Example
[
  {
    "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.


400 already_exists

APITipo de error¿Reflejado en el widget?
AggregaciónN/AN/A
EnriquecimientoN/AN/A
Iniciación de PagosSolicitudNo
Already Exists Example
[
    {
        "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
Bank Account Error Example
{
  "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.


400 en blanco

APITipo de error¿Reflejado en el widget?
AggregationRequestNo
EnrichmentRequestNo
Payment InitiationRequestNo
Blank Error Example
[
    {
        "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:

Blank Field Request Example
{
    "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.

400 cancellation_error

APITipo de error¿Reflejado en el widget?
Payment InitiationRequestNo
[
    {
        "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.

400 does_not_exist

APITipo de error¿Reflejado en el widget?
AggregationRequestNo
EnrichmentRequestNo
Does Not Exist Example
[
    {
        "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:

Request with Non-Existent Institution Example
{
    "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).

400 duplicado

APITipo de error¿Reflejado en el widget?
AggregationRequest
EnrichmentRequestNo
Duplicated Link Example
[ 
    {
        "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 asociado id sigue siendo válido usando la solicitud Obtener los detalles de un link. Si el status no es valid, 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 asociado id 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.

400 null

APITipo de error¿Reflejado en el widget?
AggregationRequestNo
EnrichmentRequestNo
Null Field Example
[
    {
        "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:

Null Field Request Example
{
    "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.


400 requerido

APITipo de error¿Reflejado en el widget?
AggregationRequestNo
EnrichmentRequestNo
Payment InitiationRequestNo
Required Field Example
[
    {
        "field": "username",
        "request_id": "b9abda13c9afbbc64a265c6d4f937d06",
        "message": "Este campo es requerido.",
        "code": "required"
    }
]

Causa
Enviaste una solicitud sin un campo requerido. Por ejemplo:

Required Field Request Example
{
    "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.

400 institution_down

APITipo de error¿Reflejado en el widget?
AggregationInstitution
EnrichmentInstitution
Payment InitiationN/AN/A
Institution Down Example
[
  {
    "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

IdiomaTítulo del errorDescripción del error
🇬🇧
Inglés
Something went wrongThe 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 erroEsta instituição está temporariamente inacessível. Tente novamente mais tarde e poderemos processar sua solicitação
🇪🇸
Español
Ha habido un errorEsta institución está temporalmente inaccesible. Por favor, inténtalo de nuevo más tarde y podremos procesar tu petición

400 institution_inactive

APITipo de error¿Reflejado en el widget?
AggregationInstitution
EnrichmentInstitution
Payment InitiationN/AN/A
Institution Inactive Example
[
  {
    "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.


400 institution_unavailable

APITipo de error¿Reflejado en el widget?
AggregationInstitution
EnrichmentInstitution
Payment InitiationN/AN/A
Institution Unavailable Example
[
  {
    "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

IdiomaTítulo del errorDescripción del error
🇬🇧
Inglés
Something went wrongThe 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 erroO serviço está temporariamente inacessível. Tente novamente mais tarde e poderemos processar sua solicitação
🇪🇸
Español
Ha habido un errorEsta institución está temporalmente inaccesible. Por favor, inténtalo de nuevo más tarde y podremos procesar tu petición

400 inválido

APITipo de error¿Reflejado en el widget?
AggregationRequestNo
EnrichmentRequestNo
Payment InitiationRequestNo
Ejemplo de Formato de Fecha Incorrecto
[
  {
    "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:

Ejemplo de Formato de Fecha Incorrecto
{
  "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.


400 invalid_choice

APITipo de error¿Reflejado en el widget?
AggregationRequestNo
EnrichmentRequestNo
Invalid Choice Example
[
    {
        "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:

Invalid Choice Request Example
{
    "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.

400 invalid_credentials_storage

APITipo de error¿Reflejado en el widget?
AggregationRequestNo
EnrichmentRequestNo
Invalid Credentials Storage Example
[
    {
        "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.

Invalid Credentials Storage Request Example
{
    "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 a store.
  • Si deseas crear un enlace único y no almacenar credenciales, cambia el access_mode a single.

400 invalid_fetch_resources

APITipo de error¿Reflejado en el widget?
AggregationRequestNo
EnrichmentRequestNo
Invalid Fetch Resources Example
[
    {
        "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.

Invalid Fetch Resources Request Example
{
    "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"] .


APITipo de error¿Reflejado en el widget?
AggregaciónLinkNo
EnriquecimientoLinkNo
Iniciación de PagoN/AN/A
Invalid Link Example
[
  {
    "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.


400 invalid_period

APITipo de error¿Reflejado en el widget?
AggregationBelvoNo
EnrichmentBelvoNo
Payment InitiationN/AN/A
Invalid Period Example
[
    {
        "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.


400 login_error

Actualmente estamos refinando nuestros mensajes de login_error para proporcionar una mayor granularidad y mejorar la resolución de problemas.

APITipo de error¿Reflejado en el widget?
AggregationLink
EnrichmentLink
Ejemplo de Error de Inicio de Sesión
[
    {
        "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 messages 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.

400 max_digits

APITipo de error¿Reflejado en el widget?
AggregationN/AN/A
EnrichmentN/AN/A
Payment InitiationRequestNo
Wrong Amount Format Example
[
    {
        "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.


400 max_decimal_places

APITipo de error¿Reflejado en el widget?
AggregaciónN/AN/A
EnriquecimientoN/AN/A
Iniciación de PagoSolicitudNo
Ejemplo de Demasiados Decimales
[
    {
        "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.


400 min_value

APITipo de error¿Reflejado en el widget?
AggregationN/AN/A
EnrichmentN/AN/A
Payment InitiationRequestNo
Minimum Amount Value Example
[
    {
        "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.


400 not_a_list

APITipo de error¿Reflejado en el widget?
AggregationSolicitudNo
EnrichmentSolicitudNo
Payment InitiationSolicitudNo
Not a List Example
[
    {
        "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:

Ejemplo Incorrecto
{
  "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.


400 parse_error

APITipo de error¿Reflejado en el widget?
AggregationRequestNo
EnrichmentRequestNo
Payment InitiationRequestNo
Parse Error Example
[
    {
        "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:

Parse Error Request Example
{
    "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.


400 session_expired

APITipo de error¿Reflejado en el widget?
AggregationRequest
EnrichmentRequest
Session Expired Example
[
  {
    "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 428 token_required.

Solución

Desafortunadamente, necesitarás comenzar todo el proceso de inicio de sesión con tu usuario nuevamente.

Mensaje de error del widget

IdiomaTítulo del errorDescripció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 novamenteA sessão com essa instituição expirou. Por favor, digite suas credenciais novamente
🇪🇸
Español
Por favor, ingresa de nuevoPor favor, ingresa de nuevo tus credenciales ya que la sesión con esta institución ha expirado

400 session_expired_ob

APITipo de error¿Reflejado en el widget?
AggregationRequest
Session Expired OB Example
[
  {
    "code": "session_expired_ob",
    "request_id": "6e7b283c6efa449c9c028a16b5c249fa"
  }
]

Causa

Puedes recibir este error por las siguientes razones:

  1. El access_token que generaste no se utilizó dentro del período de expiración de 10 minutos.
  2. En lugar de generar un nuevo access_token para el widget para el usuario dado, utilizaste un access_token generado para otro usuario que ya creó un enlace usando el widget.
  3. 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:

  1. 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 nuevo access_token.
  2. Asegúrate de crear siempre un nuevo access_token para cada usuario.
  3. 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

IdiomaTítulo del errorDescripción del error
🇬🇧
Inglés
Session expiredYour connection session expired, please refresh the page to try again to link your account
🇧🇷
Portugués
Sessão expiradaSua sessão expirou, atualize a página e tente vincular sua conta novamente.

400 too_many_sessions

APITipo de error¿Reflejado en el widget?
AggregationLink
EnrichmentLink
Payment InitiationLink
Too Many Sessions Example
[
	{
		"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

IdiomaTítulo del errorDescripción del error
🇬🇧
Inglés
A session is already openIt 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 abertasParece 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 abiertasParece 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.

400 unavailable_data

APITipo de error¿Reflejado en el widget?
AggregationRequestNo
EnrichmentN/ANo
Payment InitiationN/AN/A
Unavailable Data Example
[
    {
        "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.


APITipo de error¿Reflejado en el widget?
AggregationLinkNo
EnrichmentLinkNo
Payment InitiationN/AN/A
Unconfirmed Link Example
[
    {
        "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.


400 unsupported_operation

APITipo de error¿Reflejado en el widget?
AggregationBelvoNo
EnrichmentBelvoNo
Payment InitiationN/AN/A
Ejemplo de Recurso No Soportado
[
  {
    "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 establecer fetch_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

IdiomaTítulo del errorDescripción del error
🇬🇧
Inglés
Something went wrongThere 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 erroOcorreu 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 errorHemos 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

400 validation_error

APITipo de error¿Reflejado en el widget?
AggregationRequestNo
EnrichmentRequestNo
Payment InitiationN/AN/A
Validation Error Example
[
    {
        "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:

Validation Error Request Example
{
    "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.


401 authentication_failed

APITipo de error¿Reflejado en el widget?
AggregationBelvoNo
EnrichmentBelvoNo
Payment InitiationN/AN/A
Authentication Failed Example
[
    {
        "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.


APITipo de error¿Reflejado en el widget?
AggregationBelvoNo
EnrichmentN/AN/A
Payment InitiationN/AN/A
Consent Without Accounts Example
[
    {
        "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.


403 access_to_production_denied

APITipo de error¿Reflejado en el widget?
AggregationBelvoNo
EnrichmentBelvoNo
Payment InitiationBelvoNo
Access to Production Denied Example
[
    {
        "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.


403 access_to_resource_denied

APITipo de error¿Reflejado en el widget?
AggregationBelvoNo
EnrichmentBelvoNo
Payment InitiationN/AN/A
Access to Resource Denied Example
[
    {
        "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.


403 Prohibido

APITipo de error¿Reflejado en el widget?
AggregationBelvoNo
EnrichmentBelvoNo
<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.


403 permission_denied

APITipo de error¿Reflejado en el widget?
AggregationBelvoNo
EnrichmentBelvoNo
Payment InitiationBelvoNo

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.


403 quota_limit_reached

APITipo de error¿Reflejado en el widget?
AggregationBelvoNo
EnrichmentBelvoNo
Payment InitiationN/AN/A
Ejemplo de Límite de Cuota Alcanzado
[
    {
        "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.


404 not_found

APITipo de error¿Reflejado en el widget?
AggregationRequestNo
EnrichmentRequestNo
Payment InitiationRequestNo
Ejemplo de Error de Objeto No Encontrado
[
  {
    "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 como no_store o 30d, 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.


405 method_not_allowed

APITipo de error¿Reflejado en el widget?
AggregationBelvoNo
EnrichmentBelvoNo
Payment InitiationBelvoNo
Method Not Allowed Example
[
    {
        "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.


408 request_timeout

APITipo de error¿Reflejado en el widget?
AggregationBelvoNo
EnrichmentBelvoNo
Payment InitiationBelvoNo
Request Timeout Example
[
  {
    "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_ids.

Mensaje de error del widget

IdiomaTítulo del errorDescripción del error
🇬🇧
Inglés
The connection has timed outThe 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 atingidoO 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 expiradoEl 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.

APITipo de error¿Reflejado en el widget?
AggregaciónLinkNo
EnriquecimientoLinkNo
Ejemplo de Error de Link Refreshed
[
  {
    "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.

428 activation_required

APITipo de error¿Reflejado en el widget?
AggregationInstitutionNo
EnrichmentInstitutionNo
Payment InitiationN/AN/A
Activation Required Example
[
  {
    "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.


428 token_required

APITipo de error¿Reflejado en el widget?
AggregationLink
EnrichmentLink
Token Required Example
[
  {
    "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:

IdiomaTítulo del errorDescripción del error
🇬🇧
Inglés
Invalid tokenIt 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álidoEs probable que el token haya caducado, genera uno nuevo y vuelve a intentarlo

500 service_unavailable

APITipo de error¿Reflejado en el widget?
AggregationBelvoNo
EnrichmentBelvoNo
Service Unavailable Example
[
  {
    "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.


500 unexpected_error

APITipo de error¿Reflejado en el widget?
AggregationBelvo
EnrichmentBelvo
Payment InitiationBelvo
Unexpected Error Example
[
  {
    "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

IdiomaTítulo del errorDescripción del error
🇬🇧
Inglés
Something went wrongThere 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 erroOcorreu 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 errorHemos tenido un error vinculando tu cuenta. Por favor, inténtalo de nuevo y si el problema persiste, lo arreglaremos lo más pronto posible