Pular para o conteúdo
Fiscal ProBiblioteca
NF-e e NFC-e · PIS e PIS-ST

pPIS em PISOutr: alternativa percentual e campos que a acompanham

<pPIS>det › imposto › PIS › PISOutr › pPIS

Revisão editorial em 27 de set. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.

pPIS em PISOutr é o percentual do PIS, Programa de Integração Social, usado quando outras operações são representadas por cálculo sobre base monetária. Está em /nfeProc/NFe/infNFe/det/imposto/PIS/PISOutr/pPIS.

Ele não aparece em toda representação de PISOutr. Sua presença depende da alternativa de cálculo, enquanto sua exigência dentro da alternativa percentual acompanha vBC.

Campo obrigatório na alternativa percentual

PISOutr exige CST, um dos pares vBC/pPIS ou qBCProd/vAliqProd, e depois vPIS. A escolha é exclusiva: o par percentual não é informado junto do par por quantidade, mesmo que algum valor seja zero.

O grupo possui domínio de CST 49, 50–56, 60–67, 70–75, 98 e 99. A existência de pPIS não transforma PISOutr em PISAliq, cujo domínio é diferente. O CST não fornece sozinho um percentual universal. MOC 7.0, Anexo I, páginas 53–54.

Um gerador pode obter método, base e percentual dos parâmetros já confirmados da operação. Não deve decidir o método simplesmente porque encontrou um campo preenchido no cadastro, sem garantir a correspondência com o tratamento efetivo.

Percentual e precisão

Hipótese sintética: CST 49, base de R$ 750,00 e percentual 1,60% previamente definidos para explicar a conta:

750 × 1,60 ÷ 100 = R$ 12,00.

<PISOutr xmlns="http://www.portalfiscal.inf.br/nfe">
  <CST>49</CST>
  <vBC>750.00</vBC>
  <pPIS>1.6000</pPIS>
  <vPIS>12.00</vPIS>
</PISOutr>

É um fragmento sintético e parcial, não pronto para transmissão. Os parâmetros não são sugestão de tributação. 1.6000 representa 1,60%; o fator equivalente na conta é 0,016. Gravar o fator na tag sem ajustar o cálculo gera diferença de escala.

No XSD real PL_010d_v1.03, referência histórica, pPIS usa TDec_0302a04: até três inteiros e, se houver fração, duas a quatro casas. O padrão também admite zero e inteiros. 1.60 e 1.6000 representam o mesmo percentual; 1.6, 1,60 e 1.60000 não seguem essa faceta. Schemas 010d v1.03, PISOutr/pPIS e tipos básicos.

Zero aceito no XSD não significa percentual correto para a operação. Também não significa “método por quantidade”: enviar pPIS zero ainda mantém esse campo dentro da alternativa percentual. A ausência do dado fiscal não deve ser convertida em zero.

vAliqProd, da outra alternativa, tem unidade de reais por unidade, não percentual. Não existe conversão automática entre esses parâmetros sem os dados e a definição da operação.

Sintoma de mistura de métodos

Se o erro aparece ao encontrar qBCProd depois de pPIS, confira se o gerador criou os dois pares. Mesmo com um par zerado, os elementos continuam presentes e a escolha estrutural continua duplicada.

Se pPIS aparece sem vBC, verifique a origem e o transporte da base. Se o cálculo diverge, compare o percentual confirmado, o literal enviado, a conversão por 100 e a base monetária efetiva. Evite arredondar o percentual antes de compreender a precisão requerida; o formato não estabelece tolerância de rejeição.

A correção de serialização é preservar o par correspondente ao método confirmado. A definição do método e do percentual, caso ainda duvidosa, precisa da operação, produto, regime e fundamento para avaliação do responsável contábil. Não descarte valores para forçar autorização nem edite XML assinado.

A relação continua em vBC de PISOutr, vPIS e na alternativa vAliqProd.

Referência técnica para integração

XPath completo
/nfeProc/NFe/infNFe/det/imposto/PIS/PISOutr/pPIS
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