Consolidar posição de caixa de vários bancos com n8n
Como consolidar a posição de caixa de vários bancos a partir dos OFX, com n8n, Google Drive e Sheets, e receber alerta de saldo mínimo. Passo a passo.
TL;DR
- Você monta um fluxo no n8n que lê os OFX de N bancos (de uma pasta do Google Drive) e escreve a posição consolidada no Google Sheets, com alerta de saldo mínimo.
- O ganho: de 5 logins e cópia na mão (uns 20 min/dia) para 1 clique.
- O fluxo separa conta de cartão e valida cada arquivo, então o total só fecha sobre o que está OK.
- Pré-requisito não-óbvio: 1 arquivo OFX por banco/conta (a convenção que evita 90% dos erros).
- Não é conciliação nem projeção: é a foto da posição de hoje, automatizada.
Consolidar a posição de caixa de vários bancos costuma ser uma tarefa manual: abrir cada internet banking, copiar o saldo e somar numa planilha. Dá pra automatizar isso lendo os arquivos OFX (o extrato que todo banco exporta) e somando o saldo de cada um, sem digitar valor nenhum. Abaixo está o passo a passo para montar esse fluxo no n8n.
O que dá pra fazer (e o ganho real)
Toda manhã a mesma rotina: abrir o internet banking do Banco do Brasil, do Itaú, do Bradesco, do Santander e do Sicredi, anotar o saldo de cada um numa planilha e mandar a posição consolidada pra diretoria. São 5 logins, 5 cópias na mão e uns 20 minutos que se repetem todo dia. Pior: quando o caixa aperta, a gente costuma perceber tarde.
Montei um fluxo no n8n que faz isso sozinho. Eu jogo os 5 arquivos OFX numa pasta do Google Drive, clico em um botão, e ele me devolve no Google Sheets a posição consolidada (uma linha por banco + o total) com um alerta de ”🔴 abaixo do mínimo” ou ”🟢 dentro”. Os 20 minutos viraram um clique.
O que você vai conseguir fazer ao final:
- Somar o saldo de N bancos a partir dos OFX, sem digitar valor nenhum.
- Separar automaticamente o que é conta do que é cartão (cartão não é caixa).
- Receber um alerta quando o caixa consolidado furar o mínimo que você definir.
- Ter uma validação que avisa se algum arquivo veio errado, em vez de somar lixo.

Pré-requisitos
- Uma conta no n8n (serve a Cloud ou a self-hosted). O fluxo roda na sua instância.
- Google Drive e Google Sheets conectados no n8n (as credenciais OAuth do Google, que você pluga uma vez).
- Os OFX dos seus bancos. OFX é o formato de extrato que BB, Itaú, Bradesco, Santander, Caixa, Sicredi, Nubank e a maioria exporta no internet banking (procure por “exportar extrato” → OFX/Money).
Selo de governança (leia antes): este fluxo lê os OFX do seu Google Drive e escreve no seu Google Sheets, dentro da sua conta. Nada é copiado pra um sistema meu.
⚠️ Correção (13/07/2026). A versão original desta peça dizia que “o extrato não passa por nenhum servidor de terceiro”. Isso estava errado, e o erro importa, então vou ser exato sobre por onde o seu extrato passa:
- O Google é terceiro, sempre. O OFX fica guardado no Drive e a posição vai pro Sheets. É a sua conta, mas é a infra do Google. Isso vale nas duas opções abaixo.
- O n8n é um segundo terceiro, e só no Cloud. Se você roda no n8n Cloud, o download do arquivo e o parse do OFX acontecem nos servidores do n8n. Se você roda self-hosted, esse processamento fica na sua infra.
Traduzindo pra decisão: extrato sensível pede, no mínimo, self-hosted. E se a TI da sua empresa não permite extrato bancário no Google, não use este fluxo: use uma ferramenta que processe 100% local. Construí e testei tudo com dados fictícios (bancos de teste, valores redondos); você roda com os seus.
Uma convenção que evita 90% das dores: 1 arquivo = 1 conta. Exporte um OFX para cada banco e cada conta separadamente. É assim que o internet banking exporta de qualquer jeito, e é o que deixa a soma confiável.
Como fazer (passo a passo)
O fluxo tem 7 nós, nesta ordem.
Prefere não montar do zero? O fluxo pronto pra importar, com OFX de exemplo pra testar na hora, está no kit do fim da peça.
1. Comece pelo gatilho manual
Use um nó Manual Trigger (“Rodar Posição do Dia”). É de propósito: a posição de caixa nasce de você ter atualizado a pasta com os OFX do dia. Um gatilho automático mandaria a posição da diretoria sobre arquivo velho. A regra é simples: você atualiza a pasta, você clica, a posição sai.
2. Centralize tudo em um nó “Configurações”
Logo após o gatilho, um nó Edit Fields (Set) chamado “Configurações”. É o único nó que você edita no dia a dia. Coloque ali:
drive_folder_id = (ID da pasta do Drive onde você joga os OFX)
sheet_id = (ID da planilha de saída)
aba = Posicao Consolidada
saldo_minimo = 50000
nome_empresa = Sua Empresa LTDA
forcar_conta = (vazio, ou nomes de arquivo separados por vírgula)
O saldo_minimo é o seu colchão de caixa: abaixo dele, o fluxo acende o vermelho. O forcar_conta é um escape que explico no passo 5.

3. Liste e baixe os OFX da pasta
Dois nós do Google Drive em sequência:
- Listar OFX da Pasta (
resource: File/Folder,operation: Search): aponta para odrive_folder_iddas Configurações e filtra arquivos com.ofxno nome. Ele devolve um item por arquivo encontrado. Bota 5 OFX na pasta, ele devolve 5 itens. - Baixar OFX (
resource: File,operation: Download): baixa o conteúdo de cada arquivo (roda uma vez por item, automático).
4. Transforme o OFX em texto
Um nó Extract from File (operation: Text, campo de saída conteudo). O OFX é um arquivo de texto (tipo um HTML antigo). Esse nó converte o binário baixado em texto que o próximo nó consegue ler.
5. Consolide e valide (o cérebro)
Aqui mora a lógica, num nó Code (“Consolidar OFX”). Para cada arquivo, ele faz quatro coisas:
- Lê o saldo final. No OFX, o saldo do extrato fica na tag
LEDGERBAL. O código pega esse número. - Separa conta de cartão. OFX de cartão de crédito usa um envelope diferente (
CREDITCARDMSGSRSV1). O saldo de um cartão é fatura, não dinheiro em caixa, então cartão fica fora do total. - Valida o arquivo. Cada OFX ganha um veredito:
OK,MULTI-CONTA(tem mais de uma conta no mesmo arquivo, fere a convenção),SEM SALDO(não achou o LEDGERBAL),INVÁLIDO(não parece OFX),DUPLICADO(mesmo banco e conta repetidos, evita contar duas vezes) ouCARTÃO. - Soma só os OK. O total em caixa é a soma dos saldos dos arquivos que passaram na validação. Os outros aparecem na lista marcados, mas não entram na conta.
O trecho central do código é este (cole no nó Code, em JavaScript):
const ledM = txt.match(/<LEDGERBAL>([\s\S]*?)<\/LEDGERBAL>/i);
const saldo = ledM ? num(tag(ledM[1], 'BALAMT')) : null;
const temCC = /<CCACCTFROM>|<CREDITCARDMSGSRSV1>|<CCSTMTRS>/i.test(txt);
const temBank = /<BANKACCTFROM>|<STMTRS>/i.test(txt);
let ehCartao = temCC && !temBank;
if (!ehOfx) validacao = 'INVALIDO: nao parece OFX';
else if (nContas > 1 || nLedger > 1) validacao = 'MULTI-CONTA: separe 1 conta por arquivo';
else if (saldo == null) validacao = 'SEM SALDO: LEDGERBAL ausente';
else if (ehCartao) validacao = 'CARTAO: fora do caixa';
else if (vistos[chave]) validacao = 'DUPLICADO: ' + chave + ' ja contado';
else { validacao = 'OK'; entra = true; total += saldo; }
No fim, ele compara o total com o saldo_minimo e monta o alerta: 🔴 furou o minimo por R$ X (aja hoje) ou 🟢 dentro do minimo. Se algum arquivo deu problema, acrescenta ⚠️ N arquivo(s) com problema: confira antes de confiar no total.
Sobre o forcar_conta: alguns bancos (o Nubank é o caso clássico) exportam até a conta no envelope de cartão. Por padrão o fluxo joga isso fora do caixa, pra não somar fatura como dinheiro. Se você sabe que aquele arquivo é uma conta (uma NuConta, por exemplo), bota o nome dele em forcar_conta nas Configurações e ele passa a contar.

6. Escreva no Google Sheets
Um nó Google Sheets (operation: Append) aponta para o sheet_id e a aba das Configurações e escreve uma linha por arquivo + a linha TOTAL. A saída fica assim:
| data | arquivo | banco | conta | saldo_final | validacao |
|---|---|---|---|---|---|
| 09/06 | bb.ofx | 001 | 111 | 40.000,00 | OK |
| 09/06 | itau.ofx | 341 | 222 | 18.000,00 | OK |
| 09/06 | bradesco.ofx | 237 | 333 | 12.000,00 | OK |
| 09/06 | santander.ofx | 033 | 444 | 5.000,00 | OK |
| 09/06 | sicredi.ofx | 748 | 555 | 9,17 | OK |
| 09/06 | TOTAL EM CAIXA | (5 ok, 0 cartão, 0 problema) | 75.009,17 | status + alerta |

7. Rode
Joga os OFX na pasta do Drive e clica em Rodar Posição do Dia. Em segundos a planilha tem a posição consolidada e o alerta.
Como verificar se deu certo
Não confie no fluxo de olho fechado no primeiro dia. Faça o check que qualquer tesoureiro faria:
- Bata o total contra a soma na mão de um dia que você já conhece. Tem que dar igual ao centavo.
- Olhe a coluna
validacao. Se a linha TOTAL disserCONFERIR: há arquivo com problema, abra os arquivos marcados antes de confiar no número. UmDUPLICADOouMULTI-CONTAsignifica que o total pode estar errado se você ignorar. - Confira a separação de cartão. Se você tem um cartão na pasta, ele deve aparecer como
CARTÃO: fora do caixa, não somado.
Eu testei a lógica com 5 arquivos de propósito quebrados (1 conta boa, 1 com duas contas no mesmo arquivo, 1 sem saldo, 1 duplicado e 1 cartão). O fluxo somou só a conta boa (R$ 40.000), marcou os outros 4 com o motivo e avisou “⚠️ 3 arquivos com problema”. Era exatamente o comportamento que eu queria: na dúvida, ele não soma; ele avisa.
Armadilhas e quando NÃO usar
- OFX é foto, não filme. Esse fluxo te dá a posição de hoje (o saldo final de cada extrato). Ele não projeta o caixa de amanhã (entradas e saídas futuras não estão no OFX) e não concilia (não cruza extrato com o seu razão pra achar lançamento faltando). São outros trabalhos.
- Cartão na pasta engana se você forçar. Só use
forcar_contaquando tiver certeza de que aquele arquivo é conta. Forçar um cartão de verdade infla o caixa. - Multi-conta num arquivo só. Se o seu banco exporta conta + poupança + cartão num OFX único, o fluxo marca
MULTI-CONTAe não soma, de propósito. Exporte separado. - É nuvem. Repetindo o selo de governança: o extrato fica no seu Google e, se você roda no n8n Cloud, o conteúdo ainda passa pelos servidores do n8n na hora de executar (no self-hosted, não). Se isso não pode, este fluxo não é pra você.
O atalho: o fluxo pronto pra importar (R$9)
O passo a passo acima é 100% fazível: você monta os 7 nós, cola o código do nó Consolidar e pluga as credenciais. O que custa tempo é montar tudo do zero e ainda arranjar OFX pra testar sem usar o extrato de verdade da empresa. Se você quer pular essa parte, tem um kit:
- Fluxo n8n pronto: o arquivo do fluxo importável na sua instância. Os 7 nós já aparecem montados e conectados (com o código do nó Consolidar já dentro). Você pluga suas credenciais do Google e aponta pra sua pasta.
- 5 OFX de exemplo, com gabarito: cinco extratos de teste de bancos diferentes pra você rodar e ver a posição consolidada na hora e conferir contra o resultado esperado, antes de confiar o número no extrato real.
É o mesmo resultado da peça, sem montar nó por nó nem caçar arquivo de teste.
› O atalho · R$9
Importe o fluxo pronto em vez de montar os 7 nós
Leva o fluxo n8n completo (importável, com o nó Consolidar já codado) mais 5 OFX de exemplo com gabarito pra você rodar e conferir a posição consolidada na hora. O mesmo resultado da peça, sem montar nó por nó.
Baixar o fluxo por R$9 ›Entrega na hora · importa no seu n8n · garantia de 7 dias (CDC).
Perguntas relacionadas
Dá pra usar esse fluxo com qualquer banco?
Funciona com qualquer banco que exporte OFX, o que na prática cobre BB, Itaú, Bradesco, Santander, Caixa, Sicredi, Nubank e a maioria das instituições brasileiras (procure por “exportar extrato” no internet banking). O que o fluxo lê é o arquivo OFX, não o site do banco, então não importa quantas instituições diferentes você junta na pasta.
Preciso de servidor próprio pra rodar o n8n?
Não. Serve a versão Cloud do n8n ou uma instância self-hosted, o fluxo roda na sua instância de qualquer jeito. Além do n8n, você só precisa conectar as credenciais OAuth do Google Drive e do Google Sheets uma vez, porque é de lá que o fluxo lê os OFX e escreve a posição.
Quantas contas bancárias dá pra consolidar de uma vez?
Quantas você quiser, desde que respeite a convenção de 1 arquivo OFX por banco e por conta. O nó que lista a pasta do Drive devolve um item por arquivo encontrado, então cinco OFX viram cinco linhas e um total. Arquivo com mais de uma conta dentro é barrado como MULTI-CONTA e não entra na soma.
Isso substitui a conciliação bancária?
Não. O fluxo entrega a posição de caixa de hoje (o saldo final de cada extrato), e conciliação é outro trabalho: cruzar o extrato com o seu razão pra achar lançamento faltando ou divergente. Também não projeta caixa futuro, porque entradas e saídas que ainda não caíram não estão no OFX.
É seguro colocar extrato bancário no Google Drive?
Depende da política da sua empresa, e vale ser exato: o extrato fica guardado na infra do Google (sua conta, mas terceiro), nas duas formas de rodar. Além disso, no n8n Cloud o parse do arquivo acontece nos servidores do n8n, um segundo terceiro; no self-hosted, esse processamento fica com você. Se a TI não autoriza extrato bancário fora de casa, use uma ferramenta 100% local.
O saldo do cartão de crédito entra na posição de caixa?
Não. OFX de cartão vem num envelope diferente do de conta, o fluxo reconhece e marca o arquivo como CARTÃO, fora do total: saldo de cartão é fatura, não dinheiro em caixa. Quando o banco exporta a conta dentro do envelope de cartão (o Nubank faz isso), existe um campo de escape nas Configurações pra forçar a contagem.
Para se aprofundar
- Documentação do nó Code do n8n (JavaScript): docs.n8n.io.
- Especificação do formato OFX (o que é LEDGERBAL e os envelopes de conta/cartão): ofx.net.
- Precisa de privacidade máxima (extrato que nem entra na nuvem) ou de conciliação de verdade (cruzar extrato com razão)? O caminho é uma ferramenta que roda 100% na sua máquina, a skill de Conciliação Bancária da trilha de Tesouraria do Finance AI Lab. Este fluxo do Drive é a versão de conveniência; o local é a versão à prova de TI.
Gostou? Entra na lista.
Mais peças como essa. Sem spam, só o que funciona no Brasil real.