Gestão inteligente de Notas Fiscais de Serviço para Escritórios de Contabilidade
Aviso (03/06/2026): O portal NFS-e Nacional implementou hCaptcha nos endpoints de download de XML e DANFSe. O problema foi corrigido na v1.5.4 com a identificação de uma rota alternativa que não exige validação humana. Os downloads voltam a funcionar normalmente. Existe risco de que o portal passe a exigir token real nessa rota em versões futuras — se isso acontecer, os downloads voltarão a falhar e uma nova correção será necessária. O acompanhamento está na issue #1. O projeto está passando por uma grande reestruturação devido as varias mudanças ocorridas. Provavelmente estarei disponibilizando novamente a partir de hoje. Porém, provavelmente haverá alguns bugs a serem corrigidos.
O NFS-e Monitor é uma aplicação desktop para Windows que centraliza a gestão de Notas Fiscais de Serviço Eletrônicas (NFS-e) do portal NFS-e Nacional. Desenvolvida para escritórios de contabilidade que precisam gerenciar múltiplos clientes sem acessar o portal individualmente para cada um.
Acesse a página de releases e baixe o instalador NFS-e-Monitor-Setup-X.X.X.exe. Execute e siga o assistente. O programa se atualiza automaticamente quando novas versões são publicadas.
- Node.js v18 ou superior
- npm (incluído com o Node.js)
- Git
- Windows (o projeto só compila para Windows)
# 1. Clonar o repositório
git clone https://github.com/matheuscardosos/Nfs-e-Monitor.git
cd Nfs-e-Monitor
# 2. Instalar dependências
npm install
# 3. Iniciar em modo desenvolvimento
npm startO banco de dados SQLite é criado automaticamente em
%APPDATA%\NFS-e Monitor\nfse-manager.dbna primeira execução.
nfse-manager/
├── main.js # Processo principal Electron (janelas, tray, auto-update)
├── preload.js # Ponte segura entre main e renderer (contextBridge)
├── index.html # Interface principal do app
├── renderer/
│ ├── app.js # Lógica do renderer (toda interação com a UI)
│ └── styles.css # Estilos da interface
├── services/
│ ├── database.js # Inicialização e acesso ao banco SQLite (sql.js)
│ ├── ipc-handlers.js # Todos os handlers IPC do processo principal
│ ├── nfse-api.js # Integração com a API do portal NFS-e Nacional
│ ├── certificate.js # Leitura e parsing de certificados A1 (PFX)
│ ├── portal-status.js # Verificação de status do portal
│ └── pdf-report.js # Geração de relatórios PDF
├── scripts/
│ └── generate-banners.js # Gera os banners BMP usados no instalador NSIS
├── assets/ # Ícones SVG usados na interface
└── build/ # Recursos do instalador (ícone, banners BMP)
Use mensagens de commit em português, no imperativo, sem ponto final:
git add <arquivos>
git commit -m "Corrige download de XML quando hCaptcha ativo"
git push origin mainConvenções de prefixo (recomendadas, não obrigatórias):
| Prefixo | Quando usar |
|---|---|
Corrige |
Bug fix |
Adiciona |
Nova funcionalidade |
Atualiza |
Melhoria em algo existente |
Remove |
Remoção de código ou recurso |
Refatora |
Mudança interna sem impacto no comportamento |
Os banners BMP do instalador NSIS (installerHeader.bmp, installerSidebar.bmp, etc.) são gerados automaticamente a partir do ícone do projeto e da versão atual do package.json.
Execute antes de buildar:
npm run generate-banners
# ou diretamente:
node scripts/generate-banners.jsOs arquivos são gravados em build/. Não edite os BMPs manualmente — eles serão sobrescritos na próxima geração.
-
Atualize a versão em
package.json:# Edite o campo "version" em package.json, ex: "1.5.5" -
Gere os banners com a nova versão:
node scripts/generate-banners.js
-
Commit e tag:
git add package.json build/ git commit -m "Versao 1.5.5" git tag v1.5.5 git push origin main --tags -
O GitHub Actions (se configurado) faz o build e publica o release automaticamente. Caso contrário, buildar manualmente:
npm run build # Instalador gerado em dist/NFS-e-Monitor-Setup-X.X.X.exe
AGPL-3.0 © 2026 Matheus Cardoso Soares
Este software é distribuído sob a GNU Affero General Public License v3.0. Qualquer redistribuição ou versão modificada deve ser disponibilizada sob a mesma licença com o código-fonte completo.
Consulte também: Termos de Uso · Privacidade · Licenças de código aberto
Mantido por Matheus Cardoso Soares
