ICMS00: campos, cálculo e conferência do CST 00 no XML
<ICMS00>det › imposto › ICMS › ICMS00Revisã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
- Todos os campos e sua origem
- Base e cálculo passo a passo
- XML comentado
- Diferenças para outros grupos
- Diagnóstico por evidência
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.
- Mercadorias após o desconto:
1.000,00 − 50,00 = 950,00. - Base assumida:
950,00 + 30,00 + 20,00 = 1.000,00. Assim,vBC=1000.00. - Percentual do ICMS em fator:
18 / 100 = 0,18. - ICMS próprio:
1.000,00 × 0,18 = 180,00. Assim,vICMS=180.00. - 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.