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

pDif no ICMS51: percentual do diferimento e cálculo da parcela

<pDif>det › imposto › ICMS › ICMS51 › pDif

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

pDif é o percentual de diferimento do ICMS no grupo ICMS51. O campo aparece em /nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS51/pDif e define a parcela do imposto da operação representada em vICMSDif.

O percentual se aplica ao imposto anterior ao diferimento (vICMSOp), não diretamente ao valor do produto nem à base monetária. O percentual aplicável depende do fundamento legal da operação e da UF; o XML não escolhe esse parâmetro.

Como separar pDif dos outros percentuais

pICMS é a alíquota que participa do cálculo do imposto sobre vBC. pRedBC é redução da base antes desse cálculo. pDif é a fração do imposto da operação que fica diferida. pFCPDif descreve o diferimento do FCP em bloco separado e não deve receber automaticamente o mesmo valor.

Exemplo sintético: uma base já definida em R$ 1.000,00 e alíquota 18% produzem vICMSOp=180.00. Com pDif=40.00, a parcela diferida é 180 ×40/100 =72, e o devido é 180−72 =108. Aplicar 40% diretamente sobre R$ 1.000,00 produziria R$ 400,00, uma conta de outra grandeza e incompatível com essa relação.

Diferimento parcial e total

No diferimento parcial, o percentual deixa uma parcela devida na operação. Para o exemplo acima, 40% diferidos deixam 60% do imposto, isto é, R$ 108,00. Não se informa pDif=60.00 só porque 60% são devidos: a tag expressa a parcela diferida.

No diferimento total, o MOC orienta informar 100. Com o mesmo imposto de R$ 180,00, pDif=100.00 corresponde a R$ 180,00 diferidos e R$ 0,00 devidos. Isso não transforma vBC ou vICMSOp em zero. Os dois cenários são aritméticos e não recomendam 40% ou 100% para a operação do leitor. MOC 7.0, p.33 e 110.

Formato e presença no XML

O campo é individualmente opcional (0–1) no XSD. O tipo TDec_0302a04Max100 admite valores de 0 a 100, com até quatro casas na parte fracionária conforme seu pattern. Quando o valor é 100 com casas, elas precisam ser zero; 100.01 não cabe no tipo. Use ponto decimal e não inclua o símbolo %.

Grupo sintético completo de diferimento total, parcial em relação à nota e sem aptidão de transmissão:

<ICMS51 xmlns="http://www.portalfiscal.inf.br/nfe">
  <orig>0</orig>
  <CST>51</CST>
  <modBC>3</modBC>
  <vBC>1000.00</vBC>
  <pICMS>18.00</pICMS>
  <vICMSOp>180.00</vICMSOp>
  <pDif>100.00</pDif>
  <vICMSDif>180.00</vICMSDif>
  <vICMS>0.00</vICMS>
</ICMS51>

Rejeição 352 e campos ausentes

A N16c-10/352 do MOC é facultativa por UF, para modelo 55 e CST 51. Confere vICMSDif contra vICMSOp ×pDif/100. A nota *4 prevê arredondamento da multiplicação para duas casas e tolerância de R$ 0,01 para mais ou para menos na validação.

A regra considera os campos opcionais não informados como zero. Essa convenção explica uma rejeição quando o emissor envia o imposto diferido, mas omite seu percentual ou o imposto da operação; não autoriza concluir que um percentual desconhecido seja zero na operação real.

Para diagnosticar, confira o valor definido no parâmetro fiscal, a precisão armazenada, o XML efetivamente gerado e o produto com vICMSOp. Verifique se houve troca entre parcela devida e diferida ou cópia de pRedBC/pFCPDif. Confirme com o responsável contábil fundamento, UF, data e operação quando o percentual material estiver em dúvida. Corrija a origem comprovada e depois confira também vICMS = vICMSOp−vICMSDif; não ajuste o percentual por tentativa de autorização.

Referências oficiais

Referência técnica para integração

XPath completo
/nfeProc/NFe/infNFe/det/imposto/ICMS/ICMS51/pDif
Namespace
http://www.portalfiscal.inf.br/nfe
Leiaute
4.00 · PL_010e_v1.02
Ocorrências no XSD
0–1 no contexto do elemento pai
Tipo
TDec_0302a04Max100 · 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.

pattern
0(\.[0-9]{2,4})?|[1-9]{1}[0-9]{0,1}(\.[0-9]{2,4})?|100(\.0{2,4})?
whiteSpace
preserve