O que é o XML da NF-e e como ler as principais tags
XML não é um arquivo "estranho": é texto organizado em tags
Um XML de NF-e é um arquivo de texto comum, que você pode abrir no Bloco de Notas ou em qualquer editor. Os dados ficam dentro de tags aninhadas, como <xNome>Nome da Empresa</xNome>. Os nomes das tags são padronizados nacionalmente pelo Manual de Orientação do Contribuinte (MOC) da NF-e, por isso o mesmo campo tem o mesmo nome em qualquer sistema emissor do país.
A estrutura geral
<nfeProc> ← envelope: nota + protocolo
<NFe> ← a nota fiscal em si
<infNFe Id="NFe3515..."> ← dados da nota (Id = chave de acesso)
<ide> ... </ide> ← identificação
<emit> ... </emit> ← emitente
<dest> ... </dest> ← destinatário
<det nItem="1"> ... </det> ← um bloco por item
<total> ... </total>
<transp> ... </transp>
<cobr> ... </cobr> ← cobrança/duplicatas
<infAdic> ... </infAdic>
</infNFe>
<Signature> ... </Signature> ← assinatura digital
</NFe>
<protNFe> ... </protNFe> ← protocolo de autorização da SEFAZ
</nfeProc>
NFe e nfeProc: qual é a diferença?
Quando o emitente transmite a nota, ela é só uma <NFe>. Depois que a SEFAZ autoriza, ela devolve o protocolo (<protNFe>) e o conjunto vira um <nfeProc>. O arquivo nfeProc é o XML completo e "autorizado", e é esse que você deve guardar e converter em DANFE. Um XML que contém só <NFe>, sem protocolo, ainda não prova que a nota foi autorizada.
As tags que mais importam
| Tag | O que é |
|---|---|
ide | Identificação: natureza da operação (natOp), modelo (mod), série, número (nNF), data de emissão (dhEmi), tipo (tpNF: 0 entrada, 1 saída) e ambiente (tpAmb) |
emit | Quem emitiu: CNPJ, razão social (xNome), endereço, inscrição estadual (IE) e regime tributário (CRT) |
dest | Quem recebeu: CNPJ ou CPF, nome e endereço |
det | Um item vendido. Dentro dele, prod traz código, descrição (xProd), NCM, CFOP, unidade, quantidade e valores; imposto traz ICMS, IPI, PIS e COFINS do item |
total | Totais da nota; o valor final é vNF dentro de ICMSTot |
transp | Transporte: modalidade do frete (modFrete), transportadora e volumes |
cobr | Fatura e duplicatas, com número, vencimento e valor de cada parcela |
infAdic | Informações complementares em texto livre (infCpl) |
protNFe | Protocolo da SEFAZ: número do protocolo (nProt), data de recebimento e status (cStat 100 = "Autorizado o uso da NF-e") |
Como saber se é uma nota de teste
Procure a tag <tpAmb> dentro de ide. O valor 1 significa produção (nota real) e 2 significa homologação (ambiente de testes, sem valor fiscal). Notas de homologação costumam trazer no destinatário a frase "NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL", e o DANFE gerado exibe essa marca d'água.
Por que não se deve editar o XML à mão
A tag <Signature> contém a assinatura digital do emitente, calculada sobre o conteúdo da nota. Alterar até um único caractere dentro de infNFe invalida a assinatura, e o arquivo deixa de ser aceito como documento fiscal. Se um dado estiver errado, a correção é feita por evento (Carta de Correção) ou por nova nota, nunca editando o arquivo.
Problemas comuns ao abrir XMLs
- Acentos quebrados: o arquivo é UTF-8; abra com essa codificação.
- Arquivo vazio ou cortado: download interrompido. Baixe de novo.
- Só vejo poucas linhas: pode ser um XML de evento (cancelamento, CC-e), não a nota completa. Veja o guia de erros comuns.
Com o nfeProc em mãos, gere o DANFE em PDF agora.