Resumo rápido
- O XML da NFCom tem raiz NFCom no namespace http://www.portalfiscal.inf.br/nfcom, com infNFCom, infNFComSupl e Signature.
- A ordem dos grupos em infNFCom é fixa: ide, emit, dest, assinante, det, total, gFat, infAdic e gRespTec (com gSub e gCofat quando aplicáveis).
- O exemplo traz 1 item SCM (cClass 0100401) com ICMS00, PIS e COFINS; valores e percentuais são fictícios.
- Depois de autorizada, a nota é guardada como nfcomProc: o XML assinado mais o protocolo protNFCom devolvido pela SEFAZ.
- O exemplo é didático: não serve para transmissão e não substitui o schema oficial nem o MOC.
Um XML de NFCom modelo 62 é um documento com raiz NFCom, no namespace http://www.portalfiscal.inf.br/nfcom, que reúne em infNFCom a identificação da nota, emitente, destinatário, assinante, itens com impostos, totais e dados da fatura; em seguida vêm infNFComSupl, com a URL do QR Code, e a assinatura digital (Signature). Depois de autorizado, esse XML é armazenado junto com o protocolo da SEFAZ em um envelope nfcomProc.
Abaixo está um exemplo completo e comentado, com um item de assinatura de internet SCM tributado pelo ICMS. Ele serve para o financeiro, o fiscal e o time de TI do provedor entenderem o que o emissor gera. Para o significado de cada campo, veja também os campos obrigatórios da NFCom e o guia completo de NFCom.
Exemplo didático: não transmita
Este XML é ilustrativo e anonimizado. CNPJ, CPF, inscrição estadual, chave de acesso, código de barras e assinatura são fictícios, e os percentuais de ICMS, PIS e COFINS foram escolhidos só para facilitar a conta: não correspondem à alíquota de nenhuma UF ou regime. O documento não passa na validação da SEFAZ e não deve ser transmitido nem usado como modelo de tributação. A referência oficial é o schema (XSD) e o MOC publicados no Portal NFCom.
Estrutura geral do XML da NFCom
Antes do exemplo, vale ter o mapa na cabeça. A ordem dos elementos é validada pelo schema, e qualquer grupo fora de lugar gera rejeição:
NFCom(raiz, com o namespace)infNFCom(atributosversao="1.00"eId="NFCom"+ chave de 44 dígitos):ide,emit,dest,assinante,gSub(só substituição),gCofat(só cofaturamento),det(1 a n),total,gFat(omitido em nota de ajuste),infAdic,gRespTecinfNFComSupl, comqrCodNFComSignature, a assinatura digital XMLDSig
Exemplo completo de XML NFCom (ilustrativo)
Cenário: provedor fictício no regime normal, em SP (autorizador SVRS), ambiente de homologação, faturando a assinatura mensal de um cliente pessoa física.
<?xml version="1.0" encoding="UTF-8"?>
<NFCom xmlns="http://www.portalfiscal.inf.br/nfcom">
<infNFCom versao="1.00" Id="NFCom00000000000000000000000000000000000000000000">
<ide>
<cUF>35</cUF>
<tpAmb>2</tpAmb>
<mod>62</mod>
<serie>1</serie>
<nNF>1</nNF>
<cNF>12345678</cNF>
<cDV>0</cDV>
<dhEmi>2026-09-28T10:00:00-03:00</dhEmi>
<tpEmis>1</tpEmis>
<nSiteAutoriz>0</nSiteAutoriz>
<cMunFG>3550308</cMunFG>
<finNFCom>0</finNFCom>
<tpFat>0</tpFat>
<verProc>EXEMPLO-1.0</verProc>
</ide>
<emit>
<CNPJ>00000000000000</CNPJ>
<IE>000000000000</IE>
<CRT>3</CRT>
<xNome>PROVEDOR EXEMPLO LTDA</xNome>
<enderEmit>
<xLgr>RUA EXEMPLO</xLgr>
<nro>100</nro>
<xBairro>CENTRO</xBairro>
<cMun>3550308</cMun>
<xMun>SAO PAULO</xMun>
<CEP>00000000</CEP>
<UF>SP</UF>
</enderEmit>
</emit>
<dest>
<xNome>ASSINANTE FICTICIO</xNome>
<CPF>00000000000</CPF>
<indIEDest>9</indIEDest>
<enderDest>
<xLgr>RUA DO CLIENTE</xLgr>
<nro>200</nro>
<xBairro>CENTRO</xBairro>
<cMun>3550308</cMun>
<xMun>SAO PAULO</xMun>
<CEP>00000000</CEP>
<UF>SP</UF>
</enderDest>
</dest>
<assinante>
<iCodAssinante>0001</iCodAssinante>
<tpAssinante>3</tpAssinante>
<tpServUtil>4</tpServUtil>
<nContrato>CT-0001</nContrato>
<dContratoIni>2026-01-01</dContratoIni>
</assinante>
<det nItem="1">
<prod>
<cProd>PLANO-100M</cProd>
<xProd>ASSINATURA INTERNET 100 MEGA</xProd>
<cClass>0100401</cClass>
<CFOP>5307</CFOP>
<uMed>4</uMed>
<qFaturada>1.0000</qFaturada>
<vItem>100.00</vItem>
<vProd>100.00</vProd>
</prod>
<imposto>
<ICMS00>
<CST>00</CST>
<vBC>100.00</vBC>
<pICMS>10.00</pICMS>
<vICMS>10.00</vICMS>
</ICMS00>
<PIS>
<CST>01</CST>
<vBC>100.00</vBC>
<pPIS>1.00</pPIS>
<vPIS>1.00</vPIS>
</PIS>
<COFINS>
<CST>01</CST>
<vBC>100.00</vBC>
<pCOFINS>2.00</pCOFINS>
<vCOFINS>2.00</vCOFINS>
</COFINS>
</imposto>
</det>
<total>
<vProd>100.00</vProd>
<ICMSTot>
<vBC>100.00</vBC>
<vICMS>10.00</vICMS>
<vICMSDeson>0.00</vICMSDeson>
<vFCP>0.00</vFCP>
</ICMSTot>
<vCOFINS>2.00</vCOFINS>
<vPIS>1.00</vPIS>
<vFUNTTEL>0.00</vFUNTTEL>
<vFUST>0.00</vFUST>
<vRetTribTot>
<vRetPIS>0.00</vRetPIS>
<vRetCofins>0.00</vRetCofins>
<vRetCSLL>0.00</vRetCSLL>
<vIRRF>0.00</vIRRF>
</vRetTribTot>
<vDesc>0.00</vDesc>
<vOutro>0.00</vOutro>
<vNF>100.00</vNF>
</total>
<gFat>
<CompetFat>202609</CompetFat>
<dVencFat>2026-10-10</dVencFat>
<dPerUsoIni>2026-09-01</dPerUsoIni>
<dPerUsoFim>2026-09-30</dPerUsoFim>
<codBarras>00000000000000000000000000000000000000000000000</codBarras>
</gFat>
<infAdic>
<infCpl>DOCUMENTO DE EXEMPLO - SEM VALOR FISCAL</infCpl>
</infAdic>
</infNFCom>
<infNFComSupl>
<qrCodNFCom>https://dfe-portal.svrs.rs.gov.br/NFCom/QRCode?chNFCom=00000000000000000000000000000000000000000000&tpAmb=2</qrCodNFCom>
</infNFComSupl>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<!-- métodos de canonicalização, assinatura e digest definidos no MOC -->
<Reference URI="#NFCom00000000000000000000000000000000000000000000">
<!-- transforms e DigestValue do infNFCom -->
</Reference>
</SignedInfo>
<SignatureValue>...</SignatureValue>
<KeyInfo>
<X509Data>
<X509Certificate>...</X509Certificate>
</X509Data>
</KeyInfo>
</Signature>
</NFCom>
Bloco a bloco: o que cada parte do XML diz
Raiz e infNFCom
A raiz NFCom declara o namespace oficial. Em infNFCom, o atributo versao indica o layout (1.00) e o Id é formado pelo prefixo "NFCom" seguido da chave de acesso de 44 dígitos. No exemplo a chave é uma sequência de zeros; no documento real, ela é montada pelo emissor a partir de dados do ide e do emitente e termina com o dígito verificador (cDV). É esse Id que a assinatura referencia.
ide
Identifica a nota: UF (35, SP), ambiente de homologação (tpAmb=2), modelo 62, série, número, código numérico aleatório, data e hora com fuso, emissão normal (tpEmis=1), município do fato gerador em código IBGE, finalidade normal (finNFCom=0) e faturamento normal (tpFat=0). Uma nota de substituição teria finNFCom=3 e o grupo gSub logo após assinante.
emit e dest
O emitente traz CNPJ, inscrição estadual, regime tributário (CRT=3, regime normal, coerente com o uso de ICMS00), razão social e endereço. O destinatário é uma pessoa física: CPF, indicador de não contribuinte e endereço com município em código IBGE. Dados reais de clientes nunca devem circular em exemplos, tickets ou planilhas de teste.
assinante
Descreve o contrato: código do cliente no sistema do provedor, tpAssinante=3 (Residencial/Pessoa física), tpServUtil=4 (Provimento de acesso à internet), número e data de início do contrato. É o grupo típico de telecom, sem equivalente na NF-e.
det, prod e imposto
O único item (nItem="1") é a assinatura mensal: cClass 0100401 (assinatura de comunicação multimídia – SCM), CFOP 5307 (prestação a não contribuinte dentro da UF), unidade 4 (UN), quantidade 1 e valor de 100,00. No grupo imposto, o ICMS00 representa tributação integral (base, percentual e valor), seguido de PIS e COFINS com CST 01. Em notas reais, podem aparecer ainda FCP, FUST, FUNTTEL, retenções e o grupo IBSCBS. A escolha do CFOP e do CST depende da operação e da UF; veja CFOP da NFCom para provedor.
total
Repete, somados, os valores dos itens: vProd, o grupo ICMSTot, PIS, COFINS, FUST, FUNTTEL, retenções, descontos, outros valores e o valor da nota (vNF). Com um item só a conta é trivial; com dez itens, um centavo de diferença por arredondamento já basta para a SEFAZ rejeitar o documento.
gFat e infAdic
gFat liga a nota à cobrança: competência (AAAAMM), vencimento, período de uso e a linha digitável do documento de cobrança. Ele é omitido apenas na nota de ajuste. infAdic carrega textos livres para o fisco (infAdFisco) e para o assinante (infCpl). O grupo gRespTec, que viria depois de infAdic, não aparece no exemplo: sua exigência depende da UF, e o emissor SyncNFe o gera para emitentes de MG.
infNFComSupl
Traz a URL do QR Code que será impressa no DANFE-COM. No SVRS o formato é https://dfe-portal.svrs.rs.gov.br/NFCom/QRCode?chNFCom={chave}&tpAmb={1|2}; MG, MS e MT usam URL própria. Dentro do XML, o caractere "&" é escrito como &. Detalhes em DANFE-COM: como funciona.
Assinatura digital (Signature)
A NFCom é assinada no padrão XMLDSig com o certificado ICP-Brasil (A1 ou A3) do CNPJ emitente. De forma simplificada:
SignedInfodeclara os algoritmos usados e contém umaReferenceque aponta para oIddoinfNFCom;- o
DigestValueé um resumo criptográfico do conteúdo deinfNFCom: qualquer alteração depois da assinatura, até um espaço, invalida a nota; SignatureValueé a assinatura propriamente dita, eX509Certificateleva o certificado público do emitente.
Os algoritmos exatos de canonicalização, assinatura e digest são os definidos no MOC da NFCom. Na prática, a assinatura é feita pelo emissor, nunca à mão: editar o XML assinado em um editor de texto quebra a validação.
Protocolo de autorização: nfcomProc e protNFCom
Quando a SEFAZ autoriza a nota, ela devolve um protocolo. O arquivo que o provedor guarda e entrega ao assinante costuma ser o XML de distribuição, que une a nota assinada e o protocolo. A estrutura típica, seguindo o padrão dos documentos fiscais eletrônicos, é esta (confira nomes e ordem exatos no MOC):
<nfcomProc versao="1.00" xmlns="http://www.portalfiscal.inf.br/nfcom">
<NFCom> ... nota assinada, exatamente como transmitida ... </NFCom>
<protNFCom versao="1.00">
<infProt>
<tpAmb>2</tpAmb>
<verAplic>...</verAplic>
<chNFCom>00000000000000000000000000000000000000000000</chNFCom>
<dhRecbto>...</dhRecbto>
<nProt>...</nProt>
<digVal>...</digVal>
<cStat>100</cStat>
<xMotivo>...</xMotivo>
</infProt>
</protNFCom>
</nfcomProc>
O cStat 100 indica autorização de uso (150 indica autorização fora de prazo). O nProt é o número do protocolo, exigido depois em eventos como o cancelamento (evento 110111). O digVal corresponde ao digest da nota recebida, amarrando o protocolo àquele XML específico. Se o retorno for uma rejeição, não há nfcomProc: a nota não existe para o fisco e precisa ser corrigida e reenviada. Os significados completos dos códigos estão na tabela oficial do MOC.
Boas práticas com o XML da NFCom
- Guarde o nfcomProc, não só a nota assinada: é ele que prova a autorização.
- Nunca edite um XML assinado. Se algo está errado, corrija na origem e gere uma nova nota ou use cancelamento/substituição.
- Valide contra o XSD antes de transmitir quando o XML é montado por integração própria.
- Teste em homologação (
tpAmb=2) antes de emitir em produção. - Anonimize exemplos usados em documentação, suporte e testes.
No emissor de NFCom da SyncNFe, o XML é montado, assinado, transmitido e armazenado automaticamente a partir do faturamento, com download do XML e do DANFE-COM em PDF. Quem integra um sistema próprio pode fazer isso pela API de NFCom, sem precisar gerar o XML na mão.
Conteúdo informativo. Regras de tributação, CFOP, CST e prazos variam por UF e mudam com novas notas técnicas; valide o enquadramento da sua operação com a contabilidade e a SEFAZ competente. Base normativa: Ajuste SINIEF 7/22 e Portal da NFCom (SVRS).