CST no ICMS00: por que o XML exige o texto 00
<CST>det › imposto › ICMS › ICMS00 › 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 em ICMS/ICMS00/CST identifica a situação tributada integralmente. Nesse caminho, o PL 010f v1.04 admite exclusivamente 00, com dois caracteres. A tag não aceita 0, 000, 20 ou um CSOSN. Essa restrição valida a representação; não decide se ICMS00 é o tratamento correto da operação.
Origem e CST não formam um único campo XML
Uma apresentação fiscal pode reunir origem e situação em um código composto. No XML, a origem ocupa orig e a situação ocupa CST. Se a origem comprovada for 0 e a situação já definida for 00, a representação é orig=0 e CST=00. Não grave 000 em CST. A origem pode ter outro código válido sem alterar o literal 00 exigido por ICMS00.
O caminho completo é /nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS00/CST; use o namespace NF-e e o nItem correto. CST de ICMS20 e CSOSN de ICMSSN102 têm ancestrais diferentes e não podem ser misturados.
Quais dados acompanham CST 00
Dentro de ICMS00, orig, CST, modBC, vBC, pICMS e vICMS são obrigatórios, nessa ordem. modBC identifica o método da base; vBC contém a base monetária já formada; pICMS é a alíquota própria sem FCP; vICMS é o valor do imposto. O par opcional pFCP/vFCP, quando aplicável, vem depois. ICMS00 não contém pRedBC ou dados de ICMS-ST.
Exemplo sintético parcial, com origem 0, base de R$ 250,00 e alíquota hipotética de 12%, já definidos para demonstrar a serialização. R$ 250,00 × 12/100 = R$ 30,00. Os parâmetros não são indicação para o leitor.
<ICMS00 xmlns="http://www.portalfiscal.inf.br/nfe">
<orig>0</orig>
<CST>00</CST>
<modBC>3</modBC>
<vBC>250.00</vBC>
<pICMS>12.00</pICMS>
<vICMS>30.00</vICMS>
</ICMS00>
Quando CST 00 passa no schema e falha na autorização
O MOC, p.99, N12-10/527, verifica NF-e de exportação com CFOP iniciado por 7: CST diferente de 41 ou CSOSN diferente de 300 é incompatível com essa regra facultativa, exceto devolução (finNFe=4). Isso não autoriza trocar a classificação da operação apenas para contornar um retorno.
N12-20/590, atualizada pela NT 2024.001 v1.20, p.12, trata CST para CRT 1 ou 4, com exceção dos monofásicos 02, 15, 53 e 61. CST 00 não está nessa exceção. Compare o CRT real e a representação do item antes de corrigir o emissor.
Na NFC-e, CST 00 integra a relação admitida por N12-30. Mesmo assim, N12-40/382 exige CFOP dentre 5101, 5102, 5103, 5104, 5115 e 5910 na redação da NT 2024.001, p.12. As permissões específicas para CST 90 em RS/CE não se estendem a CST 00. Para NF-e a não contribuinte, CST 00 integra a relação de N12-70 e sua presença isolada não explica a rejeição 508. Consulte NT 2024.001 v1.20, p.12.
Conferência e correção da causa
Se o erro for de schema, confira se um tipo numérico converteu o texto 00 em 0, se o grupo foi trocado ou se apareceu espaço no valor. Preserve CST como código textual na integração. Se o retorno for 528, a regra facultativa N17-20 compara o imposto com base × alíquota em nota normal (finNFe=1); não é erro no literal 00. Confira base, alíquota, arredondamento e totalização, em vez de alterar o CST.
Se o CST material estiver em dúvida, a decisão depende de produto, origem, operação, regime, destinatário, UFs e data. Leve esses dados ao responsável contábil. A correção técnica será regenerar uma representação coerente com a definição confirmada, sem editar o XML já assinado e sem presumir que a troca de código garante autorização.
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/ICMS00/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
00- whiteSpace
preserve