nfse-watch · chr-z

Objeto
ver schema
Entrada
2 XSD
Ambiente
offline
Dependências
zero
Testes
230
Em CI
sai ≠ 0

A prefeitura mudou o XSD. Você ficou sabendo pelo erro 500.

Em duas palavras de quem já levou: “A prefeitura da minha cidade do nada, em pleno dia 23/12 comunicou que a partir do dia 01/01…” Diff os dois schemas e receba a lista do que parou de funcionar — e o que fazer com cada item.

saída real $ nfse-watch --perfil cidade.json --esquema-antes v1.xsd --esquema-depois v2.xsd
[QUEBRADO] Vila Real do Planalto (SP/3550999)
NFSEW001 Namespace divergente — o perfil emite v1, o provedor passou a servir v2
→ Mude o namespace e regenere a serialização. Se o XSD antigo ainda responder, emita em paralelo até a prefeitura cortar o anterior.
NFSEW002 Elemento obrigatório removido — OptanteSimplesNacional
→ Campo que não existe mais no schema é rejeição na hora. Remova da serialização.
veredito: FALHA · exit 1

Cada alerta traz o campo, o motivo e a ação. Não é “algo mudou”: é o que fazer. Roda offline, e roda em CI a cada deploy.

O que ele decide

Regras fixas, não palpite

Um dev precisa confiar no alerta e conseguir explicar ele para o contador. Por isso o motor é determinístico — 18 códigos, sem machine learning, cada um com regra explícita e testada.

pip install nfse-watch

# um município
nfse-watch --perfil perfis/sp.json --esquema-antes antes.xsd --esquema-depois depois.xsd

# a frota inteira, ordenado por urgência
nfse-watch --todos perfis/

# no CI
nfse-watch --todos perfis/ --json

Contratar

A biblioteca é livre. Vigiar os seus municípios, não.

O código é MIT e está no GitHub. O serviço é manter o diff dos schemas Rodando por você — porque alguém precisa lembrar de baixar o XSD novo da prefeitura e comparar, e ninguém lembra.

Não consulta a prefeitura sozinho

Isto diffa dois schemas que você fornece. Não baixa nada do site da prefeitura, não envia nada para SEFAZ, não substitui homologação e não é aconselhamento fiscal. A parte que exige gente —ligar com a prefeitura, obter o XSD novo — continua sendo sua.

Limites

O que isto não é