CST 70 no XML: código do ICMS70, origem e incompatibilidades
<CST>det › imposto › ICMS › ICMS70 › CSTRevisão editorial em 14 de out. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.
O campo CST dentro de ICMS70 contém o código 70, que identifica ICMS com redução de base de cálculo e cobrança por substituição tributária. Neste XPath, /nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS70/CST, o XSD aceita somente a string 70: o grupo e o código devem corresponder.
Por que não escrever 070 na tag CST
Em representações fiscais que combinam origem e situação tributária, pode aparecer um código de três dígitos. No XML da NF-e essas informações estão separadas: orig recebe um código de origem e CST recebe os dois dígitos da situação. Portanto, uma origem sintética 0 e CST 70 produzem duas tags, não <CST>070</CST>. A origem estrangeira tampouco altera o conteúdo fixo de CST no grupo ICMS70. Essa separação consta do MOC p. 35 e do XSD.
O que o 70 informa e o que falta confirmar
O significado reúne dois aspectos: a base de ICMS próprio sofreu redução e existe cobrança de ICMS-ST. pRedBC descreve a redução própria, vBC registra a base resultante e pICMS/vICMS representam o imposto próprio. No bloco ST, modBCST indica a modalidade, vBCST é outra base, pICMSST é a alíquota e vICMSST é o imposto retido. pRedBCST é opcional no schema; usar CST 70 não significa que a base de ST também esteja reduzida.
CST 70 não é sinônimo de toda operação com redução: ICMS20 descreve redução sem a cobrança de ST representada por ICMS70. ICMS10 descreve tributação com ST sem a redução própria que caracteriza o 70; ICMS60 trata de imposto cobrado anteriormente por ST. Esses conceitos ajudam a ler um XML, mas a classificação da operação depende da UF, mercadoria, responsabilidade, benefício, data e documentos. Leve esses dados ao responsável contábil para confirmar o enquadramento; o código não deve ser escolhido pelo menor valor calculado.
Modelo, regime e rejeições que precisam de contexto
| Conferência | Regra documentada | Consequência para CST 70 |
|---|---|---|
| NFC-e modelo 65 | N12-30, MOC p.100, rejeição 766 | O 70 não está na relação admitida |
| CRT=1 ou 4 | N12-20, NT 2024.001 v1.20 p. 12, facultativa 590 | A exceção monofásica 02/15/53/61 não abrange 70 |
| Exportação, CFOP começa 7 | N12-10, MOC p.99, rejeição 527 | Confronta com CST 41, exceto devolução finNFe4 |
| Destinatário indIEDest9 | N12-70, MOC p.101, rejeição 508 | Não há autorização geral de CST 70 pelas exceções dessa regra |
| Falta de CEST na NF-e | N23-10, MOC p. 112, rejeição 806 | CST 70 está na relação da regra; há exceção para ICMSPart |
Em N12-70/508, confira também as exceções aplicáveis ao documento antes de concluir que o CST 70 causou a rejeição: NF-e de entrada (tpNF=0), existência de ao menos um item de venda de veículo novo no grupo veicProd e documento de produção emitido antes de 01/07/2016. Essas hipóteses dispensam essa validação nas condições descritas; não escolhem o enquadramento tributário. A exceção interna específica de CST 10 a critério da UF não se transfere a CST 70, e a exceção histórica não autoriza mudar a data verdadeira de uma emissão atual.
As regras de validação possuem alcance próprio. Um XSD compartilhado por modelos 55/65 não significa que todos os CSTs possam ser usados em NFC-e. Da mesma forma, a exceção de uma família não pode ser transportada para o CST 70.
Exemplo de leitura e conferência do XML
Recorte parcial da sequência de um item sintético; os demais campos obrigatórios de ICMS70 foram omitidos nesta exibição. Não é uma NF-e pronta para transmissão.
<orig xmlns="http://www.portalfiscal.inf.br/nfe">0</orig>
<CST xmlns="http://www.portalfiscal.inf.br/nfe">70</CST>
Esses dois elementos dizem origem 0 e situação 70. O documento ainda precisa conter o restante do ICMS70 em ordem, exclusivamente dentro de ICMS do mesmo item. Os cálculos não podem ser preenchidos com dados de outro det.
Para investigar um erro, leia o código e o nItem do retorno, confira ide/mod, emit/CRT, prod/CFOP, dest/indIEDest e a memória do benefício. Se o problema é <CST>070</CST>, trata-se de representação incompatível com o schema. Se o código é 70 mas o modelo é 65, alterar espaços ou casas decimais não resolve a incompatibilidade. Corrija a origem real do problema e gere novo XML pelo emissor, preservando os dados verdadeiros.
CST 70 obriga desoneração em todo caso
A existência de redução própria não permite inventar valor ou motivo de desoneração. N12-90, na NT 2019.001 v1.70 p. 18, pode exigir vICMSDeson e motDesICMS conforme adoção por UF, modelo e CST, causando 934. Não se aplica à devolução interestadual ou exterior; outras devoluções, ajustes e entradas podem ter exceção a critério da UF. A exceção específica de CST 90 não vale para 70. Uma desoneração informada tem seu cálculo e motivo a conferir; o número do CST não fornece sozinho o valor do benefício.
Grupo completo para conferência
Este ICMS70 sintético reúne os campos do recorte e o núcleo obrigatório, na ordem do schema. É completo somente em relação ao grupo e parcial em relação à NF-e; não é documento pronto para transmissão. Os números adicionais são hipóteses didáticas, não parâmetros para uma empresa.
<ICMS70 xmlns="http://www.portalfiscal.inf.br/nfe">
<orig>0</orig>
<CST>70</CST>
<modBC>3</modBC>
<pRedBC>20.00</pRedBC>
<vBC>800.00</vBC>
<pICMS>18.00</pICMS>
<vICMS>144.00</vICMS>
<modBCST>4</modBCST>
<pMVAST>40.00</pMVAST>
<vBCST>1400.00</vBCST>
<pICMSST>18.00</pICMSST>
<vICMSST>108.00</vICMSST>
</ICMS70>
Referências oficiais
- MOC 7.0, Anexo I, leiaute e regras de validação — 7.00, novembro 2020. pp. 35–36; pp.99–101 N12-10/30/70; p. 112 N23-10
- Schemas XML da NF-e/NFC-e — PL_010f_v1.04, publicado em 31/08/2026. ICMS70/CST: enumeração 70; orig separado
- NT 2024.001, CRT=4 (MEI) e denegação — 1.20, agosto 2024. p. 12 N12-20/590
- NT 2019.001, criação e atualização de regras de validação — 1.70, agosto 2025. p. 18 N12-90
Páginas relacionadas
Referência técnica para integração
- XPath completo
/nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS70/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
70- whiteSpace
preserve