Escritórios e times fiscais
Varra vários emitentes, entregue a fila em CSV/PDF e compare a evolução depois da correção do cadastro.
Quero avaliar o plano Escritório3 de agosto de 2026.
Data em que a UB12-10 passa a rejeitar NF-e de emitente no Regime Normal (CRT=3) sem o grupo IBSCBS, quando a regra for aplicável.
Entender a regra é a parte fácil. O problema é saber quais dos seus milhares de SKUs estão fora, e isso está todo no XML que você já tem guardado no disco.
A varredura é gratuita para sempre e de código aberto: sem cadastro, sem upload, sem conta. Exportação e automação nos planos pagos, com 14 dias de teste grátis.
O aplicativo local transforma ocorrências repetidas numa lista de produtos que o cadastro consegue corrigir.
Abra o aplicativo, arraste XMLs ou um ZIP e veja o dashboard local. Para ERP, servidor ou CI, a mesma análise continua disponível pelo terminal:
$ rtc-check ./xmls
RTC Check | prontidão para a Reforma Tributária
----------------------------------------------------
Corte da obrigatoriedade (CRT=3): 03/08/2026 (9 dias)
XMLs lidos ............... 4127
Notas em escopo (CRT=3) .. 3980
Itens analisados ......... 21544
Bloqueios ................ 8102
Alertas .................. 341
SKUs a corrigir .......... 214
214, não 8.102. Essa é a diferença que importa. O cadastro do produto se corrige uma vez; o mesmo SKU quebrado aparece em milhares de notas. Relatório que conta ocorrência em vez de produto transforma um dia de trabalho numa parede intransponível.
Entrega pronta: no plano Escritório, a interface baixa um único ZIP com relatório HTML imprimível, fila CSV, auditoria JSON e manifesto. Os XMLs originais permanecem fora do pacote.
Os números acima são de um acervo de exemplo. Os seus saem da primeira execução, que leva alguns segundos.
Seu XML tem cliente, preço, margem e volume. Não existe motivo para isso subir para o servidor de ninguém só para conferir um campo.
defusedxml protege o parser e cryptography
verifica licenças assinadas. O restante é Python e código aberto.
A interface abre somente em 127.0.0.1. Você pode rodar com a
máquina desconectada e conferir o fluxo no código.
| Código | Severidade | Verificação | Plano |
|---|---|---|---|
RTC001 | bloqueio | Grupo pai IBSCBS ausente quando exigido pela UB12-10 |
gratuito |
RTC002 | bloqueio | IBSCBS presente, mas sem cClassTrib |
gratuito |
RTC003 | bloqueio | CST do IBS/CBS ausente ou inexistente na tabela oficial | gratuito |
RTC004 | bloqueio | CST exige gIBSCBS, mas o grupo não foi informado |
gratuito |
RTC005 | bloqueio | CST proíbe gIBSCBS, mas o grupo foi informado |
gratuito |
RTC006 | bloqueio | cClassTrib inexistente ou não vigente para NF-e na tabela oficial |
gratuito |
RTC007 | bloqueio | cClassTrib incompatível com o CST informado no item |
gratuito |
NCM001 | bloqueio | NCM ausente ou fora do formato de 8 dígitos | pago |
GTIN001 | alerta | Dígito verificador GS1 inválido ou malformado. cEAN vazio
só alerta a partir do layout 4.00 |
pago |
As cinco regras do corte de agosto são gratuitas, de propósito: elas respondem
à pergunta que tem prazo. NCM001 e GTIN001 são higiene de
cadastro, valem o ano inteiro e não têm data marcada.
Emitente do Simples Nacional (CRT=1 e 2) não gera bloqueio: a transição deles segue regra própria e não cai no corte de agosto. Apontar bloqueio onde não existe é pior que não apontar nada. Um relatório com falso positivo é um relatório que ninguém lê até o fim.
Pelo mesmo motivo, o cEAN vazio é avaliado conforme a versão do
layout da nota. O literal SEM GTIN só nasceu no 4.00: numa nota de
2015 o campo vazio era o jeito certo de dizer que o produto não tem código de
barras. Essa regra foi corrigida depois de rodar contra NF-e reais e ver a
ferramenta acusar exatamente isso.
Snapshot atual: NT 2025.002-RTC v1.50 · tabela cClassTrib do IT 2025.002 v1.60.
O relatório identifica a referência usada. Antes de uma emissão, confirme a nota corrigida no validador oficial.
Não é validador de schema, e não tenta ser. O validador oficial do SEFAZ-RS é a fonte de verdade para conformidade estrutural, e é gratuito.
A diferença é o escopo: o oficial valida uma nota por vez. Se você tem quatro mil notas e não sabe por onde começar, ele não ajuda. O RTC Check varre o acervo inteiro e diz onde olhar. Depois de corrigir, confirme no oficial.
Ele confere regras selecionadas de presença, formato e compatibilidade com o CST. Como a entrada é um acervo histórico, o achado significa risco caso o mesmo padrão de emissão continue após o corte. Não é uma reimplementação completa das regras de validação do SEFAZ.
Todo relatório registra as referências aplicadas: Nota Técnica 2025.002-RTC v1.50 e Informe Técnico 2025.002 v1.60 para a tabela CST/cClassTrib. Se a norma mudar, o relatório mostra qual fotografia regulatória foi usada.
Windows: baixe o ZIP da release, extraia e abra
RTC-Check.exe. Não precisa instalar Python.
Terminal e automação: precisa de Python 3.11 ou mais novo. Ainda não está no PyPI:
pip install "rtc-check @ git+https://github.com/TaynanGT/rtc-check.git"
rtc-check ./pasta-com-xmls
Ou sem instalar nada permanente:
uvx --from git+https://github.com/TaynanGT/rtc-check.git rtc-check ./pasta-com-xmls
Em produção, fixe uma versão em vez de acompanhar a
main: acrescente a tag da release à URL, como em
...rtc-check.git@v0.4.1. As tags estão em
releases.
O agrupamento interno usa documento do emitente + SKU. Códigos iguais de
empresas diferentes não são misturados; o detalhamento visual por CNPJ está
disponível com --por-cnpj.
Isso é o plano gratuito, e já responde se você tem bloqueio e em quantos SKUs. Os comandos abaixo fazem parte dos planos pagos. Para experimentar todos por 14 dias, sem cadastro e sem cartão:
rtc-check --iniciar-teste
Relatório em HTML, para mandar ao contador ou à diretoria:
rtc-check ./xmls --formato html --saida prontidao.html
Planilha, para o time de cadastro trabalhar em cima:
rtc-check ./xmls --formato csv --saida skus.csv
Dentro de um pipeline, travando o build se aparecer bloqueio:
rtc-check ./xmls --falhar-em-bloqueio
E, na semana seguinte, o que o time de fato corrigiu:
rtc-check ./xmls --comparar prontidao-da-semana-passada.json
Para ver o que está liberado na sua instalação:
rtc-check --plano
Medido na máquina de desenvolvimento, com acervo sintético de 2.000 notas e 10.000 itens:
| Métrica | Resultado |
|---|---|
| Tempo total | 1,43 s |
| Pico de memória | 6 MB |
| Qualidade | CI em Windows, macOS e Linux |
| Compatibilidade | Python 3.11 a 3.14 |
Há um teste de volume no repositório que trava o build se o tempo
ou a memória saírem da ordem de grandeza. Você pode reproduzir com
pytest -s.
Varra vários emitentes, entregue a fila em CSV/PDF e compare a evolução depois da correção do cadastro.
Quero avaliar o plano EscritórioUse o CLI no pipeline, ofereça auditoria local ao cliente e avalie a licença Plataforma para redistribuição.
Quero falar sobre PlataformaAssinar o Escritório — R$ 149/mês
Pagamento por Pix, cartão ou boleto, direto no Mercado Pago. A chave de licença chega no seu e-mail minutos depois da aprovação — sem formulário e sem espera.
| Comunidade | Escritório | |
|---|---|---|
| Preço | R$ 0, para sempre | R$ 149/mês ou R$ 1.490/ano |
| Varredura local ilimitada | sim | sim |
Regras do corte (RTC001 a RTC007) |
sim | sim |
| Contagem de bloqueios e SKUs | sim | sim |
| Lista detalhada de SKUs | 5 primeiros | completa |
Regras de cadastro (NCM001, GTIN001) |
não | sim |
| Saída em JSON, CSV, HTML e pacote ZIP | não | sim |
| Gravar relatório em arquivo | não | sim |
| Travar o build no CI | não | sim |
| Detalhamento por CNPJ | não | sim |
| Comparativo entre execuções | não | sim |
| Atualização de regras | via GitHub | prioritária e versionada |
| Suporte | issues públicas | e-mail, 1 dia útil |
Precisa embarcar o RTC Check num produto fechado ou oferecê-lo como serviço? Isso é o plano Plataforma, sob consulta, e é o único que inclui licença de redistribuição.
Teste a coluna da direita inteira por 14 dias. Sem cadastro, sem cartão, sem rede: o comando grava um arquivo local e pronto.
rtc-check --iniciar-teste
O plano gratuito não é isca. Ele responde inteira a pergunta que trouxe você até aqui, que é "meu padrão atual tem risco de rejeição em agosto?". O que se paga é o trabalho que vem depois da resposta: entregar a lista para quem corrige, travar o pipeline, acompanhar a fila andar e receber atualizações priorizadas após a revisão técnica de cada NT.
A NT 2025.002 já passou de trinta revisões. Uma varredura é foto; a obrigação é filme.
O código é aberto, então a trava dos recursos pagos está lá no repositório e dá para removê-la. Isso é conhecido e não vai mudar: fechar o código custaria a única coisa que faz alguém apontar uma pasta de notas fiscais para este programa, que é conseguir ler o que ele faz. A assinatura não vende acesso ao binário.
O pagamento é processado pelo Mercado Pago (Pix, cartão ou boleto) e a chave de licença chega por e-mail minutos após a aprovação. A página de compra pode levar até um minuto para abrir na primeira visita.
Estimativa educativa feita no navegador; nenhum valor é enviado.
Não é promessa de economia: o ganho real depende do acervo, das regras e do processo da equipe.
Não. Ele faz triagem dentro da cobertura declarada e encaminha a confirmação para o validador oficial.
É o risco associado à ausência do grupo IBS/CBS em item no escopo monitorado pela UB12-10.
Não no Desktop: o servidor escuta em 127.0.0.1 e os temporários são apagados ao terminar.
Informe somente dados de contato. Nunca envie XML, CNPJ, chave de NF-e ou credenciais.
O recebimento é configurável e não usa issue pública. Consulte o guia de captação privada antes de ativar um endpoint.