CST no ICMSPart: códigos 10, 20 e 90 no schema atual
<CST>det › imposto › ICMS › ICMSPart › CSTRevisã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