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

ICMS00: campos, cálculo e conferência do CST 00 no XML

<ICMS00>det › imposto › ICMS › ICMS00

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

ICMS00 é o grupo do item que representa ICMS com CST 00, tributado integralmente. Ele reúne origem da mercadoria, modalidade da base, base de cálculo, alíquota e valor do ICMS próprio. Se houver FCP aplicável nesse contexto, também reúne seu percentual e valor. Ler o grupo permite conferir como os parâmetros já definidos para a operação foram representados e calculados; o nome da tag, sozinho, não determina o enquadramento correto de uma venda.

No XML processado, procure nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS00. Sem o protocolo, o caminho começa em NFe. Cada det é um item: dois produtos podem ter dados tributários diferentes. A definição e os campos constam do MOC 7.0, Anexo I, p. 25–26.

Nesta página:

O que conferir sobre a aplicação

Dentro de ICMS, o leiaute oferece alternativas de tributação. ICMS00 é uma dessas alternativas, com CST fixo em 00. Não se coloca CST 20 ou CSOSN 102 dentro dele para aproveitar seus campos. Primeiro precisam estar definidos o regime do emitente e a situação tributária do item; a geração do XML representa essa definição.

Confira emit/CRT, origem e destino, identificação do produto, finalidade da nota, CFOP e eventuais condições legais da operação. Esses dados não são uma tabela automática para escolher CST nesta página. São o contexto que deve acompanhar a confirmação do enquadramento, da modalidade de base, de seus componentes e das alíquotas com o responsável contábil.

A NT 2024.001 v1.20, regra N12-20, p. 12 relaciona CST informado para CRT=1 ou CRT=4 à rejeição 590, regra facultativa para NF-e/NFC-e. A exceção dessa regra abrange CST 02, 15, 53 e 61; não abrange CST 00. Logo, uma regra antiga que mencione somente CRT 1 não basta para uma conferência atual. Tampouco basta ver CRT 2 ou 3 para concluir que o item necessariamente pertence ao CST 00: regime e situação do item são dimensões diferentes.

O grupo de FCP é estruturalmente opcional. Isso não significa que o emissor possa escolher livremente ignorar FCP incidente. Incidência e percentual dependem da operação e das condições oficiais; uma vez confirmados, a representação precisa respeitar o grupo e suas validações.

Todos os campos e sua origem

Campo Significado e origem Formato e dependência
orig Origem fiscal da mercadoria, sustentada por cadastro e documentação de origem/conteúdo de importação. Não é a UF do fornecedor. Um código de um dígito, obrigatório.
CST Situação tributária representada por essa alternativa. Obrigatório e fixo em 00, preservando os dois dígitos.
modBC Modalidade que identifica como a base foi determinada. Vem do parâmetro fiscal confirmado. Obrigatório; domínio 0, 1, 2 ou 3.
vBC Valor monetário da base apurada para o item. Vem da memória de cálculo e dos componentes sujeitos à base. Obrigatório, tipo TDec_1302: não negativo, até 13 dígitos inteiros; fração com duas casas.
pICMS Percentual do ICMS próprio, sem FCP. Vem da alíquota confirmada para o contexto fiscal. Obrigatório, tipo TDec_0302a04: até três dígitos inteiros; fração com duas a quatro casas.
vICMS Valor calculado de ICMS próprio. Não é o preço nem o imposto por substituição tributária. Obrigatório, tipo monetário TDec_1302.
pFCP Percentual relativo ao Fundo de Combate à Pobreza quando aplicável nessa representação. Integra sequência opcional; se ela existe, pFCP e vFCP aparecem juntos, nessa ordem. Fração com duas a quatro casas.
vFCP Valor monetário do FCP. Neste CST, sua conferência utiliza vBC × pFCP / 100. Obrigatório dentro da sequência de FCP, tipo TDec_1302.

O pacote oficial de schemas da NT 2022.002 v1.30 permite conferir sequência e tipos em leiauteNFe_v4.00.xsd e tiposBasico_v4.00.xsd. O tipo monetário também aceita representação inteira; os exemplos usam duas casas para facilitar a leitura. XML usa ponto decimal, sem R$, separador de milhar ou vírgula.

orig possui significados distintos, que não podem ser reduzidos a “nacional ou importado”:

Código Significado no MOC
0 Nacional, exceto os casos dos códigos 3, 4, 5 e 8.
1 Estrangeira, importação direta, exceto código 6.
2 Estrangeira, adquirida no mercado interno, exceto código 7.
3 Nacional, conteúdo de importação superior a 40% e até 70%.
4 Nacional, produção conforme os processos produtivos básicos das legislações citadas nos Ajustes.
5 Nacional, conteúdo de importação até 40%.
6 Estrangeira, importação direta, sem similar nacional em lista da CAMEX e gás natural.
7 Estrangeira, adquirida no mercado interno, sem similar nacional em lista da CAMEX e gás natural.
8 Nacional, conteúdo de importação superior a 70%.

Já modBC aceita 0 para margem de valor agregado, 1 para pauta, 2 para preço tabelado máximo e 3 para valor da operação. O código identifica o método; não armazena o percentual de uma margem, o preço de uma pauta nem o montante da base. Esses parâmetros e seus fundamentos devem ser conferidos na origem do cálculo. O fato de um código estar no schema não o torna aplicável a toda mercadoria.

Não existe vBCFCP dentro de ICMS00. Outros grupos, como ICMS10 e ICMS20, possuem contexto próprio para base de FCP. Também não existem aqui pRedBC, vICMSST, vICMSDeson e indDeduzDeson. Acrescentá-los ao grupo errado não expressa uma exceção fiscal; produz estrutura incompatível.

Base e cálculo passo a passo

O leiaute define o que vBC representa, mas não transforma toda base em vProd. Para conferir sua formação, reúna os valores do item, os descontos e os acréscimos, o rateio de frete/seguro/despesas quando existente e o critério fiscal confirmado de inclusão ou exclusão de cada parcela. A existência de frete no documento não prova, isoladamente, sua participação na base; a memória deve explicar essa participação. O mesmo vale para IPI e outros componentes.

Exemplo sintético: para demonstrar a conferência, suponha CST 00 e modalidade 3 já definidos; R$ 1.000,00 de mercadorias, R$ 50,00 de desconto, R$ 30,00 de frete e R$ 20,00 de outra despesa. Assuma expressamente que a base deste exemplo inclui esses acréscimos e desconta o desconto, sem outros componentes. Assuma ICMS de 18% e FCP de 2% aplicável nesta representação. Esses parâmetros são didáticos, não uma sugestão para a operação do leitor.

  1. Mercadorias após o desconto: 1.000,00 − 50,00 = 950,00.
  2. Base assumida: 950,00 + 30,00 + 20,00 = 1.000,00. Assim, vBC=1000.00.
  3. Percentual do ICMS em fator: 18 / 100 = 0,18.
  4. ICMS próprio: 1.000,00 × 0,18 = 180,00. Assim, vICMS=180.00.
  5. FCP separado: 1.000,00 × 2 / 100 = 20,00. Assim, vFCP=20.00.

Não grave pICMS=20.00 nem vICMS=200.00 para juntar os dois tributos. O MOC define pICMS sem FCP e reserva campos próprios ao fundo.

Para notas de finalidade normal (finNFe=1), a N17-20 compara, nos CST 00, 10, 20 e 70, vICMS com base e alíquota. A N17c-10 verifica FCP informado e, em CST 00, utiliza a mesma vBC. O MOC, p. 111 e nota *4, p. 117 determina arredondar o produto para duas casas e considerar tolerância de R$ 0,01 para mais ou para menos nessas validações. Tolerância de autorização não é uma orientação para ajustar o imposto artificialmente.

Exemplo de arredondamento sem caso de empate: com base sintética R$ 123,45 e percentual de 18%, 123,45 × 0,18 = 22,221, representado como 22.22. Arredonde o resultado monetário; não descarte antes a precisão da base ou da alíquota recebida. Para consolidar a nota, reconcilie os valores monetários efetivamente gravados nos itens, em vez de calcular um único imposto sobre bases agregadas com alíquotas potencialmente diferentes.

XML comentado

Este fragmento representa somente o grupo do exemplo anterior. Omite os demais dados do item e da nota, assinatura e protocolo; não é documento pronto para transmissão.

<ICMS00 xmlns="http://www.portalfiscal.inf.br/nfe">
  <orig>0</orig> <!-- origem nacional assumida apenas neste exemplo -->
  <CST>00</CST> <!-- alternativa tributada integralmente -->
  <modBC>3</modBC> <!-- valor da operação, método assumido -->
  <vBC>1000.00</vBC> <!-- base demonstrada na memória de cálculo -->
  <pICMS>18.00</pICMS> <!-- percentual do ICMS, sem FCP -->
  <vICMS>180.00</vICMS> <!-- 1000 × 18 / 100 -->
  <pFCP>2.00</pFCP> <!-- incidência e percentual assumidos -->
  <vFCP>20.00</vFCP> <!-- 1000 × 2 / 100 -->
</ICMS00>

Se FCP não incidir, a orientação da N17b-10 é não informar os campos relativos ao fundo. Isso é diferente de enviar pFCP=0.00. O tipo TDec_0302a04Opc tem anotação que descreve valor não zero, mas seu pattern aceita 0.00; a validação de autorização rejeita percentual igual a zero com código 880. Portanto, “passou no schema” não significa “será autorizado”.

Diferenças para outros grupos

Comparação Diferença que deve ser reconhecida
ICMS00 e CST 00 O primeiro é o contêiner XML; o segundo é o código fixo dentro dele. orig permanece separado.
ICMS00 e ICMS10 O MOC descreve ICMS10 como tributado com cobrança por substituição tributária; ele inclui informações próprias de ST que não pertencem a ICMS00.
ICMS00 e ICMS20 ICMS20 representa redução de base. Sua estrutura contém pRedBC e pode conter desoneração conforme suas condições. Não se introduz redução no ICMS00 só alterando um número.
ICMS00 e ICMS51 ICMS51 representa diferimento e possui valores/percentuais próprios desse cálculo. A diferença entre imposto da operação e diferido não é a fórmula do ICMS00.
CST e CSOSN São sistemas de códigos e grupos distintos. CSOSN não é um CST de três dígitos a inserir em ICMS00.
vICMS do item e ICMSTot/vICMS O primeiro é o imposto daquele det; o segundo consolida a nota conforme a regra de totalização.
vFCP, vFCPST e vFCPUFDest Representam contextos diferentes: FCP próprio, por ST e relativo à UF de destino. Não são nomes intercambiáveis.

Essas diferenças ajudam a reconhecer uma inconsistência de representação; não selecionam o grupo adequado para a empresa.

Diagnóstico por evidência

Comece pelo nItem e pelo XML efetivamente enviado. Compare a definição fiscal aprovada, os dados que alimentaram o cálculo e os valores serializados. O total de uma tela pode refletir outra versão do rascunho.

Sintoma ou retorno O que conferir Como distinguir a causa
Erro de schema Ordem dos campos, CST=00, tipos decimais e presença do par FCP. Vírgula decimal, campo de outro grupo ou ausência de campo obrigatório são problemas estruturais, distintos da incidência fiscal.
528 — N17-20 Em finalidade normal, produto vBC × pICMS / 100, arredondado, versus vICMS daquele item. Se XML e memória divergem, revise a geração; se concordam mas o cálculo diverge, examine seus dados e fórmula.
880 — N17b-10 Percentual FCP informado igual a zero. Não represente ausência de incidência por um par com percentual zero. Confirme incidência antes de reconstruir o grupo.
874 — N17b-20 Percentual FCP perante tabela definida por UF do emitente. Uma conta aritmética correta não valida uma alíquota de outra UF ou condição.
860 — N17c-10 FCP informado em finalidade normal, base vBC do ICMS00 e percentual pFCP. Verifique se a integração usou base de outro grupo ou incluiu FCP em vICMS.
876 — N17c-20 NF-e interestadual (idDest=2) para consumidor final (indFinal=1), não contribuinte (indIEDest=9), com vFCP informado. Nesse cenário documentado, o FCP, quando existir, deve estar em vFCPUFDest. Não basta renomear o campo sem conferir todo o grupo de destino.
531, 532 ou 861 Somatórios de base, ICMS ou FCP dos itens versus respectivos totais. Diferencie conta errada em um item de consolidação errada de vários itens.
610 Composição de ICMSTot/vNF. ICMS próprio e FCP próprio não são parcelas adicionais da fórmula geral da W16-10. A 610 é outro diagnóstico.

As relações acima estão no MOC, regras N17 e W03/W04/W16, com a composição atualizada da W16-10 na NT 2023.004 v1.20. N17-20 e W03/W04 do ICMS são facultativas; as regras de FCP citadas têm aplicação obrigatória no MOC. Ausência de rejeição não certifica enquadramento ou apuração.

Corrija a origem comprovada no emissor, gere novamente e confira o mesmo item e os totais afetados. Não edite o XML já assinado. Se a divergência estiver na modalidade, nos componentes da base, na incidência ou no percentual fiscal, leve ao responsável contábil a operação, UF, produto, documentos de origem e memória de cálculo; depois confira a representação do parâmetro confirmado.

Para aprofundar tarefas específicas, veja modBC, vBC, pICMS, vICMS, pFCP e vFCP.

Referência técnica para integração

XPath completo
/nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS00
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.