Conversor de XML de Cancelamento NF-e
Novo Avanço → procEventoNFe
📌 1. Contexto
O sistema Novo Avanço gera XMLs de NF-e no formato nfeProc, contendo:
- Dados completos da nota fiscal
- Protocolo de autorização
- Status da nota (incluindo cancelamento)
Quando uma nota é cancelada, o sistema não gera o XML do evento de cancelamento completo, apenas registra o cancelamento dentro do protocolo da NF-e.
Por outro lado, algumas integrações, auditorias fiscais e ferramentas externas exigem o XML no formato:
procEventoNFe
Este produto resolve exatamente esse gap.
🎯 2. Objetivo do Produto
Converter XMLs de NF-e canceladas (formato nfeProc) em XMLs no formato completo de evento:
procEventoNFe
Garantindo:
- Compatibilidade com padrões SEFAZ
- Leitura por ferramentas fiscais
- Padronização de dados para integração
⚙️ 3. Funcionamento Geral
O conversor executa o seguinte fluxo:
🔄 Fluxo de execução
- Usuário seleciona pasta de origem (XMLs do Novo Avanço)
- Usuário seleciona pasta de destino
- Sistema percorre todos os XMLs
- Para cada XML:
- Lê os dados necessários
- Monta a estrutura
procEventoNFe - Gera um novo XML
- Exibe progresso e logs em tempo real
🧠 4. Estrutura dos XMLs
📥 Entrada (Novo Avanço)
Formato:
nfeProc
├── NFe
└── protNFe
└── infProt
Contém:
- Chave da nota
- Protocolo
- Status (
cStat) - Motivo (
xMotivo) - Data (
dhRecbto)
📤 Saída (Gerado pelo Conversor)
Formato:
procEventoNFe
├── evento
│ ├── infEvento
│ └── Signature
└── retEvento
└── infEvento
🔗 5. Correspondência de Campos
| Campo destino | Origem | Regra |
|---|---|---|
cOrgao |
ide/cUF |
Direto |
tpAmb |
ide/tpAmb |
Direto |
CNPJ |
emit/CNPJ |
Direto |
chNFe |
protNFe/infProt/chNFe |
Direto |
dhEvento |
dhRecbto |
Padrão (ou manual) |
tpEvento |
— | Fixo: 110111 |
nSeqEvento |
— | Fixo: 1 |
verEvento |
— | Fixo: 1.00 |
descEvento |
— | Fixo: Cancelamento |
nProt (evento) |
protNFe/nProt |
Direto |
xJust |
xMotivo |
Padrão (ou manual) |
📌 Retorno (retEvento)
| Campo | Origem |
tpAmb |
tpAmb |
verAplic |
verAplic |
cOrgao |
cUF |
cStat |
cStat |
xMotivo |
xMotivo |
chNFe |
chNFe |
tpEvento |
Fixo |
xEvento |
"CANCELAMENTO" |
nSeqEvento |
Fixo |
dhRegEvento |
dhRecbto |
nProt |
nProt |
🧩 6. Tratamento dos Campos
🔹 tpEvento
- Valor fixo:
110111 - Representa evento de cancelamento
🔹 nSeqEvento
- Valor fixo:
1 - Primeiro evento de cancelamento da nota
🔹 xJust
- Padrão: usa
xMotivodo XML - Pode ser sobrescrito manualmente
🔹 dhEvento
- Padrão: usa
dhRecbto - Pode ser definido manualmente pelo usuário
🔹 Signature
- Reaproveitada do XML original
- Não é recalculada
- Mantém compatibilidade estrutural
🖥️ 7. Interface do Sistema
A interface web local permite:
📂 Seleção de pastas
- Pasta de entrada (XMLs do sistema)
- Pasta de saída (XMLs convertidos)
🧾 Campos configuráveis
tpEventonSeqEventoxJustdhEvento
Todos já vêm com valores padrão.
📊 Execução
- Barra de progresso em tempo real
- Contadores:
- Total
- Processados
- Erros
- Logs detalhados
🛑 Controle
- Iniciar conversão
- Cancelar execução
- Limpar logs
▶️ 8. Como Usar
Passo a passo
- Abrir o programa
- Selecionar pasta de origem
- Selecionar pasta de destino
- (Opcional) Ajustar campos
- Clicar em Iniciar conversão
Durante a execução
- Acompanhar barra de progresso
- Ver logs em tempo real
Cancelamento
- Clique em Cancelar
- O sistema interrompe o processamento atual
Resultado
- XMLs gerados na pasta de destino
- Nome padrão:
<nome_original>_procEventoNFe.xml
⚠️ 9. Limitações
- Não gera assinatura digital nova
- Não consulta SEFAZ
- Usa dados já existentes no XML
- Não substitui o XML oficial do evento
🔒 10. Considerações Técnicas
- Aplicação local (Flask)
- Execução via navegador
- Integração com Windows (bandeja)
- Processamento em background (thread)
- Manipulação XML via Python
🧪 11. Compatibilidade
- Compatível com leitores XML fiscais
- Estrutura alinhada ao padrão SEFAZ
- Evita conflitos de namespace
🏁 12. Conclusão
O Conversor de XML de Cancelamento do Novo Avanço:
- Resolve a ausência do XML de evento completo
- Permite integração com ferramentas externas
- Automatiza conversão em lote
- Oferece interface simples e eficiente
⚙️ Regras de Alteração dos Campos
Esta seção define quais campos podem ser alterados pelo usuário, quais não devem ser alterados, e quais são sensíveis para integridade fiscal.
🔒 1. Campos NÃO editáveis (fixos / controlados pelo sistema)
Esses campos são definidos automaticamente pelo conversor e não devem ser alterados, pois fazem parte da estrutura fiscal obrigatória.
| Campo | Origem | Motivo |
|---|---|---|
cOrgao |
XML original | Define a UF (SEFAZ responsável) |
tpAmb |
XML original | Ambiente (produção/homologação) |
CNPJ |
XML original | Emitente da nota |
chNFe |
XML original | Identificação única da NF-e |
nProt |
XML original | Protocolo da nota |
cStat |
XML original | Status fiscal |
xMotivo |
XML original | Retorno da SEFAZ |
verEvento |
Fixo (1.00) |
Versão do layout |
descEvento |
Fixo (Cancelamento) |
Tipo do evento |
xEvento |
Fixo (CANCELAMENTO) |
Descrição padronizada |
verAplic |
XML original | Versão da aplicação SEFAZ |
⚠️ Importante
Alterar qualquer um desses campos pode:
- Invalidar o XML
- Gerar inconsistência fiscal
- Quebrar integração com sistemas contábeis
🟡 2. Campos editáveis com restrição
Esses campos podem ser alterados, mas com cuidado.
🔹 xJust (Justificativa do cancelamento)
✔ Padrão:
xMotivo do XML
✔ Pode ser alterado?
Sim
⚠️ Regras:
- Deve ter entre 15 e 255 caracteres (recomendado)
- Deve representar corretamente o motivo do cancelamento
❗ Riscos ao alterar:
- Divergência com registro original
- Problemas em auditorias
🔹 dhEvento (Data/hora do evento)
✔ Padrão:
dhRecbto do XML
✔ Pode ser alterado?
Sim
⚠️ Regras:
- Deve estar no formato:
YYYY-MM-DDTHH:mm:ss-03:00
❗ Riscos ao alterar:
- Inconsistência temporal com SEFAZ
- Divergência com logs fiscais
🟢 3. Campos editáveis seguros
Esses campos são controlados, mas não afetam integridade fiscal diretamente.
🔹 tpEvento
✔ Padrão:
110111
✔ Pode ser alterado?
Não recomendado
⚠️ Motivo:
110111= Cancelamento- Alterar muda completamente o tipo do evento
🔹 nSeqEvento
✔ Padrão:
1
✔ Pode ser alterado?
Sim (com ressalvas)
⚠️ Regras:
- Deve ser inteiro
- Normalmente sempre
1para cancelamento
❗ Riscos:
- Pode causar inconsistência em sistemas que validam sequência
🧠 4. Resumo Geral
| Campo | Pode alterar? | Nível de risco |
xJust |
✔ Sim | Médio |
dhEvento |
✔ Sim | Médio |
nSeqEvento |
✔ Sim | Baixo |
tpEvento |
⚠ Não recomendado | Alto |
| Demais campos | ❌ Não | Crítico |
🎯 5. Recomendação de Uso
Para uso seguro:
- Não altere campos técnicos
- Utilize apenas:
xJust(quando necessário)dhEvento(em casos específicos)
🏁 Conclusão
O conversor já define automaticamente todos os campos necessários para gerar um XML válido.
As alterações devem ser feitas apenas quando houver necessidade real, evitando inconsistências fiscais ou divergências com o registro original da NF-e.

No Comments