Desenvolvimento Web

Open Finance e APIs Bancárias: Como Integrar Dados Financeiros no Seu Sistema

Open Finance e APIs Bancárias: Como Integrar Dados Financeiros no Seu Sistema

O Open Finance (antes chamado Open Banking) revolucionou o acesso a dados financeiros no Brasil. Desde 2023, bancos e instituições financeiras são obrigados a expor APIs padronizadas que permitem o compartilhamento de dados do cliente (com sua autorização). Para desenvolvedores de sistemas financeiros e contábeis, isso abre possibilidades enormes.

O que é o Open Finance

Open Finance é um ecossistema regulado pelo Banco Central que permite que clientes autorizem o compartilhamento de seus dados financeiros entre diferentes instituições via APIs padronizadas. Inclui:

  • Dados cadastrais (nome, CPF/CNPJ, endereço, renda)
  • Contas correntes e poupanças (saldos e transações)
  • Cartões de crédito (faturas, transações, limites)
  • Produtos de crédito (empréstimos, financiamentos)
  • Investimentos
  • Previdência e seguros

Casos de uso para sistemas contábeis e ERPs

Conciliação bancária automática

O principal caso de uso para contabilidade. Com Open Finance, seu sistema pode:

  1. Solicitar autorização do cliente para acessar os dados do banco
  2. Baixar automaticamente todas as transações do período
  3. Cruzar com os lançamentos do ERP
  4. Gerar relatório de itens conciliados e pendências

Tempo economizado: de horas para segundos por empresa por mês.

Análise de crédito e fluxo de caixa

Com histórico de transações bancárias do cliente (com autorização), sistemas de crédito podem analisar padrões de fluxo de caixa de forma muito mais precisa do que com documentos contábeis defasados.

Categorização automática de despesas

As transações retornadas pelas APIs incluem descrições. Com IA (NLP), é possível categorizar automaticamente as despesas do cliente em categorias contábeis.

APIs abertas: Dados de produtos financeiros (sem autenticação)

Além dos dados do cliente (que exige OAuth 2.0), o Open Finance também expõe dados públicos de produtos sem autenticação:


import requests

# Lista de bancos participantes
bancos = requests.get(
    "https://data.directory.openbankingbrasil.org.br/participants"
)

# Taxas de empréstimo pessoal de um banco específico
# (URL de exemplo — varia por instituição)
taxas = requests.get(
    "https://openbanking.bradesco.com.br/open-banking/products-services/v1/personal-loans"
)

Autenticação: OAuth 2.0 com PKCE

Para acessar dados do cliente, o fluxo é:

  1. Seu sistema registra-se no Diretório de Participantes do BACEN
  2. Gera um certificado digital para autenticação mútua (mTLS)
  3. Inicia o fluxo OAuth 2.0 Authorization Code com PKCE
  4. Usuário autoriza no app/internet banking do banco
  5. Recebe o authorization code, troca pelo access token
  6. Usa o access token para chamar as APIs de dados

import requests
import base64, hashlib, secrets

def gerar_code_verifier_challenge():
    verifier = secrets.token_urlsafe(64)
    challenge = base64.urlsafe_b64encode(
        hashlib.sha256(verifier.encode()).digest()
    ).rstrip(b'=').decode()
    return verifier, challenge

verifier, challenge = gerar_code_verifier_challenge()

# URL de autorização
auth_url = (
    f"https://auth.banco.com.br/oauth/authorize"
    f"?response_type=code"
    f"&client_id=SEU_CLIENT_ID"
    f"&redirect_uri=https://seu_sistema.com/callback"
    f"&scope=openid accounts"
    f"&code_challenge={challenge}"
    f"&code_challenge_method=S256"
)
print(f"Redirecionar usuário para: {auth_url}")

Consultando transações de conta corrente


import requests

def buscar_transacoes(access_token, account_id, data_inicio, data_fim):
    headers = {
        'Authorization': f'Bearer {access_token}',
        'x-fapi-auth-date': 'data_atual_rfc',
        'x-fapi-customer-ip-address': 'ip_do_cliente',
        'x-fapi-interaction-id': 'uuid_unico_da_requisicao',
    }
    
    url = (
        f"https://openbanking.banco.com.br/open-banking/accounts/v2/"
        f"accounts/{account_id}/transactions"
        f"?fromBookingDateTime={data_inicio}T00:00:00Z"
        f"&toBookingDateTime={data_fim}T23:59:59Z"
    )
    
    resp = requests.get(url, headers=headers,
                        cert=('client_cert.pem', 'client_key.pem'))
    return resp.json()['data']

Plataformas intermediárias

Implementar Open Finance diretamente é complexo — exige certificado, registro no Diretório, infraestrutura de segurança e manutenção constante. Para a maioria dos casos, plataformas intermediárias são mais práticas:

  • Belvo: API única que agrega múltiplos bancos brasileiros e Latino-americanos
  • Pluggy: fintech brasileira especializada em Open Finance
  • Quanto: focado em análise de crédito via dados bancários

Com essas plataformas, a integração é feita com uma única API bem documentada, sem precisar lidar com as particularidades de cada banco.

Segurança e LGPD

Dados bancários são dados sensíveis. Cuidados obrigatórios:

  • Armazene tokens de acesso encriptados (nunca em texto puro)
  • Implemente refresh token rotation
  • Defina o menor escopo de permissão possível na autorização
  • Documente claramente o que é coletado e por quê (LGPD)
  • Implemente mecanismo de revogação de consentimento
  • Logs de auditoria para todos os acessos a dados financeiros

O Open Finance é uma das maiores oportunidades para desenvolvedores de fintechs e sistemas contábeis no Brasil. A regulamentação robusta e a obrigatoriedade de participação dos bancos criam um ecossistema único no mundo.

Tem um projeto em mente?

Somos especialistas em transformar ideias em produtos digitais. Apps, sites, automações e IA — vamos construir juntos.

Resposta rápida Orçamento sem compromisso +100 projetos entregues
Compartilhar: