connectToken de 30 minutos e o widget produz um
Item — a representação de uma conexão entre um usuário e uma instituição. A partir daí, todos
os dados são lidos no servidor com a sua X-API-KEY.
A Malvo faz apenas agregação de dados. O Connect Widget conduz somente consentimentos de
recepção de dados (Items) — não há iniciação de pagamentos (ITP), Pix ou boletos.
Plataformas suportadas
O widget é a mesma aplicação hospedada emhttps://malvo.io/connect, embrulhada por SDKs nativos
de cada plataforma. Veja a visão geral dos SDKs para instalação e exemplos
completos.
Web / Script tag
Bundle versionado que expõe o global
window.MalvoConnect. Sem build, basta uma <script>.React / Next.js
Pacote
@malvo/react-connect — o componente monta o widget ao renderizar.React Native
Pacote
@malvo/react-native-connect para apps iOS e Android com React Native.Flutter
Pacote
flutter_malvo_connect para apps Flutter.Modelo de segurança
1
As credenciais ficam na infraestrutura da Malvo
O usuário digita as credenciais (ou autoriza via OAuth) na UI hospedada da Malvo, nunca na
sua aplicação. Você nunca vê nem armazena senhas de banco.
2
O connectToken não lê dados
O
connectToken só dirige o widget. Ele não consegue ler dados de produto
(contas, transações etc.): qualquer tentativa de usá-lo nessas rotas retorna 403 Forbidden.
Dados são lidos apenas server-side com X-API-KEY.3
Os webhooks são a fonte da verdade
Os callbacks do frontend são best-effort — o usuário pode fechar a aba antes do
onSuccess
disparar. O sinal autoritativo de que um Item está pronto são os webhooks
item/created / item/updated no seu backend. Veja Webhooks.Pré-requisito no backend
Toda integração precisa de um endpoint autenticado no seu backend que devolva umconnectToken
recém-gerado. A cadeia é: POST /auth (com clientId + clientSecret) → apiKey (TTL de 2h) →
POST /connect_token → accessToken (TTL de 30 min).
accessToken e o passa ao widget. Gere um token novo a cada montagem
do widget.
Parâmetros de inicialização
As opções abaixo formam o contrato comum do script tag, React, React Native e Flutter. Cada SDK também documenta opções específicas de plataforma, comooauthRedirectUri no mobile.
Obrigatório
Filtragem e seleção
UX
Modo de atualização
No widget hospedado/JavaScript e no componente React web,
oauthRedirectUri não é uma opção
local: ele é configurado server-side no objeto options do POST /connect_token (ou no
POST /items). Os SDKs React Native, Expo e Flutter também recebem o mesmo URI completo como
prop local para validar a retomada pelo navegador do sistema. O backend inclui um malvoFlowId
reservado e os SDKs só retomam quando ele corresponde ao Connect Token atual. Veja
OAuth.Callbacks
Quando o
onError retorna TOKEN_EXPIRED ou UNAUTHORIZED, gere um novo connectToken
(POST /connect_token) e reabra o widget. Os demais códigos seguem a tabela de erros de Item
da documentação de webhooks.
Eventos do onEvent
onEvent recebe o evento OPEN emitido pelo wrapper e as mensagens autenticadas do widget:
malvo:success, malvo:error e malvo:close. Os payloads são os mesmos dos callbacks
correspondentes. Não use telemetria de frontend como fonte de persistência; webhooks continuam
sendo o contrato autoritativo.
Diagrama de sequência
- A leitura de dados de produto é sempre server-side com
X-API-KEY; oconnectTokenrecebe403nessas rotas. - O cliente trata
onSuccessapenas como sinal de UX; a persistência é dirigida pelos webhooksitem/created→item/updated. - Um Item novo busca até 365 dias no Brasil ou o maior histórico disponível no Open Banking internacional; as atualizações seguintes são incrementais.
Próximos passos
Modo de atualização
Reconecte Items em
LOGIN_ERROR, WAITING_USER_INPUT ou OUTDATED.OAuth do Open Finance e Open Banking
Configure o
oauthRedirectUri e o redirect por plataforma.Customização
Marca, cores e conectores via Dashboard.
SDKs
Instalação e exemplos por plataforma.