Resumo
Introdução
O XML é o formato de dados fundamental para a Nota Fiscal Eletrônica. Cada NF-e é representada por um documento XML que segue uma estrutura padronizada definida pela SEFAZ.
Neste guia, vamos detalhar cada parte da estrutura do XML de NF-e, explicando as tags obrigatórias, opcionais e suas finalidades.
Estrutura Geral
<?xml version="1.0" encoding="UTF-8"?> <NFe xmlns="http://www.portalfiscal.inf.br/nfe"> <infNFe Id="NFe12345678901234567890123456789012345678901234"> <ide>...</ide> <emit>...</emit> <dest>...</dest> <det NItem="1">...</det> <total>...</total> <transp>...</transp> <infAdic>...</infAdic> </infNFe> <Signature>...</Signature> </NFe>
Tags Principais
<NFe>
Tag raiz que contém todo o documento.
Atributos:
xmlns: Namespace do XML (obrigatório)
<infNFe>
Informações da NF-e.
Atributos:
Id: Chave de acesso (44 dígitos) + dígito verificador
<ide>
Identificação da NF-e.
Campos obrigatórios:
cUF: Código da UF (2 dígitos)cNF: Código numérico aleatório (8 dígitos)natOp: Natureza da operaçãomod: Modelo do documento (55 para NF-e, 65 para NFC-e)serie: Série do documentonNF: Número do documentotpEmis: Forma de emissãodhEmi: Data e hora de emissãotpAmb: Ambiente (1=Produção, 2=Homologação)finNF: Finalidade (1=Normal, 2=Complementar, 3=Ajuste)procEmi: Processo de emissãoverProc: Versão do processo
<emit>
Dados do emitente.
Campos obrigatórios:
CNPJ: CNPJ do emitentexNome: Razão socialxFant: Nome fantasiaenderEmit: Endereço do emitenteIE: Inscrição EstadualCRT: Código de Regime Tributário
<dest>
Dados do destinatário.
Campos obrigatórios (para NF-e):
CNPJouCPF: CNPJ ou CPF do destinatárioxNome: Razão social ou nomeenderDest: Endereço do destinatárioIE: Inscrição Estadual (obrigatório para CNPJ)
<det>
Detalhamento dos produtos/serviços.
Atributos:
NItem: Número do item (1, 2, 3, ...)
Subtags:
prod: Dados do produtoimposto: Dados do imposto
<prod>
Dados do produto.
Campos obrigatórios:
cProd: Código do produtocEAN: Código de barras (GTIN)xProd: Descrição do produtoNCM: Código NCMCFOP: Código CFOPuCom: Unidade de comercializaçãoqCom: QuantidadevUnCom: Valor unitáriovProd: Valor total do produto
<imposto>
Dados dos impostos.
Subtags comuns:
ICMS: Imposto sobre Circulação de MercadoriasIPI: Imposto sobre Produtos IndustrializadosPIS: Programa de Integração SocialCOFINS: Contribuição para Financiamento da Seguridade Social
<total>
Totais da NF-e.
Campos obrigatórios:
ICMSTot: Totais do ICMSvProd: Valor total dos produtosvFrete: Valor total do fretevSeg: Valor total do segurovDesc: Valor total do descontovII: Valor total do IIvIPI: Valor total do IPIvPIS: Valor total do PISvCOFINS: Valor total do COFINSvNF: Valor total da NF-e
<transp>
Dados do transporte.
Campos obrigatórios:
modFrete: Modalidade do frete (0=Por conta do emitente, 1=Por conta do destinatário)
<infAdic>
Informações adicionais.
Campos comuns:
infAdFisco: Informações ao fiscoinfCpl: Informações complementares ao contribuinte
Campos Opcionais Importantes
Dados do destinatário (quando aplicável)
Para operações com consumidor final, o destinatário pode ser omitido ou conter apenas o CPF.
Informações de Transporte
modFrete: Obrigatório apenas para operações com transportetransporta: Dados da transportadoravol: Dados dos volumes transportados
Dados Adicionais
infAdFisco: Informações relevantes para o fiscoinfCpl: Informações complementares (até 5000 caracteres)
Validação do XML
Validação de Schema
Sempre valide o XML contra o schema XSD oficial:
# Usando xmllint xmllint --schema nfe_v4.00.xsd nfe.xml --noout
Validação de Regras de Negócio
Além do schema, valide:
- Tipos de dados: Datas, valores, CNPJ/CPF
- Regras de cálculo: Totais, impostos
- Combinações: CFOP com UF de origem/destino
- Obrigatoriedades: Campos condicionais
Exemplo Completo
<?xml version="1.0" encoding="UTF-8"?> <NFe xmlns="http://www.portalfiscal.inf.br/nfe"> <infNFe Id="NFe352404123456780001955500100000012312345678901234"> <ide> <cUF>35</cUF> <cNF>12345678</cNF> <natOp>VENDA</natOp> <mod>55</mod> <serie>1</serie> <nNF>123</nNF> <tpEmis>1</tpEmis> <dhEmi>2024-02-18T10:30:00-03:00</dhEmi> <tpAmb>1</tpAmb> <finNF>1</finNF> <procEmi>0</procEmi> <verProc>1.0</verProc> </ide> <emit> <CNPJ>12345678000195</CNPJ> <xNome>Empresa Teste LTDA</xNome> <enderEmit> <xLgr>Rua Teste</xLgr> <nro>123</nro> <xCpl>Sala 1</xCpl> <xBairro>Centro</xBairro> <cMun>3550308</cMun> <xMun>São Paulo</xMun> <UF>SP</UF> <CEP>01001000</CEP> </enderEmit> <IE>123456789012</IE> <CRT>1</CRT> </emit> <dest> <CNPJ>98765432000110</CNPJ> <xNome>Cliente Teste LTDA</xNome> <enderDest> <xLgr>Rua Cliente</xLgr> <nro>456</nro> <xBairro>Jardim</xBairro> <cMun>3550308</cMun> <xMun>São Paulo</xMun> <UF>SP</UF> <CEP>01002000</CEP> </enderDest> <IE>987654321098</IE> </dest> <det NItem="1"> <prod> <cProd>001</cProd> <cEAN>SEM GTIN</cEAN> <xProd>Produto Teste</xProd> <NCM>12345678</NCM> <CFOP>5102</CFOP> <uCom>UN</uCom> <qCom>10.0000</qCom> <vUnCom>100.00</vUnCom> <vProd>1000.00</vProd> </prod> <imposto> <ICMS> <ICMS00> <orig>0</orig> <CST>00</CST> <vBC>1000.00</vBC> <pICMS>18.00</pICMS> <vICMS>180.00</vICMS> </ICMS00> </ICMS> </imposto> </det> <total> <ICMSTot> <vProd>1000.00</vProd> <vFrete>0.00</vFrete> <vSeg>0.00</vSeg> <vDesc>0.00</vDesc> <vII>0.00</vII> <vIPI>0.00</vIPI> <vPIS>16.50</vPIS> <vCOFINS>76.00</vCOFINS> <vNF>1000.00</vNF> </ICMSTot> </total> <transp> <modFrete>0</modFrete> </transp> </infNFe> </NFe>
Boas Práticas
- Valide sempre: Use nosso Validador XML antes de enviar
- Mantenha o schema atualizado: Verifique versões na SEFAZ
- Use codificação UTF-8: Evite problemas de caracteres
- Documente campos customizados: Use
<infAdic>adequadamente - Teste em homologação: Nunca envie XMLs de teste para produção
Conclusão
Conhecer a estrutura do XML de NF-e é fundamental para desenvolvedores fiscais. Com essa compreensão, você pode criar, validar e depurar XMLs de forma eficiente.
Use nossas ferramentas para validar, formatar e assinar XMLs, economizando tempo e evitando erros.
Fontes consultadas
Referências primárias usadas para conferir conceitos, padrões e regras citados neste guia.
- Portal Nacional da NF-e — manuais e documentos técnicosManuais de orientação, leiautes e regras de validação de NF-e e NFC-e.
- CONFAZ — manuais e documentos fiscaisÍndice oficial de manuais e documentos da documentação fiscal.
- W3C — Extensible Markup Language (XML)Referências da especificação e do ecossistema XML.
Pronto para colocar em prática?
Use nossas ferramentas gratuitas para inspecionar XMLs, gerenciar certificados e explorar dados de teste. Quando indicado na página, o processamento ocorre no navegador; confira o escopo antes de inserir dados.
Explorar ferramentasArtigos Relacionados
Como Resolver Erros Comuns de Validação XML na SEFAZ
Lista completa de erros de validação XML na SEFAZ com soluções práticas. Aprenda a identificar e corrigir os erros mais comuns.
Ler maisTutorial: Como Assinar XML para Envio de NF-e na SEFAZ
Guia passo a passo para assinar XMLs de NF-e usando certificado digital. Entenda XMLDSig, canonização e processos de assinatura.
Ler mais