pCOFINS em COFINSAliq: percentual, casas decimais e cálculo
<pCOFINS>det › imposto › COFINS › COFINSAliq › pCOFINSRevisão editorial em 27 de set. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.
pCOFINS em COFINSAliq é a alíquota percentual usada com a base monetária vBC para representar a COFINS do item. O caminho é det/imposto/COFINS/COFINSAliq/pCOFINS. A tag não contém o valor do tributo nem uma alíquota em reais por unidade.
Percentual no XML e fração na conta
A relação aritmética é vCOFINS = vBC × pCOFINS ÷ 100. Se o percentual confirmado fosse 2,50%, o conteúdo de pCOFINS seria 2.50. A fração 0,025 pode ser usada internamente por um cálculo que multiplique diretamente a base, mas não é a representação desse percentual na tag.
Com base sintética de R$ 400,00 e alíquota didática de 2,50%, a conta é 400 × 2,50 ÷ 100 = R$ 10,00. Serializar 0.0250 produziria uma informação de 0,0250%, cuja conta é R$ 0,10. A diferença de cem vezes aponta para conversão de unidade, não para um problema que se resolve ajustando vCOFINS isoladamente.
Fragmento sintético e parcial da NF-e, com CST 01 e base assumidos apenas para ilustração. Não está pronto para transmissão nem recomenda tributação:
<COFINSAliq xmlns="http://www.portalfiscal.inf.br/nfe">
<CST>01</CST>
<vBC>400.00</vBC>
<pCOFINS>2.50</pCOFINS>
<vCOFINS>10.00</vCOFINS>
</COFINSAliq>
A base comercial ou tributária não é determinada por esse percentual. Ela precisa estar definida antes da conferência. O MOC 7.0, Anexo I, p. 54 distingue vBC, alíquota percentual e valor da contribuição.
Formato documentado e precisão
No XSD histórico PL_010d_v1.03, pCOFINS usa TDec_0302a04. O tipo permite até três dígitos inteiros; quando há fração, ela tem duas a quatro casas. O padrão também possui alternativas para inteiro e zero. Assim, 2.50 e 2.5000 expressam o mesmo valor numérico, enquanto 2.5 não corresponde à forma fracionária desse tipo. Vírgula decimal, símbolo %, moeda e separador de milhares não fazem parte do conteúdo. Tipos básicos do PL_010d_v1.03.
A possibilidade estrutural de informar zero ou um número de até três dígitos não significa permissão fiscal para qualquer alíquota. Tampouco o limite de quatro casas autoriza cortar um parâmetro real para fazê-lo caber. Se a origem traz precisão incompatível, confirme o parâmetro e o contrato do emissor.
Para enxergar o impacto da precisão, assuma base de R$ 10.000,00 e percentual fictício de 1,2345%. O produto é R$ 123,45. Reduzir antecipadamente para 1,23% gera R$ 123,00, diferença de R$ 0,45. É uma demonstração matemática da perda de informação, não uma regra sobre arredondamento fiscal. O resultado monetário vCOFINS possui representação própria, distinta da precisão da alíquota.
Roteiro para encontrar a origem da divergência
Comece pelo parâmetro que originou a tag: configuração fiscal aplicada ao item, sua versão e data. Confirme com o responsável contábil alíquota e base adequadas para produto, regime e operação. O artigo não escolhe esse percentual e não recomenda copiar o percentual de PIS.
Depois compare o valor da configuração com o usado na memória de cálculo e com o efetivamente serializado. Verifique se o sistema guarda porcentagem ou fração, se converte uma única vez e se preserva a precisão até o cálculo monetário. Confira também se está lendo a ocorrência correta: pCOFINS em COFINSOutr continua percentual, mas pertence a outro domínio de CST; em COFINSST representa a substituição tributária, com outra base e outro valor.
Se o XML é rejeitado pelo formato, corrija a serialização sem modificar o valor real. Se a conta não fecha, recalcule com os valores enviados e identifique onde houve conversão, perda de casas ou base divergente. Não atribua uma tolerância universal à COFINS a partir de regras de outro imposto.
Após o reparo comprovado, gere nova prévia e valide no XSD exigido pelo ambiente. Não altere arquivo assinado nem troque a alíquota para forçar autorização. A leitura da base vBC em COFINSAliq complementa essa conferência.
Referência técnica para integração
- XPath completo
/nfeProc/NFe/infNFe/det/imposto/COFINS/COFINSAliq/pCOFINS- 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
- TDec_0302a04 · 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\.[0-9]{2,4}|[1-9]{1}[0-9]{0,2}(\.[0-9]{2,4})?- whiteSpace
preserve