qBCProd em PISOutr: quantidade de base, unidade e conversão
<qBCProd>det › imposto › PIS › PISOutr › 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 é a quantidade usada como base do PIS, Programa de Integração Social, na alternativa por quantidade de PISOutr. Fica em /nfeProc/NFe/infNFe/det/imposto/PIS/PISOutr/qBCProd. Multiplicada por vAliqProd, em reais por unidade, produz vPIS.
A conferência precisa preservar tanto o número quanto sua unidade. Uma quantidade numericamente válida pode gerar imposto errado quando a unidade não corresponde ao valor unitário.
Quantidade dentro da alternativa correta
PISOutr contém CST e escolhe entre vBC/pPIS e qBCProd/vAliqProd, seguido de vPIS. Na alternativa por quantidade, qBCProd é obrigatório junto de vAliqProd; não pode ser combinado com pPIS percentual nem com a base monetária da outra alternativa. MOC 7.0, Anexo I, páginas 53–54.
PISOutr não se torna PISQtde apenas por usar quantidade. O primeiro tem domínio próprio de CST; PISQtde admite CST 03. O método e a classificação precisam corresponder à operação definida.
Unidade da base e conversão
A unidade a que se refere vAliqProd precisa corresponder à unidade da base. Não copie qCom, quantidade comercial, ou qTrib, quantidade tributável do produto, sem confirmar essa correspondência para o cálculo específico.
Exemplo exclusivamente sintético: suponha operação fictícia com método por quantidade, CST 99 e base definida em litros. A documentação hipotética informa oito caixas de 12 litros, totalizando 96 litros; o parâmetro assumido é R$ 0,1250 por litro. A conta é:
8 caixas × 12 litros/caixa = 96 litros;
96 litros × R$ 0,1250/litro = R$ 12,00.
<PISOutr xmlns="http://www.portalfiscal.inf.br/nfe">
<CST>99</CST>
<qBCProd>96.0000</qBCProd>
<vAliqProd>0.1250</vAliqProd>
<vPIS>12.00</vPIS>
</PISOutr>
O fragmento é parcial e sintético, não pronto para transmissão; método, código, unidade e parâmetro não são recomendação tributária. O fator 12 foi declarado como informação do exemplo, não deduzido do nome do produto.
Usar qBCProd=8 mantendo R$ 0,1250 por litro produziria R$ 1,00, pois misturaria caixas e litros. Isso localiza um possível erro de unidade; não autoriza assumir litros para outra operação. Sem fator comprovado e unidade definida, a conversão está incompleta.
Representação e rastreio da quantidade
No XSD real PL_010d_v1.03, referência histórica, PISOutr/qBCProd usa TDec_1204v: até 12 inteiros e de uma a quatro casas na parte fracionária, se presente. Zero e inteiros também são aceitos. 96, 96.0 e 96.0000 seguem esse padrão; 96.00000, vírgula decimal e texto de unidade dentro da tag não seguem. Schemas 010d v1.03, PISOutr/qBCProd e tipos básicos.
A tag não carrega o nome da unidade. A memória de cálculo e os dados de origem precisam demonstrar essa relação. Zero estrutural não é substituto de quantidade desconhecida. Não arredonde a base fracionária para inteiro apenas porque o valor de PIS será monetário.
Diante de divergência, compare quantidade comercial, unidade da base confirmada, fator documental de conversão, quantidade calculada e literal enviado. Uma diferença múltipla do tamanho da embalagem sugere onde investigar; não prova o fator.
Se o erro é estrutural, confira o par completo e a exclusividade de alternativas. Se o número diverge, recalcule o produto usando os valores enviados, preserve a precisão e confira a apresentação monetária de vPIS. Corrija a origem demonstrada, gere e valide novamente, sem editar XML assinado.
A definição da unidade e do método cabe à confirmação da operação com o responsável contábil; apresente dados do produto, unidades, quantidades e documento que sustenta a conversão.
Compare vAliqProd de PISOutr, vBC de PISOutr e qBCProd de PISQtde.
Referência técnica para integração
- XPath completo
/nfeProc/NFe/infNFe/det/imposto/PIS/PISOutr/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