ICMS90: estrutura do CST 90, diferimento, ST e FCP no XML
<ICMS90>det › imposto › ICMS › ICMS90Revisão editorial em 14 de out. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.
ICMS90 é a alternativa do ICMS do item que identifica o CST 90 — outras situações. Fica em det/imposto/ICMS, sem coexistir com outra alternativa desse mesmo ICMS no item. Seu nome não determina se há imposto próprio, substituição tributária, redução, diferimento ou desoneração: essas informações ocupam blocos diferentes, com condições próprias.
Neste artigo:
- Como identificar a aplicação e o modelo?
- Quais são os blocos e a ordem oficial?
- Como conferir os cálculos sem misturar as parcelas?
- O que fazer quando o XML falha?
- Exemplo XML sintético
- Conferência técnica e limite da orientação
Como identificar a aplicação e o modelo?
A identificação é feita pelo conjunto de orig e CST=90, pela configuração tributária documentada e pelo modelo da nota. Não se escolhe CST 90 apenas porque uma operação parece “outra”. Na NFC-e, a aceitação de CST 90 é a critério da UF em N12-30/766; mesmo quando aceito, informar ICMS90/modBCST provoca N12-34/381. Na NF-e, condições do destinatário, finalidade e CFOP também precisam ser conferidas. Para CRT 1 ou 4, N12-20/590 trata a informação indevida de CST; as exceções para CST monofásicos não tornam o 90 permitido. MOC 7.0 — Anexo I, Leiaute e Regras de Validação NT 2023.001 — Tributação monofásica sobre combustíveis NT 2024.001 — CRT=4 (MEI) e Denegação
Na NF-e modelo 55, N12-70/508 verifica a incompatibilidade de CST quando o destinatário está informado como não contribuinte (indIEDest=9). A relação geral contém CST 00, 20, 40, 41, 60 e 61; não contém 90. Para o CST 90, confira as exceções gerais: nota de entrada (tpNF=0), existência de ao menos um item de veículo novo no grupo veicProd e, em produção, emissão anterior a 01/07/2016. As exceções específicas dos CST 30, 50 ou 51 não se estendem automaticamente ao 90. Antes de alterar o cadastro ou a emissão, confronte a condição real do destinatário, o tipo da operação, a data e os grupos da nota; não modifique dados verdadeiros para contornar a rejeição. NT 2023.001 v1.60, p. 35, N12-70/508
Quais são os blocos e a ordem oficial?
orig e CST são obrigatórios dentro da alternativa. Em seguida vem o bloco opcional próprio: modBC, vBC, pRedBC opcional, cBenefRBC opcional, pICMS, trio opcional vICMSOp/pDif/vICMSDif, vICMS, trio opcional vBCFCP/pFCP/vFCP e bloco opcional pFCPDif/vFCPDif/vFCPEfet (o último valor é opcional). Fora dele vem o bloco opcional de ICMS-ST: modBCST, pMVAST e pRedBCST opcionais, vBCST, pICMSST, vICMSST, com trio opcional de FCP-ST. Ao final existem dois blocos independentes de desoneração: vICMSDeson/motDesICMS/indDeduzDeson (indicador opcional) e vICMSSTDeson/motDesICMSST. As sequências são construções do XSD: não existem tags chamadas N12.1 ou N16a. Schemas NF-e/NFC-e PL_010f_v1.04 NT 2022.002 — Equiparação à exportação e outras alterações
Como conferir os cálculos sem misturar as parcelas?
No exemplo próprio sem diferimento, R$ 1.000,00 × 18% = R$ 180,00. Com diferimento sintético de 40%, o valor da operação permanece R$ 180,00, o diferido é R$ 72,00 e o remanescente é R$ 108,00. ST possui outra base, alíquota e valor; sua formação e o abatimento do imposto próprio dependem do fundamento da operação. FCP próprio e FCP-ST também têm bases e alíquotas próprias. Redução de base muda a grandeza sobre a qual se aplica a alíquota; diferimento posterga parcela do imposto; desoneração possui motivo e valor separados. Não some essas parcelas como se fossem todas imposto próprio devido. NT 2022.002 — Equiparação à exportação e outras alterações MOC 7.0 — Anexo I, Leiaute e Regras de Validação
Para entender os filhos de benefício e desoneração, separe quatro informações: cBenefRBC é o código textual de 8 ou 10 caracteres do benefício de redução da UF, enquanto pRedBC é seu percentual de redução; vICMSDeson quantifica a desoneração própria, motDesICMS informa o motivo e indDeduzDeson indica se ela deduz o valor do item/total (0 não deduz; 1 deduz). No ICMS90, os motivos próprios são 3 (uso na agropecuária), 9 (outros) e 12 (órgão de fomento e desenvolvimento agropecuário). A desoneração da ST usa outro par, vICMSSTDeson/motDesICMSST, também com motivos 3/9/12; o indicador próprio não deve ser transferido para esse par. Esses códigos e valores representam o benefício documentado; o nome “outros” não cria desoneração. NT 2022.002 v1.30a, p. 8–9, grupo ICMS90
Em uma hipótese distinta do exemplo completo abaixo, assuma FCP próprio de R$ 20,00 e diferimento documentado de 50%: vFCPDif = 20 × 50 / 100 = R$ 10,00 e vFCPEfet = 20 − 10 = R$ 10,00. A alíquota pFCP calcula o fundo; pFCPDif divide o imposto já calculado entre parcela diferida e efetiva. Não some 20+10+10 como três valores devidos nem use o percentual do diferimento como alíquota do FCP. Essa hipótese não presume o mesmo tratamento para ICMS próprio ou FCP-ST. NT 2022.002 v1.30a, p. 8, sequência N17.2
O que fazer quando o XML falha?
Localize o det indicado no retorno e confira o modelo, CRT, CST, CFOP e os blocos efetivamente enviados. Erro de schema costuma exigir investigar ordem, tipo ou sequência incompleta; rejeição fiscal requer a condição específica do retorno. Não transporte as rejeições 351/352/353, descritas para CST 51, nem 528, cujo conjunto de CST não inclui 90, como se verificassem automaticamente o ICMS90. Valide a geração com o pacote correto e confira separadamente os somatórios do item nos totais. MOC 7.0 — Anexo I, Leiaute e Regras de Validação Schemas NF-e/NFC-e PL_010f_v1.04
Exemplo XML sintético
Exemplo sintético de NF-e modelo 55: assume origem nacional, CST 90 já definido, operação própria de R$ 1.000,00 a 18%, ST por MVA de 40% com base final de R$ 1.400,00 e abatimento próprio de R$ 180,00. Assim, ST = 1.400 × 18% − 180 = R$ 72,00. O FCP próprio de 2% é R$ 20,00. Para o FCP-ST, a comparação N23d-10 do MOC considera o produto bruto de R$ 28,00 menos os R$ 20,00 próprios: retenção de R$ 8,00. Essa regra refere-se à NF-e normal, a critério da UF. Os parâmetros são hipóteses didáticas e não definem o tratamento do leitor. Este exemplo não é aplicável à NFC-e com bloco ST.
<ICMS90 xmlns="http://www.portalfiscal.inf.br/nfe">
<orig>0</orig>
<CST>90</CST>
<modBC>3</modBC>
<vBC>1000.00</vBC>
<pICMS>18.00</pICMS>
<vICMS>180.00</vICMS>
<vBCFCP>1000.00</vBCFCP>
<pFCP>2.00</pFCP>
<vFCP>20.00</vFCP>
<modBCST>4</modBCST>
<pMVAST>40.00</pMVAST>
<vBCST>1400.00</vBCST>
<pICMSST>18.00</pICMSST>
<vICMSST>72.00</vICMSST>
<vBCFCPST>1400.00</vBCFCPST>
<pFCPST>2.00</pFCPST>
<vFCPST>8.00</vFCPST>
</ICMS90>
Este é um fragmento completo do grupo ICMS90, parcial em relação à nota. Ele demonstra forma e dependências, sem assinatura, documento completo ou autorização fiscal. Não deve ser enviado como nota pronta.
Conferência técnica e limite da orientação
Para localizar o campo em XML de nota processada, use /nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS90 com o namespace http://www.portalfiscal.inf.br/nfe. No XML de NFe sem o envelope nfeProc, o caminho começa em NFe/infNFe. Compare o item correto; campos de mesmo nome em outro CST ou nos totais têm contexto diferente.
Os parâmetros que exigem confirmação são: CST e regime, fundamento da operação própria e da ST, bases, alíquotas, redução e benefícios, aceitação da UF e modelo. Reúna a documentação da operação, a UF, a data de emissão e a memória de cálculo. Após definidos esses parâmetros, confira a geração e os valores do exemplo com os dados reais. O artigo explica a representação técnica; não escolhe enquadramento, alíquota ou benefício para a empresa. XML bem formado ou válido no XSD não comprova autorização. O pacote PL_010f_v1.04 define a estrutura examinada; a implantação de cada regra depende do cronograma específico, do modelo e da UF. Schemas NF-e/NFC-e PL_010f_v1.04
Referência técnica para integração
- XPath completo
/nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS90- 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.