qBCProd em COFINSOutr: quantidade da base e conversão de unidade
<qBCProd>det › imposto › COFINS › COFINSOutr › qBCProdRevisão editorial em 27 de set. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.
qBCProd em COFINSOutr é a quantidade utilizada no ramo de cálculo por valor específico da COFINS. O caminho é det/imposto/COFINS/COFINSOutr/qBCProd. Ela acompanha vAliqProd, o valor em reais por unidade, para produzir vCOFINS.
Identifique a unidade antes de copiar a quantidade
O manual descreve qBCProd como quantidade vendida, mas a conferência do cálculo exige que essa quantidade esteja na unidade correspondente à alíquota em reais. A tag é numérica; não contém um texto de unidade ao lado. É preciso identificar a unidade pela definição fiscal e pelos dados da operação. MOC 7.0, Anexo I, p. 56.
Quantidade comercial qCom, quantidade tributável qTrib do produto e qBCProd podem coincidir em um caso definido, mas isso não é uma igualdade universal imposta pelo nome das tags. Se há embalagem, peso ou volume, confira a relação entre a unidade comercial e a da base, com fator documentado e aplicável ao produto.
qBCProd também não é vBC. A primeira é quantidade; a segunda, base monetária do ramo percentual. Substituir uma pela outra conserva números, mas muda sua unidade e o sentido da conta.
Exemplo com embalagem e unidade da base
Assuma exclusivamente para ilustração duas embalagens de 5 litros, uma base quantitativa previamente definida em litros e alíquota específica fictícia de R$ 0,30 por litro. A conversão física assumida produz 2 × 5 = 10 litros. A conta da contribuição é 10 × 0,30 = R$ 3,00.
Com CST 99 também assumido somente para demonstrar a estrutura, o fragmento sintético e parcial da nota seria:
<COFINSOutr xmlns="http://www.portalfiscal.inf.br/nfe">
<CST>99</CST>
<qBCProd>10</qBCProd>
<vAliqProd>0.30</vAliqProd>
<vCOFINS>3.00</vCOFINS>
</COFINSOutr>
Não está pronto para transmissão nem sugere incidência por litro, CST ou valor legal. A unidade de base foi uma hipótese expressa.
Copiar a quantidade comercial 2 para qBCProd, mantendo R$ 0,30 por litro, produziria R$ 0,60: a conta usaria embalagens com um parâmetro por litro. Para investigar diferença desse tipo, confira os dois lados da relação de unidade. Não compense a quantidade errada multiplicando arbitrariamente a alíquota.
Em outro caso didático, uma base já definida de 2,5 unidades e valor de R$ 0,40 por unidade gera R$ 1,00. O resultado não é obtido com divisão por 100, pois vAliqProd não é porcentagem.
Ramo, formato e conferência
COFINSOutr exige uma escolha entre vBC/pCOFINS e qBCProd/vAliqProd. qBCProd é obrigatório quando o ramo quantitativo foi escolhido e fica ausente no ramo percentual. CST vem antes do par; vCOFINS vem depois. Não envie uma quantidade sem seu valor por unidade nem misture os dois pares. PL_010d_v1.03, COFINSOutr.
No XSD histórico 010d, qBCProd usa TDec_1204v, com até 12 inteiros e uma a quatro casas na parte fracionária, além das alternativas inteiras e zero do padrão. 2.5 e 2.5000 representam a mesma quantidade; use ponto e nenhum sufixo de unidade. O tipo não decide se zero corresponde ao caso nem autoriza truncar uma quantidade real incompatível.
Diante de divergência, compare unidade confirmada, quantidade comercial, fator de conversão, quantidade calculada e qBCProd serializado. Uma diferença pode ser de conversão, precisão ou mapeamento; localize-a antes de modificar o dado. Se falta a unidade fiscal, obtenha a definição e documentação com o responsável contábil.
Depois confira o vAliqProd de COFINSOutr e o resultado monetário. Corrija a causa comprovada na origem, gere nova prévia e valide o pacote do ambiente. Não edite XML assinado nem escolha uma quantidade que apenas produza o valor desejado.
Referência técnica para integração
- XPath completo
/nfeProc/NFe/infNFe/det/imposto/COFINS/COFINSOutr/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