qBCProd em COFINSQtde: base quantitativa, unidade e precisão
<qBCProd>det › imposto › COFINS › COFINSQtde › qBCProdRevisão editorial em 27 de set. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.
A qBCProd em COFINSQtde informa a quantidade que será multiplicada pela alíquota específica da COFINS. Ela fica em det/imposto/COFINS/COFINSQtde/qBCProd, no grupo cujo domínio de CST é 03. É uma quantidade, e não uma base monetária ou o valor da contribuição.
A unidade da base orienta a leitura
O manual descreve o campo como quantidade vendida. Para conferir a conta, porém, é necessário identificar a unidade à qual se refere o parâmetro vAliqProd. O produto qBCProd × vAliqProd só corresponde ao valor em reais quando a quantidade e a alíquota específica usam unidades compatíveis. MOC 7.0, Anexo I, p. 54.
qCom expressa quantidade comercial e qTrib a quantidade tributável informada no grupo do produto. Os nomes não impõem que ambos sejam iguais a qBCProd em toda operação. A quantidade da base deve ser rastreada nos dados do item e na definição fiscal aplicada, incluindo eventual fator de conversão documentado.
Se a venda usa uma caixa e a base definida usa unidades contidas na caixa, o fator precisa corresponder ao produto efetivo. Não presuma equivalência entre embalagem, litro, quilograma ou outra unidade. Se falta a definição, obtenha-a com o responsável contábil, junto de produto, operação, regime e documentação.
Exemplo com quantidade fracionária
Assuma exclusivamente para ilustração CST 03 já definido, base de 2,125 unidades e valor específico fictício de R$ 0,80 por unidade. A conta é 2,125 × 0,80 = R$ 1,70.
Fragmento sintético, parcial da nota e não pronto para transmissão; não sugere incidência, unidade fiscal ou alíquota para o leitor:
<COFINSQtde xmlns="http://www.portalfiscal.inf.br/nfe">
<CST>03</CST>
<qBCProd>2.125</qBCProd>
<vAliqProd>0.80</vAliqProd>
<vCOFINS>1.70</vCOFINS>
</COFINSQtde>
Se o emissor cortasse a quantidade para 2 unidades antes de calcular, o resultado seria R$ 1,60. A diferença vem da perda de 0,125 unidade de base, não da representação final de moeda. A alíquota e a quantidade não devem ser reduzidas automaticamente às duas casas do resultado.
Em um cenário de conversão independente, assuma quatro embalagens contendo 0,5 unidade de base cada. A quantidade convertida seria 2 unidades. Usar 4 como qBCProd, mantendo a alíquota por unidade da base, duplicaria a conta. Essa demonstração é uma hipótese física e não determina a unidade tributária de qualquer produto real.
Presença obrigatória e diagnóstico
Uma vez representado COFINSQtde, qBCProd é obrigatório, junto com CST, vAliqProd e vCOFINS. Não há escolha percentual interna nesse grupo. Usar vBC/pCOFINS em seu lugar não representa a mesma estrutura.
No XSD histórico PL_010d_v1.03, qBCProd usa TDec_1204v: até 12 inteiros e uma a quatro casas quando há parte fracionária, com alternativas para inteiro e zero no padrão. 2.125 e 2.1250 têm o mesmo significado numérico nessa referência; 2,125, unidade textual ou separador de milhares não correspondem ao formato. PL_010d_v1.03, COFINSQtde e tipos básicos.
Zero aceito no tipo não deve substituir uma quantidade desconhecida. Uma quantidade com mais precisão do que o contrato permite exige investigar a origem e a definição, não truncar silenciosamente. As facetas citadas são históricas; confira o pacote efetivo do ambiente.
Para diagnosticar, compare quantidade comercial, unidade da base, fator de conversão, quantidade resultante na memória e tag serializada. Confira o valor específico vAliqProd e a multiplicação sem dividir por 100. Se o problema for formato, corrija a representação sem alterar o dado real; se for conversão, corrija o fator comprovado na origem. Gere nova prévia e valide sem editar XML assinado ou escolher quantidade para alcançar um resultado predeterminado.
Referência técnica para integração
- XPath completo
/nfeProc/NFe/infNFe/det/imposto/COFINS/COFINSQtde/qBCProd- 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_1204v · 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]{1,4}|[1-9]{1}[0-9]{0,11}|[1-9]{1}[0-9]{0,11}(\.[0-9]{1,4})?- whiteSpace
preserve