Consentimento no Open Finance: o que diz a regulação e como desenhar uma jornada que converte
O que a Resolução Conjunta nº 1 exige do consentimento no Open Finance, o que mudou com a Resolução Conjunta nº 7 e boas práticas de UX para aumentar a taxa de conexão com segurança.
Atualizado em

Sem consentimento, nenhum dado de cliente circula no Open Finance. E um fluxo de consentimento mal desenhado derruba a taxa de conexão do seu produto. Por isso vale tratar o tema em duas frentes: o que a regulação exige e como transformar essa exigência numa experiência que o usuário conclua.
O que diz a regulação
A Resolução Conjunta nº 1/2020 disciplina o Open Finance e divide a solicitação de compartilhamento em três etapas: consentimento, autenticação e confirmação. Pelo art. 8º, elas acontecem exclusivamente por canais eletrônicos, de forma sucessiva e ininterrupta, com segurança, agilidade, precisão e conveniência.
O art. 10 diz que o consentimento deve:
- ser solicitado em linguagem clara, objetiva e adequada;
- referir-se a finalidades determinadas;
- ter prazo de validade compatível com essas finalidades;
- discriminar a instituição transmissora e os dados que serão compartilhados;
- incluir a identificação do cliente.
Sobre o prazo, um detalhe que confunde muita gente. A redação original limitava a validade a doze meses. A Resolução Conjunta nº 7, de 26/10/2023, mudou o texto para "prazo de validade compatível com as finalidades" (veja o texto consolidado). Muito conteúdo antigo ainda cita o limite de 12 meses, então confira sempre a versão vigente da norma.
A mesma resolução proíbe obter consentimento por contrato de adesão, por formulário com aceite já marcado ou de forma presumida, sem manifestação ativa do cliente.
A jornada do usuário
O FAQ do Open Finance Brasil descreve o fluxo do ponto de vista do cliente:
- Ele se identifica e dá o consentimento no canal da instituição que vai receber os dados, ou seja, no seu produto.
- É redirecionado para a instituição que detém os dados, onde autentica a identidade e confirma o compartilhamento.
- Volta ao ambiente de origem, que informa que o compartilhamento foi efetivado.
Cada troca de tela é um ponto em que o usuário pode desistir. O desenho da experiência pesa tanto quanto a integração técnica.
Boas práticas de UX para mais conexões concluídas
Explique o porquê antes de abrir o fluxo
Diga em uma frase o que o usuário ganha ao conectar a conta, por exemplo: "Conecte sua conta para importar o extrato automaticamente e parar de enviar planilhas". Finalidade clara é exigência da norma e também o melhor argumento que você tem.
Peça só o necessário
Um produto de conciliação provavelmente precisa de contas e transações, e não de investimentos. Com escopo menor, a tela de consentimento fica mais simples e o pedido parece mais razoável.
Avise sobre o redirecionamento
Conte ao usuário que ele vai para o aplicativo ou site do banco e depois volta. Quem não espera o redirecionamento tende a achar que algo quebrou.
Não confie só no retorno do navegador
O usuário pode fechar a aba antes de voltar ao seu produto. Por isso, na Malvo, o callback de sucesso do widget é best-effort, e a fonte da verdade sobre a conexão são os webhooks. Atualize o estado da conexão a partir dos eventos do servidor, não apenas do que acontece no navegador.
Mostre o estado da conexão
Exiba qual banco está conectado, desde quando e quando os dados foram atualizados pela última vez. Essa transparência reduz chamados de suporte.
Facilite revogar e renovar
O cliente pode revogar o consentimento quando quiser. Dê a ele um caminho claro para isso dentro do produto. Quando o consentimento estiver perto de expirar, ofereça a renovação de forma simples.
Renovar sem perder o histórico
Um erro comum acontece quando o consentimento expira: a aplicação cria uma conexão nova e perde o vínculo com os dados anteriores. Na Malvo, a renovação é feita no mesmo Item. O histórico continua lá, e contas e transações não aparecem duplicadas no seu banco de dados.
Checklist de conformidade e experiência
- A finalidade está descrita em linguagem simples?
- Os dados pedidos se limitam ao que essa finalidade exige?
- Nenhuma caixa de aceite vem marcada por padrão?
- O usuário sabe que será redirecionado ao banco?
- O estado da conexão é atualizado por webhook?
- Existe uma tela de gestão de conexões com opção de revogar?
- Existe fluxo de renovação antes do vencimento?
O que fica no servidor
Credenciais da API nunca devem chegar ao frontend. O padrão recomendado funciona assim: o backend se autentica com client ID e secret e gera um token de conexão de curta duração. Só esse token vai para o navegador, para abrir o widget. Toda leitura de dados acontece de servidor para servidor.
Conformidade que também converte
Um fluxo de consentimento bem feito atende à regulação e, ao mesmo tempo, aumenta a taxa de conexão. O usuário que entende a finalidade, vê um pedido enxuto e encontra o estado da conexão atualizado tem motivo para confiar e chegar até o fim.
O Connect Widget da Malvo já traz essa jornada pronta. Ele é hospedado, funciona com React, React Native, Flutter e script global, usa webhooks como fonte da verdade e renova o consentimento no mesmo Item. Veja como integrar o Connect Widget.
Continue a leitura

Webhooks vs. polling: como construir integrações de Open Finance que escalam
Comparação entre polling e webhooks em integrações bancárias, boas práticas de idempotência e processamento assíncrono, sincronização incremental e uma arquitetura de referência para Open Finance.
Ler artigo →
Categorização de transações bancárias: como transformar extratos em informação útil
Por que categorizar transações é difícil, como funciona um pipeline em camadas (regras do cliente, estabelecimento, MCC e palavras-chave) e como medir a qualidade da classificação.
Ler artigo →
Fluxo de caixa consolidado multibanco: como saber se o caixa cobre os vencimentos da semana
Como montar um caixa consolidado de todas as contas da empresa com Open Finance, evitar dupla contagem e cruzar com a agenda do ERP para um diagnóstico de liquidez de 7, 15 e 30 dias. Inclui o estágio atual do módulo da Malvo, em validação com parceiros.
Ler artigo →