§1O problema
Todo mês é preciso achar a fatura de cada gasto da empresa, em e-mails, sites e papel, e ligá-la ao lançamento do banco para a contabilidade. Era trabalho manual repetitivo.
§2O que eu construí
- Tela de duas colunasGastos do extrato e faturas, com arrastar e soltar, filtros, visualização em cards ou tabela; ligar, aprovar e remover.
- ScrapersCerca de uma dúzia, para baixar faturas digitais de serviços e e-mail.
- Faturas físicasFoto ou lote do celular, OCR com IA e validação.
- Matcher em camadasLiga fatura e lançamento automaticamente, com explicação do porquê.
- PainéisPainel de processos longos com progresso, painel executivo e módulo de impressão.
- IntegraçõesEnvio das faturas ao TOConline e extrato via Open Banking.
- ManutençãoAuditorias e scripts de correção.
§3As partes difíceis
5 itens- 01
Conciliação em camadas
Ligações manuais protegidas e confiança por camada.
- 02
OCR de faturas heterogêneas com IA
Validando datas, valores e emissor; reprocessar sem custo repetido.
- 03
Caminhos relativos ao volume
Guarda que rejeita caminhos absolutos, evitando reprocessar centenas de PDFs sem querer.
- 04
Registro de jobs longos em memória
Alimentado linha a linha por scripts externos, para a barra de progresso andar.
- 05
Chamadas de IA centralizadas
Retry de parse JSON e geração de um item por chamada para evitar truncamento.
§4Resultado
Em uso, com banco real e centenas de faturas já processadas.
§5Stack
- Next.js 16
- React
- TypeScript
- SQLite (better-sqlite3)
- Puppeteer (scrapers)
- LLM por linha de comando para OCR e classificação
- Open Banking (Enable Banking)
- API do TOConline
- tsx
- pm2