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

CST no ICMSPart: códigos 10, 20 e 90 no schema atual

<CST>det › imposto › ICMS › ICMSPart › CST

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

CST dentro de ICMSPart identifica a situação tributária da partilha e aceita os textos 10, 20 ou 90 no PL 010f v1.04. Ele é obrigatório e vem após orig. A presença de um desses valores não demonstra, por si, que a operação exige ICMSPart ou que os parâmetros da partilha estão corretos.

Por que MOC e XSD apresentam listas diferentes

A tabela de ICMSPart no MOC 7, Anexo I, p.39, lista 10, tributada com cobrança por substituição tributária, e 90, outras situações. O XSD atual acrescenta 20, descrito como redução de base de cálculo. Essa diferença precisa ser preservada: afirmar que o PL 010f aceita somente 10/90 seria incorreto; afirmar que sua enumeração determina o tratamento fiscal também seria. Fonte estrutural: XSD PL 010f v1.04.

O nome do grupo continua ICMSPart para os três códigos. Não renomeie o grupo para ICMS20 apenas porque CST 20 foi definido: esse grupo é outra alternativa, com sequência própria. Também não envie CSOSN nesse campo.

Campos obrigatórios não desaparecem ao trocar o código

Em ICMSPart, a declaração não condiciona os campos ST ao valor do CST. modBC, vBC, pICMS, vICMS, modBCST, vBCST, pICMSST, vICMSST, pBCOp e UFST permanecem obrigatórios. pRedBC, pMVAST e pRedBCST são opcionais estruturalmente, com condições fiscais e de validação próprias. Se a operação real não é representável por esses campos, é preciso conferir a escolha do grupo, sem inventar zeros para completar o XML.

ICMSPart é rejeitado em NFC-e por N12-50/741, independentemente de o CST ser aceito em outro grupo do modelo 65. CST 20 permitido na NFC-e não libera ICMSPart. Consulte MOC 7, Anexo I.

Exemplo de CST 20 com redução previamente definida

Hipóteses exclusivamente sintéticas: referência própria R$ 1.000,00, pBCOp 60%, redução 20% da parcela de R$ 600,00, base final R$ 480,00 e alíquota 12%, imposto R$ 57,60. Base ST assumida R$ 1.400,00 a 18%, com abatimento próprio hipotético de R$ 57,60, resulta R$ 194,40. O exemplo demonstra uma possibilidade estrutural; não prescreve ordem de cálculo ou benefício para a operação do leitor.

<ICMSPart xmlns="http://www.portalfiscal.inf.br/nfe">
  <orig>0</orig>
  <CST>20</CST>
  <modBC>3</modBC>
  <vBC>480.00</vBC>
  <pRedBC>20.00</pRedBC>
  <pICMS>12.00</pICMS>
  <vICMS>57.60</vICMS>
  <modBCST>4</modBCST>
  <pMVAST>40.00</pMVAST>
  <vBCST>1400.00</vBCST>
  <pICMSST>18.00</pICMSST>
  <vICMSST>194.40</vICMSST>
  <pBCOp>60.00</pBCOp>
  <UFST>SP</UFST>
</ICMSPart>

É o grupo completo em fragmento parcial de nota, sem comprovação de enquadramento fiscal.

Quais rejeições comparar com o contexto

N12-20/590, atualizada pela NT 2024.001 p.12, confronta CST com CRT 1/4; a exceção monofásica 02/15/53/61 não inclui 10/20/90. N12-10/527, facultativa no modelo 55, trata CFOP iniciado por 7 com CST diferente 41 ou CSOSN diferente 300, exceto devolução finNFe 4. Consulte NT 2024.001 v1.20, p.12.

Em NF-e para não contribuinte (indIEDest=9), N12-70/508 admite 20 na lista;10/90 não pertencem à lista principal. Antes de atribuir incompatibilidade, confira as exceções gerais de entrada, item veicProd e emissão em produção anterior a 01/07/2016. A exceção por UF para 10 em operação interna não é permissão geral para partilha interestadual. Essas regras descrevem validações; não sugerem mudar código, CFOP ou destinatário verdadeiro.

Como conferir e corrigir a representação

Localize /nfeProc/NFe/infNFe/det/imposto/ICMS/ICMSPart/CST com namespace NF-e e nItem correto. Para erro XSD, confira literal textual de dois caracteres, grupo escolhido e obrigatórios. Para erro fiscal, confronte modelo, CRT, CFOP, finalidade, destinatário e a regra efetivamente retornada.

Quando a dúvida envolver qual CST representa a operação, leve produto, documentos, regime, UFs, redução/benefício e data ao responsável contábil. A integração só deve serializar o código confirmado e preservar sua origem; não deve selecionar 10,20 ou 90 a partir de um rótulo genérico ou da aceitação no XSD.

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/ICMSPart/CST
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:xs:string · string
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.

enumeration
10
enumeration
20
enumeration
90
whiteSpace
preserve