- Destinatário
- dev PHP/Node
- Objeto
- validar NFS-e
- Ambiente
- offline
- Dependências
- zero
- Testes
- 169
- Provedor
- ainda não contratado
Descubra que o XML está errado antes de pagar quem cobra para te dizer isso.
Provedores de NFS-e só liberam a homologação depois do pagamento. Você só descobre se a sua integração funciona quando o boleto já foi pago. Esta ferramenta responde à única pergunta que importa antes disso: o meu XML está correto?
Não é insight. É o que o programa imprime, com o caminho exato do campo e a linha. Roda offline, sem enviar sua nota para lugar nenhum.
O que confere
O que dá para quebrar sem você perceber
Um XML de NFS-e aceita sintaxe válida e continua errado. São esses os erros que passam pelo navegador e chegam na produção.
- Dígitos verificadores de
CPFeCNPJ, rejeitando sequências tipo 111.111.111-11 - Chave de acesso de 44 dígitos: DV mod-11, comprimento e a posição de ano/UF
- Aritmética dos totais —
vServicos,vISS,vBC,vLiq,vTotTrib— comDecimal, tolerância de 1 centavo - Alíquota implícita de cada item comparada com a alíquota declarada
- Campos obrigatórios ausentes ou vazios, com código específico para cada um
- Elementos fora de ordem dentro do mesmo pai
ListaServicovazia com total diferente de zero — a divergência silenciosa- Assinatura presente, com
ReferenceeSignatureValuenão vazios
São 91 códigos declarados, cada um com mensagem em português, caminho do campo, linha e coluna, e uma sugestão do que corrigir. Inteiramente offline.
pip install nfse-validator
nfse-validator nota.xml # valida um arquivo
nfse-validator --json nota.xml # para CI
nfse-validator --batch "./notas/*.xml" # valida um lote
cat nota.xml | nfse-validator - # em pipe
Contratar
A biblioteca é livre. O serviço, não.
O validador é MIT e está no GitHub — clone, use, fork, faça o que quiser. Não faz sentido eu cobrar pelo que você já pode baixar. O que tem valor é o trabalho que não está no repositório: rodar contra a sua cidade, no seu schema, e dizer o que está errado antes do seu cliente ver.
-
Biblioteca
R$ 0
Roda tudo local. Sem rede, sem conta, sem limite de uso. O código é seu.
Baixar do GitHubMIT · Python 3.11+ · zero dependências · sem telemetria
-
Auditoria de homologação
R$ 149 / invoice
Você manda as amostras do seu XML e o XSD da sua prefeitura. Eu devolvo o relatório dos erros com arquivo, linha, campo e correção — e, se algo não couber no validador genérico, um fork com a regra do seu município.
Pedir auditoriaPix ou transferência · 3 dias úteis · nota fiscal emitida
-
Plano municipal
R$ 39 /mês
Schema da sua cidade mantido num fork, atualizado quando a prefeitura muda o layout, mais o validador rodando em CI no seu repositório a cada XML que você gerar.
Assinar plano municipalCancele quando quiser · sem fidelidade
Não é consultoria fiscal
Isto valida estrutura e aritmética de XML. Não emite nota, não substitui a homologação da prefeitura, não é contabilidade e não substitui contador. Nada aqui é silosada fiscal ou jurídica.
Limites
O que a ferramenta não faz
Um validador que esconde o próprio alcance é pior do que nenhum. Estes são os limites, declarados, e não vão mudar com o tempo:
- Não verifica a criptografia da assinatura — confere a presença e a estrutura do XMLDSig
- Não valida o XSD específico da sua prefeitura, só o layout ABRASF comum
- Não emite NFS-e e não substitui homologação
- A ordem dos elementos é heurística, não é o XSD oficial
- Nunca envia seu XML para nenhum servidor
9 dos 91 códigos ainda não são testados
Eles estão declarados no catálogo mas nenhum caso conhecido os dispara. Preferimos listar a dívida a esconder atrás de um número redondo. A lista está no README.
No navegador
Sem instalar nada, se preferir
A mesma lógica de validação roda em um arquivo HTML único: cole ou arraste o arquivo e o resultado aparece na hora. Funciona offline e no celular, sem nenhum recurso externo.