Skip to content
Last updated

Erros são irritantes - nós sabemos. É por isso que temos artigos dedicados para cada erro em nosso DevPortal para ajudá-lo a resolvê-los. Dê uma olhada no erro abaixo ou simplesmente procure o código de erro que você está encontrando para ir direto às causas e soluções.

Códigos de Resposta

Usamos o seguinte código de status HTTP na resposta, dependendo do sucesso ou falha:

Código de StatusDescrição
200Sucesso - O conteúdo está disponível no corpo da resposta.
201Sucesso - O conteúdo foi criado com sucesso no Belvo.
204Sucesso - Nenhum conteúdo para retornar.
400Erro de Solicitação Inválida - A solicitação retornou um erro, detalhe no conteúdo.
401Não Autorizado - As credenciais do Belvo fornecidas não são válidas.
403Proibido - Você não tem as permissões necessárias para realizar esta ação.
404Não Encontrado - O recurso que você tentou acessar não pode ser encontrado.
405Método Não Permitido - O método HTTP que você está usando não é aceito para este recurso.
408Tempo de Solicitação Esgotado - A solicitação expirou e foi encerrada pelo servidor.
409Conflito - A solicitação não pôde ser concluída devido a um conflito com o estado atual do recurso.
428Token MFA Necessário - O token MFA foi exigido pela instituição para conectar.
500Erro Interno do Servidor - O detalhe do erro está disponível no corpo da resposta.

Os erros da API do Belvo são retornados no formato JSON. Por exemplo, um erro pode ser assim:

Exemplo de um erro 400 de Solicitação Inválida
[
  {
    "request_id": "a6e1c493d7a29d91aed4338e6fcf077d",
    "message": "Este campo é obrigatório.",
    "code": "required",
    "field": "link"
  }
]

Normalmente, uma resposta de erro terá os seguintes parâmetros:

  • request_id: um ID único para a solicitação, você deve compartilhá-lo com a equipe de suporte do Belvo para investigações.
  • message: descrição do erro em linguagem humana.
  • code: um código único para o erro. Verifique a tabela abaixo para ver como lidar com cada código de erro.
  • field (opcional): O campo específico no corpo da solicitação que tem um problema.

Notas gerais sobre tratamento de erros

Aqui está nossa recomendação em termos de nova tentativa em caso de erros:

Erros 50x

Implemente uma retentativa automática com backoff exponencial de até cinco tentativas. Recomendamos que você use um intervalo base de três segundos com um fator de dois. Por exemplo, a primeira tentativa de retentativa deve ser após três segundos, a segunda tentativa de retentativa é após 6 segundos (2*3), a terceira tentativa de retentativa é após 12 segundos (2*6), a quarta tentativa de retentativa é após 24 segundos (2*12), e a quinta tentativa de retentativa é após 48 segundos (2*24).

Erros 40x

Você não deve tentar novamente fazer solicitações se receber uma resposta 40x, pois isso é um erro do cliente.

A única exceção é o erro "Too Many Sessions", pois isso significa que seu usuário final está acessando a conta de outro navegador ao mesmo tempo. Nesse caso, implemente a mesma política de repetição que com erros 50x.

Armazene o request_id

Ao implementar sua integração com a Belvo, certifique-se de considerar o armazenamento do request_id quando você receber um erro. Dessa forma, quando você fornecer o ID aos nossos engenheiros, eles poderão solucionar o problema rapidamente e fazer com que você volte a funcionar.

400 activation_failed

APITipo de erroRefletido no widget?
AggregationInstitutionNão*
EnrichmentInstitutionNão*
Payment InitiationN/AN/A

* Este erro normalmente não é exibido no widget. No entanto, há exceções em que ele é refletido no widget para algumas instituições, como o BBVA no México. Entre em contato conosco em support@belvo.com se tiver alguma dúvida.

Activation Failed Example
[
  {
    "code": "activation_failed",
    "message": "The credentials provided were not accepted by the institution.",
    "request_id": "3e7b283c6efa449c9c028a16b5c249gg"
  }
]

Causa

Este erro ocorre quando a Belvo não conseguiu ativar automaticamente o acesso ao internet banking para o usuário devido a informações ausentes (por exemplo, o 🇲🇽 CVV ou 🇲🇽 NIP estavam ausentes ou foram fornecidos incorretamente).

Solução

Peça ao usuário para primeiro ativar o acesso ao internet banking (seja entrando em contato diretamente com o banco ou tentando fazer login na conta de internet banking) e, em seguida, peça para conectar a conta novamente.


400 already_exists

APITipo de erroRefletido no widget?
AggregationN/AN/A
EnrichmentN/AN/A
Payment InitiationRequestNão
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

Você está tentando registrar uma conta bancária fornecendo um valor que já está vinculado a uma conta bancária registrada no Belvo. Isso pode incluir:

  • O identificador da chave PIX da conta bancária
  • O número da conta bancária
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 da conta já registrado no Belvo.
     }
}

Solução

Faça uma solicitação para obter todas as contas bancárias para receber uma lista de todas as contas bancárias que você registrou, filtrando os resultados pelos últimos quatro dígitos da conta bancária para obter os detalhes.


400 em branco

APITipo de erroRefletido no widget?
AggregationRequestNão
EnrichmentRequestNão
Payment InitiationRequestNão
Exemplo de Erro em Branco
[
    {
        "field": "institution",
        "request_id": "b9abda13c9afbbc64a265c6d4f937d06",
        "message": "Este campo não pode estar em branco.",
        "code": "null"
    }
]

Causa

Você enviou uma solicitação com uma string vazia para um campo obrigatório. Por exemplo:

Exemplo de Solicitação com Campo em Branco
{
    "institution": "", // Este campo é obrigatório e não pode ser uma string vazia.
    "username": "bnk100",
    "password": "full",
}

Solução

  • Verifique a mensagem de erro para ver qual campo você precisa fornecer. Se você não tiver certeza de qual informação fornecer ou o formato, basta verificar nossa documentação de referência da API.

400 cancellation_error

APITipo de erroRefletido no widget?
Iniciação de PagamentoSolicitaçãoNão
[
    {
        "request_id": "b9abda13c9afbbc64a265c6d4f937d06",
        "message": "Payment Intent cannot be canceled because it is not SCHEDULED",
        "code": "cancellation_error"
    }
]

Causa

Este erro pode ocorrer quando:

  • Você tentou cancelar uma payment intent que não estava agendada.
  • Você enviou sua solicitação de cancelamento após o horário limite de 23:59:00 (GMT-3) do dia anterior à data de liquidação agendada.

400 does_not_exist

APITipo de erroRefletido no widget?
AggregationRequestNão
EnrichmentRequestNão
Does Not Exist Example
[
    {
        "field": "institution",
        "request_id": "744da6621cb09b3cbb8271d89fe09060",
        "message": "Object with name=narnia does not exist.",
        "code": "does_not_exist"
    }
]

Causa

Você enviou uma solicitação onde forneceu um valor que não existe no banco de dados da Belvo. Por exemplo:

Request with Non-Existent Institution Example
{
    "institution": "narnia", // Esta instituição não existe no banco de dados da Belvo.
    "username": "bnk100",
    "password": "full"
}

Solução

Verifique a mensagem de erro para ver em qual campo você forneceu um valor incorreto. Então:

  • Certifique-se de que não cometeu nenhum erro de digitação.
  • Verifique se o valor que você está fornecendo deve estar presente em nosso banco de dados (por exemplo, se você fizer uma solicitação para um link que ainda não foi registrado, você receberá um erro).

400 duplicado

APITipo de erroRefletido no widget?
AggregaçãoSolicitaçãoSim
EnriquecimentoSolicitaçãoNão
Exemplo de Link Duplicado
[ 
    {
        "request_id": "744da6621cb09b3cbb8271d89fe09060",
        "message": "Link já existe",
        "code": "duplicated",
        "institution_user_id": "4jlgn6vL7yifxMlhwFwTjbbzYxYoEEkJqK_CJhhZetI="
    }
]

Causa

Este erro pode ocorrer quando:

  • Você tentou criar um link que já foi associado à sua conta.
  • Seu usuário tentou criar um link com uma conta que já conectou.

Solução

Você pode:

  • Consultar seu banco de dados para encontrar o institution_user_id e verificar se o link associado id ainda é válido usando a solicitação Obter detalhes de um link. Se o status não for valid, então solicite ao seu usuário que atualize suas credenciais usando o widget da Belvo no modo de atualização.
  • Consultar seu banco de dados para encontrar o institution_user_id e usar o id do link associado para deletar o link do banco de dados da Belvo usando a solicitação Deletar um link. Depois de deletar o link, você pode pedir ao seu usuário para conectar a conta novamente.

400 null

APITipo de erroRefletido no widget?
AggregationRequestNão
EnrichmentRequestNão
Null Field Example
[
    {
        "field": "institution",
        "request_id": "b9abda13c9afbbc64a265c6d4f937d06",
        "message": "This field may not be null.",
        "code": "null"
    }
]

Causa

Você fez uma solicitação sem fornecer dados em um campo obrigatório. Por exemplo:

Null Field Request Example
{
    "institution": , // Este campo é obrigatório.
    "username": "bnk100",
    "password": "full",
}

Solução

Verifique a mensagem de erro para ver qual campo você precisa fornecer. Se você não tiver certeza de qual informação fornecer ou o formato, basta verificar nossa documentação de referência da API.


400 required

APITipo de erroRefletido no widget?
AggregationRequestNão
EnrichmentRequestNão
Payment InitiationRequestNão
Required Field Example
[
    {
        "field": "username",
        "request_id": "b9abda13c9afbbc64a265c6d4f937d06",
        "message": "This field is required.",
        "code": "required"
    }
]

Causa
Você enviou uma solicitação sem um campo obrigatório. Por exemplo:

Required Field Request Example
{
    "institution": "erebor_mx_retails",
    "password": "full"
    // Quando você está registrando um novo link, deve fornecer um username.
}

Solução

  • Verifique a mensagem de erro para ver qual campo você precisa fornecer. Se você não tiver certeza de qual informação fornecer ou o formato, basta verificar nossa documentação de referência da API.

400 institution_down

APITipo de erroRefletido no widget?
AggregationInstitutionSim
EnrichmentInstitutionSim
Payment InitiationN/AN/A
Institution Down Example
[
  {
    "code": "institution_down",
    "message": "The financial institution is down, try again later",
    "request_id": "3e7b283c6efa449c9c028a16b5c249fd"
  }
]

Causa

Este erro ocorre quando o site da instituição que você está tentando acessar está fora do ar devido a manutenção ou outros problemas, o que significa que a Belvo não consegue criar novos links ou recuperar novos dados.

Solução

Você pode tentar acessar a instituição novamente mais tarde. Certifique-se de assinar nossa Página de Status das Instituições para saber assim que uma instituição estiver indisponível.

Você pode remover uma instituição que atualmente não está disponível usando o parâmetro institutions na configuração de inicialização e omitindo a instituição da lista.

Mensagem de erro do widget

IdiomaTítulo do erroDescrição do erro
🇬🇧
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
🇪🇸
Espanhol
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 erroRefletido no widget?
AggregationInstitutionSim
EnrichmentInstitutionSim
Payment InitiationN/AN/A
Institution Inactive Example
[
  {
    "code": "institution_inactive",
    "message": "The institution has been temporarily deactivated",
    "request_id": "3e7b283c6efa449c9c028a16b5c249fd"
  }
]

Causa

Este erro ocorre quando nós (Belvo) desativamos a instituição em nossa API.

Solução

Você pode tentar novamente mais tarde, assim que a Belvo reativar a instituição.


400 institution_unavailable

APITipo de erroRefletido no widget?
AggregationInstitutionSim
EnrichmentInstitutionSim
Payment InitiationN/AN/A
Institution Unavailable Example
[
  {
    "code": "institution_unavailable",
    "message": "The financial institution is unavailable",
    "request_id": "3e7b283c6efa449c9c028a16b5c249fd"
  }
]

Causa

Este erro ocorre quando o site da instituição que você está tentando acessar está fora do ar devido a manutenção ou outros problemas, o que significa que a Belvo não consegue criar novos links ou recuperar novos dados.

Solução

Você pode tentar acessar a instituição novamente mais tarde. Certifique-se de assinar nossa Página de Status das Instituições para saber assim que uma instituição estiver indisponível.

Você pode remover uma instituição que atualmente não está disponível usando o parâmetro institutions na configuração de inicialização e omitindo a instituição da lista.

Mensagem de erro do widget

IdiomaTítulo do erroDescrição do erro
🇬🇧
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
🇪🇸
Espanhol
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 erroRefletido no widget?
AgregaçãoRequisiçãoNão
EnriquecimentoRequisiçãoNão
Iniciação de PagamentoRequisiçãoNão
Exemplo de Formato de Data Incorreto
[
  {
    "field": "date_to",
    "request_id": "a7ad9a4ad8b13f8f800f8f5b69c7856f",
    "message": "Date has wrong format. Use one of these formats instead: YYYY-MM-DD.",
    "code": "invalid"
  }
]

Causa

Você enviou uma requisição onde forneceu um valor em um formato inválido. Isso pode incluir:

  • O formato das credenciais de login está incorreto.
  • O formato da data está incorreto.
  • O UUID não é válido.
  • O terminal_id não é válido.
  • O form_id não é válido.
  • Os recursos que você incluiu em fetch_resources não são suportados pela instituição.

Por exemplo:

Exemplo de Formato de Data Incorreto
{
  "link": "a6c007b9-e99c-4073-834b-8c7705132de7",
  "date_from": "2020-01-01",
  "date_to": "2020-02" // Aqui, o formato da data deve ser YYYY-MM-DD 
}

Solução

Verifique a mensagem de erro para ver qual campo é inválido e por quê. Então, se precisar de mais informações, consulte nossa documentação da API para saber qual é o formato válido para o campo.


400 invalid_choice

APITipo de erroRefletido no widget?
AggregaçãoSolicitaçãoNão
EnriquecimentoSolicitaçãoNão
Invalid Choice Example
[
    {
        "field": "access_mode",
        "request_id": "ce49b6af6710bb0c7a2a456c223dde21",
        "message": "\"Dominik\" is not a valid choice.",
        "code": "invalid_choice"
    }
]

Causa
Você fez uma solicitação onde em um dos campos você forneceu um valor que não era válido (por exemplo, pode aceitar apenas certas strings, assim como um enum). Por exemplo:

Invalid Choice Request Example
{
    "institution": "erebor_mx_retail",
    "username": "bnk100",
    "password": "full",
    "access_mode": "Australia" // Este não é um valor válido, conforme a documentação afirma que é um enum: single ou recurrent
}

Solução

  • Verifique a mensagem de erro para ver em qual campo você forneceu um valor incorreto. Em seguida, consulte nossa documentação para ver qual valor você deve fornecer para este campo.

400 invalid_credentials_storage

APITipo de erroRefletido no widget?
AggregationRequestNão
EnrichmentRequestNão
Exemplo de Armazenamento de Credenciais Inválido
[
    {
        "request_id": "ce49b6af6710bb0c7a2a456c223dde21",
        "message": "Recurrent links must store the credentials",
        "code": "invalid_credentials_storage"
    }
]

Causa
Você fez uma solicitação onde para um link recorrente você definiu o parâmetro credentials_storage como nostore ou para um intervalo de datas entre 1d a 365d.

Exemplo de Solicitação de Armazenamento de Credenciais Inválido
{
    "institution": "tatooine_mx_fiscal",
    "username": "PFIS010101000",
    "password": "individual",
    "access_mode": "recurrent",
    "credentials_storage": "nostore" // Para links recorrentes, isso deve ser definido como store
}

Solução

  • Se você deseja criar um link recorrente, altere o valor de credentials_storage para store.
  • Se você deseja criar um link único e não armazenar credenciais, altere o access_mode para single.

400 invalid_fetch_resources

APITipo de erroRefletido no widget?
AggregationRequestNão
EnrichmentRequestNão
Exemplo de Recursos de Busca Inválidos
[
    {
        "request_id": "ce49b6af6710bb0c7a2a456c223dde21",
        "message": "Single links without stored credentials must fetch resources",
        "code": "invalid_fetch_resources"
    }
]

Causa
Você tentou criar um link onde definiu o parâmetro credentials_storage como nostore e não passou nenhum recurso no parâmetro fetch_resources. Para links onde não armazenamos credenciais, você deve passar pelo menos um recurso em fetch_resources.

Exemplo de Solicitação de Recursos de Busca Inválidos
{
    "institution": "tatooine_mx_fiscal",
    "username": "PFIS010101000",
    "password": "individual",
    "access_mode": "recurrent",
    "credentials_storage": "nostore",
  	"fetch_resources": []
}

Solução

Liste os recursos que você deseja recuperar no parâmetro fetch_resources. Por exemplo: "fetch_resources": ["ACCOUNTS", "OWNERS", "TRANSACTIONS"].


APITipo de erroRefletido no widget?
AggregationLinkNão
EnrichmentLinkNão
Payment InitiationN/AN/A
Exemplo de Link Inválido
[
  {
    "code": "invalid_link",
    "message": "The link has been invalidated. You may need to update link credentials",
    "request_id": "9b7b283c6efa449c9c028a16b5c249fd"
  }
]

Causa

Este erro ocorre quando você tenta acessar uma conta, mas as credenciais do usuário não são mais válidas, resultando em um erro da instituição.

O status de um Link muda de valid para invalid após seis solicitações POST malsucedidas

Solução

Peça ao seu usuário para fornecer suas credenciais atualizadas. Para facilitar, recomendamos fortemente que você use nosso Widget em Modo de Atualização.


400 invalid_period

APITipo de erroRefletido no widget?
AggregationBelvoNão
EnrichmentBelvoNão
Payment InitiationN/AN/A
Exemplo de Período Inválido
[
    {
        "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 erro ocorre quando você solicita rendimentos para um link dentro de um determinado intervalo de datas, no entanto, o período entre date_from e date_to é inferior a 90 dias.

Solução

Certifique-se de que o período entre date_from e date_to seja igual ou superior a 90 dias.


400 login_error

Estamos atualmente refinando nossas mensagens de login_error para fornecer maior granularidade e melhorar a resolução de problemas.

APITipo de erroRefletido no widget?
AggregationLinkSim
EnrichmentLinkSim
Exemplo de Erro de Login
[
    {
        "code": "login_error",
        "message": "Invalid credentials provided to login to the institution.",
        "request_id": "3e7b283c6efa449c9c028a16b5c249fd"
    }
]

Causa

Este erro pode ocorrer quando:

  • as credenciais que seu usuário fornece estão incorretas ou ausentes.
  • o token MFA que seu usuário fornece não é suportado pelo Belvo.
  • há um problema com a instituição que impede logins.
  • a conta do usuário está bloqueada ou o usuário não tem permissão para acessar seu internet banking.

Abaixo está uma lista de possíveis mensagens de erro que você pode receber:

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

Solução

  • Peça ao seu usuário para fornecer suas credenciais corretas ou token MFA. Use nosso widget para tornar isso ainda mais fácil (nós fazemos todo o trabalho pesado para você).
  • Peça ao seu usuário para confirmar com seu banco se a conta está ativa e não está bloqueada.
  • Se houver um problema com a instituição, tente fazer login em um momento posterior.

400 max_digits

APITipo de erroRefletido no widget?
AggregationN/AN/A
EnrichmentN/AN/A
Payment InitiationRequestNão
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
Você enviou uma solicitação com o formato de quantia incorreto.

Solução

Verifique a mensagem de erro para ver por que o formato da quantia é inválido. Se você não tiver certeza de quais informações fornecer ou o formato, basta verificar nossa documentação de referência da API para saber qual é o formato válido para o campo.


400 max_decimal_places

APITipo de erroRefletido no widget?
AggregationN/AN/A
EnrichmentN/AN/A
Payment InitiationRequestNão
Exemplo de Casas Decimais em Excesso
[
    {
        "field": "amount",
        "request_id": "a0c3b0e58e58409d9b1d49de9be35a3d",
        "message": "Ensure that there are no more than 2 decimal places.",
        "code": "max_decimal_places"
    }
]

Causa
Você enviou uma solicitação com o formato de quantia incorreto (muitas casas decimais).

Solução

Verifique a mensagem de erro para ver por que o formato da quantia é inválido. Se você não tiver certeza de quais informações fornecer ou o formato, basta verificar nossa documentação de referência da API para saber qual é o formato válido para o campo.


400 min_value

APITipo de erroRefletido no widget?
AggregationN/AN/A
EnrichmentN/AN/A
Payment InitiationRequestNão
Exemplo de Valor Mínimo
[
    {
        "field": "amount",
        "request_id": "a0c3b0e58e58409d9b1d49de9be35a3d",
        "message": "Ensure this value is greater than or equal to 0.01.",
        "code": "min_value"
    }
]

Causa
Você enviou uma solicitação com o formato de valor incorreto (o valor é menor que o valor mínimo permitido).

Solução

Verifique a mensagem de erro para ver por que o formato do valor é inválido. Se você não tem certeza de quais informações fornecer ou o formato, basta verificar nossa documentação de referência da API para saber qual é o formato válido para o campo.


400 not_a_list

APITipo de erroRefletido no widget?
AggregationRequestNão
EnrichmentRequestNão
Payment InitiationRequestNão
Not a List Example
[
    {
        "message": "Expected a list but got type \"str\".",
        "code": "not_a_list",
        "request_id": "d5af76cc66e0231e2be7f7be5c41170a"
    }
]

Causa
Você enviou uma solicitação onde, em vez de enviar um array de dados, você enviou apenas uma lista. Por exemplo:

Exemplo Incorreto
{
  "fetch_resources": "ACCOUNTS,OWNERS" // Aqui, fetch_resources deve ser um array de valores
}

Solução

Verifique sua solicitação JSON e consulte nossa documentação para ver qual campo deve ser um array.


400 parse_error

APITipo de erroRefletido no widget?
AggregationRequestNão
EnrichmentRequestNão
Payment InitiationRequestNão
Exemplo de Erro de Análise
[
    {
        "message": "JSON parse error - Expecting property name enclosed in double quotes: line 3 column 1 (char 54)",
        "code": "parse_error",
        "request_id": "d5af76cc66e0231e2be7f7be5c41170a"
    }
]

Causa
Você enviou uma solicitação com JSON inválido. Por exemplo:

Exemplo de Solicitação com Erro de Análise
{
    "link": "a6c007b9-e99c-4073-834b-8c7705132de7", // Aqui, o JSON não é válido porque tem uma vírgula no final
}

Solução

Verifique o payload JSON (talvez você esteja apenas esquecendo uma vírgula ou aspas) e tente novamente.


400 session_expired

APITipo de erroRefletido no widget?
AggregationRequestSim
EnrichmentRequestSim
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 erro ocorre quando você tenta retomar uma sessão de solicitação que já expirou. Isso geralmente acontece porque o usuário demorou muito para fornecer seu token de autenticação.

Para solicitações que exigem um token, há um período de tempo em que o usuário pode fornecer seu token. O período varia de instituição para instituição. Você pode verificar quanto tempo o usuário tem para inserir seu token usando o parâmetro expiry na resposta 428 token_required.

Solução

Infelizmente, você precisará iniciar todo o processo de login com seu usuário novamente.

Mensagem de erro do widget

IdiomaTítulo do erroDescrição do erro
🇬🇧
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
🇪🇸
Espanhol
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 erroRefletido no widget?
AggregationRequestSim
Exemplo de Sessão Expirada OB
[
  {
    "code": "session_expired_ob",
    "request_id": "6e7b283c6efa449c9c028a16b5c249fa"
  }
]

Causa

Você pode receber este erro devido aos seguintes motivos:

  1. O access_token que você gerou não foi usado dentro do período de expiração de 10 minutos.
  2. Em vez de gerar um novo access_token para o widget para o usuário dado, você usou um access_token gerado para outro usuário que já criou um link usando o widget.
  3. Seu usuário não clicou no botão Ir para a instituição no widget dentro de 60 segundos após a tela aparecer.

Solução

Infelizmente, você precisará iniciar o processo do widget com seu usuário novamente. Por favor, certifique-se de que você:

  1. Garanta que você use o access_token para gerar o widget assim que ele for criado. Se passarem 10 minutos ou mais, você precisará criar um novo access_token.
  2. Garanta que você sempre crie um novo access_token para cada usuário.
  3. Nossa equipe de UX está melhorando o fluxo para solicitar ao usuário que continue o fluxo dentro dos 60 segundos permitidos.

Mensagem de erro do widget

IdiomaTítulo do erroDescrição do erro
🇬🇧
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 erroRefletido no widget?
AggregationLinkSim
EnrichmentLinkSim
Payment InitiationLinkSim
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 erro ocorre quando:

  • um usuário está tentando fazer login na sua instituição via Belvo enquanto já está logado na sua instituição em um navegador web ou aplicativo móvel.
  • você faz uma solicitação de informações enquanto a Belvo está extraindo dados da instituição para esse usuário.

Solução

Tente:

  • Informar seu usuário para fechar suas sessões web e de aplicativo para a instituição em questão.
  • Esperar 120 segundos e tentar novamente sua solicitação, garantindo que a Belvo tenha terminado o processo de extração de dados.

Mensagem de erro do widget

IdiomaTítulo do erroDescrição do erro
🇬🇧
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
🇪🇸
Espanhol
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 erroRefletido no widget?
AggregationRequestNão
EnrichmentN/ANão
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 erro ocorre quando sua solicitação foi corretamente formada e enviada, no entanto, a instituição não retornou nenhum dado para sua solicitação.

Solução

Recomendamos primeiro verificar nossa Página de Status da Instituição para ver se há algum incidente com a instituição que está impedindo a extração de dados. Se não houver incidentes ativos para a instituição, você pode tentar novamente a solicitação. Se continuar recebendo este erro, entre em contato com nossa equipe de suporte, certificando-se de incluir o request_id que você recebe na mensagem.


APITipo de erroRefletido no widget?
AggregationLinkNão
EnrichmentLinkNão
Payment InitiationN/AN/A
Exemplo de Link Não Confirmado
[
    {
        "message": "A criação do link ainda não foi concluída",
        "code": "unconfirmed_link",
        "request_id": "c76f4d0320b923eb3068f5e2c0fab18f"
    }
]

Causa

Este erro ocorre quando você tenta acessar um link que foi pausado anteriormente (e, como tal, não está ativo agora).

O status de um Link é definido como unconfirmed_link quando o seu usuário não completou o processo de criação do Link com sucesso (por exemplo, ele pode não ter fornecido um token MFA válido)

Solução

Peça ao seu usuário para fornecer um token MFA através do nosso widget em modo de atualização para completar um primeiro login. Após o usuário completar o processo com sucesso, você poderá recuperar os dados.


400 unsupported_operation

APITipo de erroRefletido no widget?
AggregationBelvoNão
EnrichmentBelvoNão
Payment InitiationN/AN/A
Exemplo de Recurso Não Suportado
[
  {
    "message": "The resource you are trying to access is not supported by this institution",
    "code": "unsupported_operation",
    "request_id": "a66a4fdae4ab8cfc1ed9ee9246aa6890"
  }
]

Causa

Este erro ocorre quando:

  • Você tenta acessar alguma operação de dados que a Belvo não suporta para uma instituição. Por exemplo, tentar acessar o recurso Transactions para instituições Fiscais.
  • Você faz uma solicitação que requer que alguma lógica de negócios seja concluída. Por exemplo, ao usar o parâmetro fetch_resources na criação de um único link, você também deve definir fetch_historical como true

Solução

Certifique-se de que:

  • A operação de recurso (por exemplo, solicitar Transactions) é suportada para essa instituição.
  • Sua solicitação atende a toda a lógica de negócios necessária.

Mensagem de erro do widget

IdiomaTítulo do erroDescrição do erro
🇬🇧
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
🇪🇸
Espanhol
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 erroRefletido no widget?
AggregationRequestNão
EnrichmentRequestNão
Payment InitiationN/AN/A
Validation Error Example
[
    {
        "message": "Bad request",
        "code": "validation_error",
        "request_id": "e912d014d7976c3172bb8e65c7a22194"
    }
]

Causa

Você enviou uma solicitação onde:

  • As credenciais fornecidas não corresponderam aos campos esperados, levando a um erro de validação de campo da instituição.

Por exemplo:

Validation Error Request Example
{
    "link": "a6c007b9-e99c-4073-834b-8c7705132de7",
    "date_from": "2020-01-01",
    "date_to": "2021-03-30" // Entre date_from e date_to há mais de 365 dias
}

Solução

Obtenha os detalhes da instituição usando nosso endpoint de Instituições e verifique o objeto form_fields para obter informações sobre quais campos precisam ser fornecidos e seu formato.


401 authentication_failed

APITipo de erroRefletido no widget?
AggregationBelvoNão
EnrichmentBelvoNão
Payment InitiationN/AN/A
Exemplo de Falha de Autenticação
[
    {
        "message": "Invalid Secret Keys",
        "code": "authentication_failed",
        "request_id": "5c09677ecf78e1d4501547252a0c4e77"
    }
]

Causa

Este erro ocorre quando você tenta fazer uma chamada de API usando credenciais incorretas da API da Belvo (ou sua chave secreta ou senha secreta, ou ambos, estão incorretos).

Solução

Verifique as credenciais que você está usando em comparação com as do seu dashboard. Talvez você esteja usando suas credenciais de sandbox para acessar dados de produção (ou vice-versa). Nota: Se você não tiver certeza sobre sua secretPassword, verifique o e-mail de confirmação que você recebeu da Belvo.


APITipo de erroRefletido no widget?
AggregationBelvoNão
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 erro ocorre quando o seu usuário removeu contas associadas ao consentimento que eles forneceram. Por exemplo, quando o seu usuário gerou o consentimento pela primeira vez, ele tinha uma conta corrente e uma conta de empréstimo na instituição, mas desde então fechou essas contas.

Solução

Entre em contato com o seu usuário para confirmar se ele removeu a conta e peça para gerar um novo consentimento na instituição atual.


403 access_to_production_denied

APITipo de erroRefletido no widget?
AggregationBelvoNão
EnrichmentBelvoNão
Payment InitiationBelvoNão
Exemplo de Acesso à Produção Negado
[
    {
        "message": "You don’t have access to production API.",
        "code": "access_to_production_denied",
        "request_id": "d5af76cc66e0231e2be7f7be5c41170a"
    }
]

Causa

Este erro ocorre quando você tenta acessar o ambiente de produção da Belvo sem as permissões corretas.

Solução
Entre em contato com nossa equipe de vendas para solicitar acesso ao ambiente de produção.


403 access_to_resource_denied

APITipo de erroRefletido no widget?
AggregationBelvoNão
EnrichmentBelvoNão
Payment InitiationN/AN/A
Exemplo de Acesso ao Recurso Negado
[
    {
        "message": "You don't have access to this resource.",
        "code": "access_to_resource_denied",
        "request_id": "d5af76cc66e0231e2be7f7be5c41170a"
    }
]

Causa

Este erro ocorre quando você tenta acessar um recurso da Belvo sem as permissões corretas.

Solução
Entre em contato com nossa equipe de vendas para solicitar acesso a este recurso.


403 Forbidden

APITipo de erroRefletido no widget?
AggregationBelvoNão
EnrichmentBelvoNão
<html><head><title>403 Forbidden</title></head><body>

<center><h1>403 Forbidden</h1></center>

<hr><center>openresty/1.15.8.2</center>

</body></html>

Causa

Este erro ocorre quando você faz um grande volume de solicitações (mais de 80 solicitações em 30 segundos) em rápida sucessão a partir do mesmo endereço IP.

Solução

Se você espera ter consistentemente grandes volumes de chamadas do mesmo endereço IP, por favor, entre em contato com nossa equipe de Sucesso do Cliente.


403 permission_denied

APITipo de erroRefletido no widget?
AggregationBelvoNão
EnrichmentBelvoNão
Payment InitiationBelvoNão

Causa

Este erro ocorre quando nós (Belvo) estamos proibidos de acessar um determinado recurso na instituição, ou você excedeu seu limite de solicitações.

Solução
Se você conseguiu acessar este recurso anteriormente, tente novamente mais tarde. Nós (Belvo) monitoramos ativamente esses erros e designamos engenheiros para corrigir a situação o mais rápido possível.


403 quota_limit_reached

APITipo de erroRefletido no widget?
AggregationBelvoNão
EnrichmentBelvoNão
Payment InitiationN/AN/A
Exemplo de Limite de Cota Atingido
[
    {
        "message": "The quota limit has been reached.",
        "code": "quota_limit_reached",
        "request_id": "1d1c4f427dac394a96c3fa49568f2a38"
    }
]

O quota_limit_reached é aplicável apenas para o ambiente de desenvolvimento

Causa

Este erro ocorre quando você excedeu o limite de Link no ambiente de desenvolvimento.

Solução

Para continuar usando o ambiente de desenvolvimento, você precisa excluir Links suficientes para ficar abaixo do limite do ambiente.


404 not_found

APITipo de erroRefletido no widget?
AggregationRequestNão
EnrichmentRequestNão
Payment InitiationRequestNão
Exemplo de Erro de Objeto Não Encontrado
[
  {
    "message": "Not found.",
    "code": "not_found",
    "request_id": "1d1c4f427dac394a96c3fa49568f2a38"
  }
]

Causa

Você fez uma solicitação onde:

  • forneceu a URL errada.
  • usou um ID (para um link, conta, transação, etc.) que não está associado à sua conta Belvo.
  • fez uma solicitação para um link onde o credentials_storage foi definido como no_store ou 30d, e a Belvo não possui mais essas credenciais armazenadas para recuperar informações.

Solução

Certifique-se de que:

  • Você está usando a URL correta (verifique erros de digitação e nossa documentação de referência da API).
  • Você está usando um ID que está associado à sua conta Belvo.

No caso em que o link foi criado com o credentials_storage definido como no_store ou 30d, você precisará pedir ao usuário para reconectar sua conta.


405 method_not_allowed

APITipo de erroRefletido no widget?
AggregationBelvoNão
EnrichmentBelvoNão
Payment InitiationBelvoNão
Exemplo de Método Não Permitido
[
    {
        "message": "Method \"PATCH\" not allowed.",
        "code": "method_not_allowed",
        "request_id": "8ea4cd36ad39db3823b89b31aea74581"
    }
]

Causa

Este erro ocorre quando você tenta usar um método da API que não é permitido para o recurso dado (por exemplo, uma solicitação PATCH para endpoints Fiscais).

Solução

Verifique quais métodos são permitidos para o recurso dado em nossa Documentação de Referência da API.


408 request_timeout

APITipo de erroRefletido no widget?
AggregationBelvoNão
EnrichmentBelvoNão
Payment InitiationBelvoNão
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

A Belvo tem um limite em relação ao tempo necessário para fazer login, recuperar dados da conta e fazer logout, que é definido para cinco (5) minutos. Um timeout ocorre quando há uma quantidade muito grande de dados e tudo não pôde ser obtido dentro do tempo alocado.

Por exemplo, se uma conta tiver mais de 2000 transações por conta por mês, você pode receber um erro request_timeout.

Solução

Quando ocorre um timeout, nossa API ainda salva o máximo de dados que conseguiu recuperar. Assim, você pode tentar fazer a mesma solicitação novamente e recuperar todos os dados com sucesso.

Se você continuar recebendo erros de timeout para vários links, ou três timeouts para o mesmo link, reporte à Belvo e forneça os request_ids.

Mensagem de erro do widget

IdiomaTítulo do erroDescrição do erro
🇬🇧
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.
🇪🇸
Espanhol
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 erroRefletido no widget?
AgregaçãoLinkNão
EnriquecimentoLinkNão
Exemplo de Erro de Link Atualizado
[
  {
    "code": "link_refreshed",
    "message": "The link has already been refreshed. Please wait X minutes before trying again.",
    "request_id": "9e7b283c6efa449c9c028a16b5c249fb"
  }
]

Causa

Este erro ocorre quando você faz uma solicitação para o método Trigger a historical update for a link para um link que foi atualizado nos últimos 10 minutos.

Solução

Aguarde o período de cooldown passar antes de fazer outra solicitação para o mesmo link. A mensagem de erro indicará quantos minutos você precisa esperar.

428 activation_required

APITipo de erroRefletido no widget?
AggregationInstitutionNão
EnrichmentInstitutionNão
Payment InitiationN/AN/A
Exemplo de Activation Required
[
  {
    "code": "activation_required",
    "message": "Este usuário ainda não ativou o acesso à web.",
    "request_id": "3e7b283c6efa449c9c028a16b5c249jk"
  }
]

Causa

Este erro ocorre quando o usuário não ativou o acesso ao internet banking.

Solução

Peça ao usuário para primeiro ativar o acesso ao internet banking e, em seguida, peça para conectar a conta novamente.


428 token_required

APITipo de erroRefletido no widget?
AggregationLinkSim
EnrichmentLinkSim
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 erro ocorre quando a instituição requer MFA para fazer login.

Solução

Veja nosso artigo sobre como lidar com MFA. No entanto, recomendamos fortemente que você use nosso Connect Widget, pois lidaremos com esses tipos de erros para você e guiaremos seu usuário pelos passos para fornecer seu token de autenticação.

Mensagem de erro do widget

No caso de seu usuário inserir incorretamente seu token (ou o token que ele insere estiver expirado) enquanto usa o widget, as seguintes mensagens de erro são exibidas:

IdiomaTítulo do erroDescrição do erro
🇬🇧
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
🇪🇸
Espanhol
Token inválidoEs probable que el token haya caducado, genera uno nuevo y vuelve a intentarlo

500 service_unavailable

APITipo de erroRefletido no widget?
AggregationBelvoNão
EnrichmentBelvoNão
Exemplo de Serviço Indisponível
[
  {
    "code": "service_unavailable",
    "message": "Belvo não consegue processar a solicitação devido a um problema interno do sistema ou a uma resposta não suportada de uma instituição",
    "request_id": "4a7b283c6efa449c9c028a16b5c249fd"
  }
]

Causa

Este erro ocorre quando nós (Belvo) encontramos um erro interno do sistema (desculpe por isso).

Solução

Você pode tentar novamente mais tarde. Se continuar recebendo este erro, entre em contato com nossa equipe de suporte, certificando-se de incluir o request_id que você recebe na mensagem.


500 unexpected_error

APITipo de erroRefletido no widget?
AggregationBelvoSim
EnrichmentBelvoSim
Payment InitiationBelvoSim
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 erro ocorre quando nós (Belvo) encontramos um erro interno do sistema (desculpe por isso) ou devido a uma resposta não suportada da instituição.

Este tipo de erro pode ser intermitente ou persistente.

Solução

Recomendamos que você tente fazer sua solicitação original no máximo três vezes, caso o problema seja intermitente.

Se o erro continuar ocorrendo com a mesma solicitação, entre em contato com nossa equipe de suporte, certificando-se de incluir o request_id que você recebe na mensagem de erro.

Mensagem de erro do widget

IdiomaTítulo do erroDescrição do erro
🇬🇧
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
🇪🇸
Espanhol
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