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:

  1. NFCom (raiz, com o namespace)
  2. infNFCom (atributos versao="1.00" e Id="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, gRespTec
  3. infNFComSupl, com qrCodNFCom
  4. Signature, 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&amp;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 &amp;. 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:

  • SignedInfo declara os algoritmos usados e contém uma Reference que aponta para o Id do infNFCom;
  • o DigestValue é um resumo criptográfico do conteúdo de infNFCom: qualquer alteração depois da assinatura, até um espaço, invalida a nota;
  • SignatureValue é a assinatura propriamente dita, e X509Certificate leva 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).