Documentação da API Belvo (1.221.0)

Introdução

Alcance novos públicos e converta mais usuários conectando-se fácil e seguramente aos dados financeiros deles, entendendo seu comportamento e possibilitando pagamentos instantâneos com open finance. Através da nossa API, você pode acessar:

Informações Disponíveis e Métodos de Pagamento

A Belvo é uma API de open banking para a América Latina que permite que empresas acessem informações bancárias e fiscais de maneira segura e ágil.

Através da nossa API, você pode acessar:

  • Informações Bancárias no Brasil
  • Informações de Emprego no Brasil
  • Informações de Emprego no México
  • Informações Fiscais no México
  • Informações Fiscais no Chile

Você também pode usar nossa API para realizar pagamentos em:

  • Brasil
  • México

Dicionários de Dados

Se você deseja a documentação de resposta em formato Excel ou CSV, por favor, faça o download a partir do nosso Repositório Público no GitHub: Belvo Open Finance Data Dictionaries.

Nossos arquivos EXCEL e CSV estão adicionalmente localizados em Espanhol e Português (Brasil).

Ambientes

Atualmente, oferecemos dois ambientes: sandbox e produção.

Sandbox

Disponível para:

  • 🟢 Agregação e Enriquecimento
  • ⚪️ Iniciação de Pagamento

Use nosso ambiente Sandbox para construir sua integração. Oferecemos dados fictícios que imitam casos de uso do mundo real, o que significa que você pode testar todos os endpoints, usar o widget e implementar webhooks - exatamente como faria com dados reais!

Tudo o que você precisa para começar com o ambiente Sandbox é obter suas chaves de API. Recomendamos fortemente que você comece a criar sua integração neste ambiente.

Produção

Disponível para:

  • 🟢 Agregação e Enriquecimento
  • 🟢 Iniciação de Pagamento

Depois de testar sua integração no ambiente Sandbox e estar pronto para entrar em operação, você precisará solicitar acesso ao nosso ambiente de Produção. Após solicitar o acesso, nossa equipe de Vendas entrará em contato para agendar uma reunião apenas para garantir que suas necessidades sejam atendidas, e então você precisará passar por um processo de certificação com um de nossos engenheiros para garantir que sua integração esteja funcionando de forma otimizada. Para se preparar para a reunião de certificação, basta seguir nossa lista de verificação de Integração.

Uma vez que sua integração esteja certificada, tudo o que você precisará fazer é:

  • Solicitar chaves de API de Produção (e alterar suas chaves de API do Sandbox no código para estas novas).
  • Alterar a URL base para a qual você faz solicitações de sandbox.belvo.com para api.belvo.com.
  • Se você estiver usando webhooks, certifique-se de definir uma URL de Produção para seus webhooks.

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 na 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 da Belvo fornecidas não são válidas.
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.
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.

Tratamento de Erros

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

[
    {
      "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 da Belvo para investigações.
  • message: descrição legível do erro.
  • 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.

Identificador de Solicitação

Quando você precisar de ajuda com um erro específico, inclua o identificador de solicitação (request_id) em sua mensagem para a equipe de suporte da Belvo. Isso acelerará as investigações e fará com que você volte a funcionar rapidamente.

Códigos de Erro e Solução de Problemas

Para uma lista completa de erros e como solucioná-los, consulte nosso artigo dedicado Tratamento de Erros.

Política de Repetição

Erros 50x

Implemente uma repetição automática exponencial de até cinco tentativas. Recomendamos usar um intervalo base de três segundos com um fator de dois. Por exemplo, a primeira repetição deve ser após três segundos, a segunda repetição após seis segundos (2 * 3), a terceira repetição após 12 segundos (2 * 6), a quarta repetição após 24 segundos (2 * 12) e a quinta repetição 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 "Muitas Sessões", 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 para erros 50x.

Campos Obsoletos

Em nosso esquema, você pode ver que um campo foi marcado como deprecated. Isso significa que este campo não é mais mantido pela equipe da Belvo. Você ainda pode receber dados para este campo dependendo da instituição, no entanto, você não deve confiar neste campo.

OpenAPI: campos obrigatórios e anuláveis

Em nossa especificação de API, você verá que alguns parâmetros de resposta terão uma anotação required. De acordo com a especificação OpenAPI, quando um parâmetro de resposta é marcado como required, isso significa que a chave de resposta deve ser retornada. No entanto, o valor desse parâmetro de resposta pode ser null.

📘 Informação

Em resumo, qualquer parâmetro de resposta marcado como obrigatório será retornado pela nossa API, mas o valor pode ser definido como nulo.

Baixar o arquivo de descrição OpenAPI
Idiomas
Servidores
Mock server

https://developers.belvo.com/_mock/pt-br/apis/belvoopenapispec/

Ambiente de Testes

https://sandbox.belvo.com/

Institutions

Uma instituição é uma entidade da qual a Belvo pode acessar informações. Pode ser uma:

  • instituição bancária, como o Nubank Brasil.
  • instituição fiscal, como o Servicio de Administración Tributaria (SAT) no México.
  • instituição de emprego, como o Instituto Mexicano del Seguro Social (IMSS) no México ou o Instituto Nacional do Seguro Social (INSS) no Brasil.
Operações

Modificar a recuperação de dados de um link

Requisição

Modificar as configurações de recuperação de dados para um link específico. Atualmente, você pode:

  • Alterar o modo de acesso de um link de single para recurrent ou de recurrent para single.
  • Modificar o período stale_in para o link.
  • Modificar os recursos históricos que você deseja recuperar para o link (fetch_resources).

Alterando o access_mode de um link

Quando você altera um link de single para recurrent, no dia seguinte é acionada uma atualização histórica dos recursos principais para o link (resultando no recebimento de webhooks de historical_update para o link). Você será cobrado por essas atualizações históricas.

Modificando stale_in

Se você apenas modificar o período stale_in para um link, isso não acionará uma atualização histórica. Para acionar uma atualização histórica para o link, você deve alterar o access_mode.

Modificando fetch_resources

Se você apenas modificar o fetch_resources para um link, isso não acionará uma atualização histórica. Para acionar uma atualização histórica para o link, você deve alterar o access_mode.

Security
basicAuth
Caminho
idstring(uuid)obrigatório

O link.id para o qual você deseja alterar o access_mode.

Exemplo: e4bb1afb-4a4f-4dd6-8be0-e615d233185b
Corpoapplication/jsonobrigatório
access_modestring

O tipo de link a ser criado.

  • Use single para fazer requisições POST ad hoc únicas para contas, proprietários e transações.
  • Use recurrent para que o Belvo acesse informações de forma recorrente, garantindo que você sempre tenha dados atualizados de contas, proprietários, saldos e transações.

Para mais informações, consulte nosso artigo de Links.

Padrão "recurrent"
Enum"single""recurrent"
stale_instring^\d{1,3}d$

Indica por quanto tempo qualquer dado derivado do usuário deve ser armazenado no banco de dados da Belvo para o link (tanto único quanto recorrente). Por exemplo, se você enviar 90d, a Belvo removerá qualquer dado relacionado ao usuário de seu banco de dados após 90 dias. Para mais informações, confira a seção stale_in do nosso artigo sobre controles de retenção de dados.

📘 Informação

A Belvo removerá dados apenas para links que não foram atualizados no período que você fornecer em stale_in. A Belvo removerá dados apenas para links que não foram atualizados no período que você fornecer em stale_in.

Por padrão, a Belvo armazena dados do usuário por 365 dias, a menos que o link seja deletado.

Exemplo: "42d"
fetch_resourcesArray of strings

Uma matriz de recursos para os quais você gostaria de receber uma atualização histórica.

Para instituições bancárias, você pode selecionar os seguintes recursos:

  • ACCOUNTS
  • OWNERS
  • TRANSACTIONS
  • BILLS
  • INVESTMENTS
  • INVESTMENT_TRANSACTIONS
  • INCOMES
  • RECURRING_EXPENSES
  • RISK_INSIGHTS

Para instituições fiscais, você pode selecionar os seguintes recursos:

  • FINANCIAL_STATEMENTS
  • INVOICES
  • TAX_COMPLIANCE_STATUS
  • TAX_RETENTIONS
  • TAX_RETURNS
  • TAX_STATUS

Para instituições de emprego, você pode selecionar os seguintes recursos:

  • EMPLOYMENT_RECORDS (Apenas para IMSS e ISSTE do México)
  • EMPLOYMENT_METRICS (Apenas para IMSS do México)
  • EMPLOYMENTS (Apenas para INSS do Brasil)
Exemplo: ["ACCOUNTS","TRANSACTIONS"]
curl -i -X PATCH \
  -u <username>:<password> \
  https://developers.belvo.com/_mock/pt-br/apis/belvoopenapispec/api/links/e4bb1afb-4a4f-4dd6-8be0-e615d233185b/ \
  -H 'Content-Type: application/json' \
  -d '{
    "access_mode": "single",
    "stale_in": "42d",
    "fetch_resources": [
      "ACCOUNTS",
      "TRANSACTIONS"
    ]
  }'

Respostas

Ok

Corpoapplication/json
idstring(uuid)

Identificador único da Belvo para o item atual.

Exemplo: "0d3ffb69-f83b-456e-ad8e-208d0998d71d"
institutionstring

Nome da instituição segundo a Belvo.

Exemplo: "erebor_mx_retail"
access_modestring or null

O tipo de link. Para mais informações, consulte nosso artigo de Links. Retornamos um dos seguintes valores enum: - single - recurrent - null

Enum"single""recurrent"null
Exemplo: "recurrent"
last_accessed_atstring or null(date-time)

O timestamp ISO-8601 do acesso mais recente e bem-sucedido da Belvo à instituição para o link fornecido.

Exemplo: "2021-03-09T10:28:40.000Z"
created_atstring(date-time)

O carimbo de data e hora ISO-8601 de quando o ponto de dados foi criado no banco de dados da Belvo.

Exemplo: "2022-02-09T08:45:50.406032Z"
external_idstring[ 3 .. 256 ] characters

Um identificador adicional para o link, fornecido por você, para armazenar no banco de dados da Belvo. Não pode incluir nenhuma Informação Pessoal Identificável (PII). Deve ter pelo menos três caracteres.

Se identificarmos que o identificador contém PII, forçaremos um valor null. Para mais informações, consulte nosso artigo sobre criação de links.

Exemplo: "56ab5706-6e00-48a4-91c9-ca55968678d9"
institution_user_idstring[A-Za-z0-9\-=_]{44}

📘 Info

Aplicável apenas para links criados após 08-02-2022.

Uma string única de 44 caracteres que pode ser usada para identificar um usuário em uma determinada instituição.

📚 Confira nosso artigo no DevPortal sobre como evitar links duplicados para mais informações e dicas sobre como usá-la.

Exemplo: "sooE7XJWEKypZJR603ecaWYk-8Ap0oD8Nr1pBQ4eG9c="
statusstring

O status atual do link. Para mais informações, consulte nosso artigo sobre Link no devportal.
Retornamos um dos seguintes valores:

  • valid
  • invalid
  • unconfirmed
  • token_required
Enum"valid""invalid""unconfirmed""token_required"
Exemplo: "valid"
created_bystring(uuid)

O ID único para o usuário que criou este item.

Exemplo: "bcef7f35-67f2-4b19-b009-cb38795faf09"
refresh_ratestring or null

A taxa de atualização para o link recorrente. Para mais informações, consulte nossa documentação de links recorrentes em nosso DevPortal. Retornamos um dos seguintes valores de enum:

  • 6h
  • 12h
  • 24h
  • 7d (padrão)
  • 30d (uma vez por mês)
  • null (para links únicos)
Padrão "7d"
Enum"6h""12h""24h""7d""30d"null
Exemplo: "7d"
credentials_storagestring^(store|nostore|\d{1,3}d)$

Indica se as credenciais devem ou não ser armazenadas (e a duração para a qual as credenciais serão armazenadas).

  • Para links recorrentes, isso é definido como store por padrão (e não pode ser alterado).
  • Para links únicos, isso é definido como 365d por padrão.

Pode ser:

  • store para armazenar credenciais (até que o link seja excluído)
  • nostore para não armazenar credenciais
  • Qualquer valor entre 1d e 365d para indicar o número de dias que você deseja que as credenciais sejam armazenadas.

Para mais informações, confira a seção credentials_storage do nosso artigo sobre controles de retenção de dados.

Exemplo: "27d"
fetch_resourcesArray of strings

Um array de recursos para o qual você receberá uma atualização histórica.

Exemplo: ["ACCOUNTS","TRANSACTIONS"]
stale_instring^\d{1,3}d$

Indica por quanto tempo qualquer dado derivado do usuário deve ser armazenado no banco de dados da Belvo para o link (tanto único quanto recorrente). Por exemplo, se você enviar 90d, a Belvo removerá qualquer dado relacionado ao usuário de seu banco de dados após 90 dias. Para mais informações, confira a seção stale_in do nosso artigo sobre controles de retenção de dados.

📘 Informação

A Belvo removerá dados apenas para links que não foram atualizados no período que você fornecer em stale_in. A Belvo removerá dados apenas para links que não foram atualizados no período que você fornecer em stale_in.

Por padrão, a Belvo armazena dados do usuário por 365 dias, a menos que o link seja deletado.

Exemplo: "42d"
Resposta
application/json
{ "id": "0d3ffb69-f83b-456e-ad8e-208d0998d71d", "institution": "erebor_mx_retail", "access_mode": "recurrent", "last_accessed_at": "2021-03-09T10:28:40.000Z", "created_at": "2022-02-09T08:45:50.406032Z", "external_id": "56ab5706-6e00-48a4-91c9-ca55968678d9", "institution_user_id": "sooE7XJWEKypZJR603ecaWYk-8Ap0oD8Nr1pBQ4eG9c=", "status": "valid", "created_by": "bcef7f35-67f2-4b19-b009-cb38795faf09", "refresh_rate": "7d", "credentials_storage": "27d", "fetch_resources": [ "ACCOUNTS", "TRANSACTIONS" ], "stale_in": "42d" }

Widget Access Token

Operações

Consents

Um consentimento é uma permissão dada pelo usuário final para acessar seus dados financeiros na Rede de Open Finance no Brasil.

Operações

Owners

Um proprietário representa a pessoa que tem acesso a um Link e é o proprietário de todas as contas dentro do Link.

Você pode usar este endpoint para obter informações úteis sobre seu cliente, como:

  • seu nome completo
  • informações de contato principais
  • informações sobre o documento de identidade que usaram ao abrir a conta
Operações

Accounts

Uma conta é a representação de uma conta bancária dentro de uma instituição financeira. Um usuário pode ter uma ou mais contas em uma instituição.

Por exemplo, um usuário (ou link) pode ter uma conta corrente, vários cartões de crédito e uma conta de empréstimo.

Consultar as informações da conta de um usuário é útil, pois você pode obter informações sobre:

  • quais tipos de contas o usuário possui.
  • o saldo de cada conta (poupança, corrente, cartão de crédito, empréstimo, etc.).
  • informações detalhadas sobre os gastos com cartão de crédito.
  • a situação atual de quaisquer empréstimos que possam ter.
Operações

Balances

Um saldo é a quantidade de dinheiro disponível em uma determinada conta bancária (corrente ou poupança) em um determinado momento.

Operações

Transactions

Uma transação contém as informações detalhadas de cada movimento dentro de uma conta. Por exemplo, uma compra em uma loja ou em um restaurante.

Operações

Bills

Uma bill refere-se à fatura do cartão de crédito que um usuário recebe para uma determinada conta.

Operações

Investments Brazil

Operações

Investment Transactions Brazil

Operações

Employments Brazil

Nosso recurso de empregos para o Brasil permite que você obtenha uma visão abrangente do histórico de emprego atual e das informações salariais do seu usuário.

Para cada usuário, nós retornamos:

  • histórico de trabalho (incluindo ocupações e dados do empregador)
  • informações salariais históricas e atuais (por empregador)

No momento, o recurso de empregos está disponível para:

  • 🇧🇷 Brasil (INSS)
Operações

Employment Records Mexico

Nosso recurso de registros de emprego para o México permite que você obtenha uma visão abrangente das contribuições atuais para a seguridade social e do histórico de emprego do seu usuário.

Com o recurso de registros de emprego da Belvo para o México, você pode acessar informações sobre as contribuições atuais para a seguridade social e o histórico de emprego do seu usuário. Para cada usuário, retornamos:

  • dados pessoais
  • histórico de trabalho
  • salário base diário histórico e atual
  • e mais!

No momento, o recurso de registros de emprego está disponível para:

  • 🇲🇽 México (IMSS)
  • 🇲🇽 México (ISSSTE)
Operações

Invoices

Operações

Tax compliance status

Operações

Tax returns

Operações

Tax retentions

Operações

Tax status

Operações

Financial Statements

Operações

Invoices Chile

Operações

Tax Status Chile

Operações

Debt Reports Chile

Operações

Incomes

Use o endpoint Incomes para obter insights sobre as fontes de renda de uma conta nos últimos 365 dias. O endpoint é particularmente útil quando você deseja verificar a renda de uma pessoa.

📘 Info

O recurso incomes está disponível apenas para contas Corrente e Poupança associadas a links bancários.

Operações

Recurring Expenses

A API de Despesas Recorrentes da Belvo permite que você identifique os pagamentos regulares de um usuário para serviços de assinatura, como Netflix ou assinaturas de academia, bem como pagamentos de serviços públicos, como contas de eletricidade ou telefone. Nós retornamos informações de até 365 dias.

📘 Informação

O recurso de despesas recorrentes está disponível apenas para contas Corrente, Poupança e de Cartão de Crédito associadas a links bancários.

Operações

Risk Insights

Operações

Employment Metrics

Operações

Payment Institutions (Brazil)

Uma instituição de pagamento é uma entidade da qual a Belvo pode acessar informações. Você pode ver uma lista completa de instituições disponíveis para pagamentos fazendo uma solicitação de List para este endpoint.

Operações

Customers (Brazil)

Um customer é o pagador que vai transferir fundos para sua conta bancária. Você precisa criar um customer para receber pagamentos de entrada na conta bancária da sua organização.

Operações

Bank Accounts (Brazil)

Para receber pagamentos de entrada na conta bancária da sua organização, você deve registrar as contas bancárias (individuais e empresariais) usando a Payments API da Belvo.

  • Contas bancárias individuais devem ser criadas para cada pagador (seu cliente).
  • Contas bancárias empresariais precisam ser criadas para o beneficiário do pagamento (sua organização).
Operações

Payment Intents (Brazil)

Um payment intent é um ponto único de acesso para criar pagamentos usando qualquer método de pagamento oferecido pela Belvo.

Um payment intent captura todas as informações de pagamento (como o valor a ser cobrado, a descrição do pagamento, o provedor, etc.) e guia seus clientes através do fluxo de pagamento.

Nota: Para instituições que exigem o username_type no array form_fields, você deve enviar esse valor na sua solicitação PATCH.

Operações

Payment Authorizations (Brazil)

Uma Autorização de Pagamento é o consentimento que seu usuário dá para que você debite dinheiro de suas contas. Você precisa realizar uma Autorização de Pagamento por ‘contrato’ (por exemplo, se sua empresa fornece tanto eletricidade quanto água, mas elas são cobradas separadamente, então você criará duas Autorizações de Pagamento separadas).

Assim que o usuário confirmar a autorização, você precisará escutar um webhook PAYMENT_AUTHORIZATION com o status definido como AUTHORIZED. Assim que você receber esse webhook, o processo de autorização estará completo, e você poderá cobrar seu usuário.

O que é uma cobrança?

Uma cobrança representa o pagamento individual (débito) que seu cliente fará.

Cabeçalho de Versão

O recurso de Autorização de Pagamento requer que você envie o cabeçalho X-Belvo-API-Resource-Version configurado para Payments-BR.V2.

Operações

Biometric Pix Widget Access Token (Brazil)

Use as solicitações de Token do Biometric Pix Widget para criar um token de acesso para Pagamentos Biométricos.

Operações

Enrollments (Brazil)

Operações

Payment Transactions (Brazil)

Cada vez que você recebe um pagamento de entrada de um cliente, uma transação é criada no banco de dados da Belvo.

Você pode usar o recurso de Transações de Pagamento para obter informações úteis sobre uma transação, bem como a cobrança específica associada a ela.

Operações