vBC de PISAliq: base monetária do PIS e conferência do cálculo
<vBC>det › imposto › PIS › PISAliq › vBCRevisão editorial em 27 de set. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.
vBC, em PISAliq, representa a base de cálculo em reais do PIS, Programa de Integração Social. Está em /nfeProc/NFe/infNFe/det/imposto/PIS/PISAliq/vBC, depois de CST e antes de pPIS. É uma entrada da conta; vPIS é o resultado.
Localizar esse caminho evita confundir a base de PIS com as bases de ICMS, COFINS, outras modalidades de PIS ou PIS-ST. Um mesmo nome XML não indica um mesmo valor.
Base monetária e origem
Em PISAliq, a relação matemática é vPIS = vBC × pPIS ÷ 100. O MOC descreve vBC como valor da base de cálculo e pPIS como percentual. Isso explica como aplicar uma base definida, mas não fornece uma fórmula universal para formar essa base. MOC 7.0, Anexo I, página 52.
O emissor deve obter a base da memória de cálculo da operação, com os parâmetros fiscais confirmados. Não se conclui somente pelo XML que vBC é igual a vProd, inclui todas as despesas ou exclui ICMS. Para conferir a composição, são necessários valores do item, descontos, encargos, outros tributos quando pertinentes e o fundamento adotado para aquela operação.
Não transforme uma base desconhecida em zero. Tampouco escolha uma base para fazer coincidir um imposto previamente esperado.
Comparar duas bases com o mesmo percentual
Em cenário sintético, suponha CST 01 e alíquota 1,25% já definidos. Para base R$ 800,00, o resultado é R$ 10,00; para base R$ 760,00, resulta R$ 9,50. A diferença de R$ 0,50 decorre dos R$ 40,00 de diferença da base.
Essa comparação ajuda a localizar a causa da divergência, mas não decide se uma das bases é juridicamente correta. Nenhuma parcela de R$ 40,00 foi classificada como dedução permitida no exemplo.
<PISAliq xmlns="http://www.portalfiscal.inf.br/nfe">
<CST>01</CST>
<vBC>800.00</vBC>
<pPIS>1.2500</pPIS>
<vPIS>10.00</vPIS>
</PISAliq>
O fragmento é parcial e sintético, não pronto para transmissão. Os parâmetros ilustram a conta; não são indicação de enquadramento ou percentual.
Precisão e zero
No XSD real PL_010d_v1.03, referência estrutural histórica, essa base usa TDec_1302: até 13 dígitos inteiros; duas casas se houver parte decimal. O padrão também admite inteiros e zero. Assim, 800.00 é uma representação monetária aceita; 800,00, R$ 800.00 e 800.001 não pertencem ao formato. Schemas 010d v1.03, PISAliq/vBC e tipos básicos.
O zero estrutural não prova base zero na operação. Em PISST, o XSD histórico associa vBC a TDec_1302Opc, que não admite zero: não transporte a faceta de PISAliq para esse outro caminho.
Em PISQtde a entrada é qBCProd, uma quantidade, e não uma base monetária. Em PISOutr pode existir vBC, mas somente na alternativa percentual e com outro domínio de CST.
Diagnóstico pela memória de cálculo
Para base divergente, preserve o XML e compare quatro registros: valor de origem, parcelas da memória de cálculo, resultado interno antes da serialização e literal enviado em vBC. Isso distingue uma composição fiscal diferente de um erro de transporte.
Se a origem é R$ 800,00 e o XML é 80000.00, investigue conversão de centavos ou separadores. Se a diferença coincide com desconto, frete ou tributo, confira se a parcela foi tratada conforme o parâmetro confirmado; a coincidência é um indício de onde olhar, não autorização para excluir ou incluir a parcela.
Recalcule vPIS com a base e o percentual efetivamente enviados. Corrija a etapa comprovadamente errada, gere e valide novamente. Não edite XML assinado. A definição da base legal deve ser confirmada com o responsável contábil usando operação, produto, regime, valores e fundamento de cada parcela.
Compare os caminhos de vBC em PISOutr e vBC em PISST.
Referência técnica para integração
- XPath completo
/nfeProc/NFe/infNFe/det/imposto/PIS/PISAliq/vBC- 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_1302 · 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}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?- whiteSpace
preserve