Um normalizador de arquivos OFX moderno e cross-platform para compatibilidade com Microsoft Money e outros softwares de finanças pessoais legados.
- Interface Dupla: CLI para automação e GUI para uso interativo
- Cross-Platform: Funciona no Windows e Linux/Unix
- Arquitetura Modular: Estrutura MVC bem organizada
- Detecção Automática: Escolhe automaticamente a interface apropriada
- Compatibilidade Total: Testado com Microsoft Money e OFX 1.02/2.0
src/
├── normalizer/ # Lógica de normalização (Model)
├── helpers/ # Controle de fluxo (Controller)
├── config/ # Configurações da aplicação
└── views/ # Interfaces de usuário (View)
- Python 3.8+
- CustomTkinter (para interface gráfica no Windows)
pip install customtkinter# Normalizar um arquivo específico
python main.py "caminho/para/arquivo.ofx"
# Exemplo prático
python main.py "FEVEREIRO_ITAU.ofx"# Abrir interface gráfica (apenas no Windows)
python main.py- Codificação: Converte para CP1252 com
CHARSET:1252eENCODING:USASCII - Quebras de linha: Força CRLF para compatibilidade Windows
- Datas: Remove sufixos de timezone mantendo formato
yyyymmddhhmmss - Caracteres de controle: Remove caracteres ASCII problemáticos
- Blocos de transação: Reorganiza
<NAME>antes de<MEMO>
- Valores preservados: Mantém intactos valores, FITID e sinais
- Remoção segura: Remove apenas blocos
<BALLIST>completos - Validação: Preserva
<BANKTRANLIST>e dados essenciais
| Sistema | CLI | GUI | Status |
|---|---|---|---|
| Windows | ✅ | ✅ | Totalmente suportado |
| Linux | ✅ | ❌ | CLI disponível |
| macOS | ✅ | ❌ | CLI disponível |
# Processar múltiplos arquivos
for file in *.ofx; do python main.py "$file"; donefrom src.normalizer import Normalizer
normalizer = Normalizer()
result = normalizer.normalize_file("arquivo.ofx")O arquivo de configuração permite personalizar:
- Limite máximo para campo
<NAME>(padrão: 32 caracteres) - Codificação de saída
- Comportamento de tratamento de erros
Para melhores resultados:
- Valide o arquivo de saída com OFX Analyzer/Formatter
- Verifique se não há erros de parsing
- Confirme totais e unicidade antes de importar
Contribuições são bem-vindas! Por favor:
- Abra uma issue descrevendo o problema/melhoria
- Faça fork do projeto
- Crie uma branch para sua feature
- Submeta um Pull Request
- Mantenha mudanças conservadoras e focadas em compatibilidade
- Adicione testes quando aplicável
- Siga os padrões de código existentes
- Opções CLI avançadas (configurações personalizáveis)
- Heurísticas específicas por banco (Itaú, Nubank, Sicoob, etc.)
- Suporte a múltiplos formatos de saída
- Interface web opcional
- Testes automatizados abrangentes
MIT License - veja o arquivo LICENSE para detalhes.
Desenvolvido por: Brendown Ferreira (Br3n0k)
Empresa: NokTech
Versão: 2.0.0
- Comunidade open-source por manter workflows de finanças legados
- Usuários que testaram e forneceram feedback
- Contribuidores do projeto
💡 Dica: Para uso corporativo ou integração em sistemas maiores, considere usar a API modular através dos módulos em src/.