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:
- Solicitar autorização do cliente para acessar os dados do banco
- Baixar automaticamente todas as transações do período
- Cruzar com os lançamentos do ERP
- 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 é:
- Seu sistema registra-se no Diretório de Participantes do BACEN
- Gera um certificado digital para autenticação mútua (mTLS)
- Inicia o fluxo OAuth 2.0 Authorization Code com PKCE
- Usuário autoriza no app/internet banking do banco
- Recebe o authorization code, troca pelo access token
- 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.