Pular para o conteúdo
Fiscal ProBiblioteca
NF-e e NFC-e · ICMS

ICMS no XML da NF-e e NFC-e: uma alternativa tributária por item

<ICMS>det › imposto › ICMS

Revisão editorial em 14 de out. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.

ICMS é o grupo do imposto estadual de cada item, em det/imposto/ICMS. Seu conteúdo é uma alternativa de tributação: por exemplo, ICMS00, ICMS61 ou ICMSSN102. O grupo não é um valor monetário nem o total de imposto da nota. A escolha deve refletir o regime e a operação documentados; o nome de uma mercadoria não determina sozinho essa escolha.

Como o grupo organiza os itens

No leiaute PL 010f v1.04, imposto contém uma escolha entre ICMS e ISSQN; dentro de ICMS há outra escolha, desta vez entre alternativas de ICMS. Para o item que segue o ramo ICMS, informe exatamente uma alternativa. Dois itens podem ter tratamentos distintos, mas não se podem juntar ICMS00 e ICMSSN102 sob o mesmo ICMS para representar duas parcelas.

Para percorrer uma nota processada, use /nfeProc/NFe/infNFe/det/imposto/ICMS, selecionando antes o det/@nItem. Em um arquivo que contém apenas NFe, retire o prefixo nfeProc. Os elementos pertencem ao namespace http://www.portalfiscal.inf.br/nfe; em XPath com prefixos, associe, por exemplo, n a esse namespace. Uma consulta sem namespace pode retornar vazio mesmo com o grupo presente.

O que muda entre as alternativas

Família Informação que a diferencia
ICMS00, 10, 20, 30, 40, 51, 60, 70 e 90 Situações identificadas por CST, com campos próprios de tributação, redução, desoneração, diferimento ou substituição tributária. ICMS40 reúne CST 40, 41 e 50.
ICMS02, 15, 53 e 61 Tributação monofásica de combustíveis; usam quantidade e alíquota ad rem, em vez de converter o imposto em um percentual do preço.
ICMSPart Partilha específica entre UFs; contém parcela própria, substituição tributária, pBCOp e UFST.
ICMSST Repasse de ICMS-ST anteriormente retido em operação interestadual; não equivale a ICMSPart.
ICMSSN101, 102, 201, 202, 500 e 900 Alternativas identificadas por CSOSN. ICMSSN102 também recebe 103, 300 e 400; ICMSSN202 também recebe 203.

O grupo ICMSUFDest fica diretamente em imposto, como irmão de ICMS. Ele não é uma das alternativas internas de ICMS e não pode ser obtido renomeando ICMSPart. No MOC, NA01-20 contém exceção de exigência de ICMSUFDest quando ICMSPart foi informado.

CST, CSOSN, origem e regime são informações diferentes

orig classifica a origem da mercadoria; CST identifica uma situação tributária, geralmente com dois caracteres; CSOSN identifica a situação da operação no Simples Nacional, com três. Não concatene origem e CST dentro da tag CST, nem troque CST por CSOSN dentro de um grupo incompatível.

A NT 2024.001 v1.20, p.12, atualiza N12-20/590 para CRT 1 ou 4, com exceção dos CST monofásicos 02, 15, 53 e 61. N12a-10/591 compara CSOSN com CRT diferente de 1 ou 4. Essas regras são facultativas e não substituem a identificação correta do regime. A exceção monofásica explica por que um emitente do Simples pode ter CST 61; não autoriza usar qualquer CST.

A mesma estrutura XSD serve aos modelos 55 e 65, mas as regras de negócio diferem: uma NFC-e com ICMSPart recebe N12-50/741; os CST e CSOSN admitidos na NFC-e têm listas e condições próprias. Aceitação estrutural de um grupo não prova aplicabilidade no modelo. Consulte MOC 7, Anexo I. Fonte estrutural: XSD PL 010f v1.04.

Exemplo de leitura de um item

Fragmento sintético, parcial em relação à nota inteira. Pressupõe que ICMS00 e os parâmetros já foram corretamente definidos. Base de R$ 100,00 e alíquota hipotética de 18% produzem R$ 18,00; esses números não recomendam tributação.

<ICMS xmlns="http://www.portalfiscal.inf.br/nfe">
  <ICMS00>
    <orig>0</orig>
    <CST>00</CST>
    <modBC>3</modBC>
    <vBC>100.00</vBC>
    <pICMS>18.00</pICMS>
    <vICMS>18.00</vICMS>
  </ICMS00>
</ICMS>

O fragmento contém toda a alternativa ICMS00, mas não contém identificação da nota, produto, demais tributos, totais ou assinatura. Não está pronto para transmissão.

Como investigar um problema de ICMS

  1. Leia o código e a mensagem do retorno; identifique o item, o modelo, a finalidade, o CRT e o ambiente.
  2. Confira a alternativa efetivamente serializada e seus campos, usando o namespace correto. Um relatório resumido pode ocultar o ancestral que distingue campos homônimos.
  3. Para erro de schema, compare ordem, cardinalidade, enumerações, formatos e blocos completos com o pacote aplicável. Para rejeição de negócio, confira a regra, sua condição, exceções e adoção pela UF.
  4. Confira os totais pelos campos correspondentes: vBC/vICMS próprios, vBCST/vICMSST da ST no item, FCP e monofásicos têm somatórios diferentes. No total ICMSTot, a ST usa vBCST e vST: vST totaliza vICMSST dos itens, conforme W06-10/534 do MOC p.120. Somar toda tag chamada “ICMS” não produz um total válido.
  5. Corrija a origem comprovada do erro no cadastro, cálculo ou serialização. Preserve o XML autorizado; editar conteúdo assinado invalida sua integridade.

A verificação XSD não calcula tributos, não decide incidência e não comprova autorização. Para definir a alternativa, reúna documentação do produto, origem, regime, UFs, destinatário, finalidade, data e fundamento aplicável com o responsável contábil. Depois dessa definição, a integração pode conferir a representação técnica sem presumir dados ausentes.

Qual versão sustenta esta explicação

A estrutura e os exemplos foram conferidos no PL 010f v1.04. A ficha técnica pode oferecer outras versões selecionáveis. Compare o pacote escolhido e o efetivamente usado pelo emissor; uma declaração deste pacote não deve ser atribuída automaticamente a todo XML histórico. Datas de ativação de regras, quando indicadas, pertencem à validação específica e não comprovam a implantação de um pacote em cada autorizadora.

Referência técnica para integração

XPath completo
/nfeProc/NFe/infNFe/det/imposto/ICMS
Namespace
http://www.portalfiscal.inf.br/nfe
Leiaute
4.00 · PL_010e_v1.02
Ocorrências no XSD
1–1 no contexto do elemento pai
Tipo
inline:complexType
Preenchimento no catálogo
Condicional

A ocorrência vale dentro da estrutura XML: um campo obrigatório em um grupo opcional não torna esse grupo obrigatório. A aplicação fiscal depende da operação e da versão da regra.