pPIS em PISST: alíquota percentual do PIS por substituição
<pPIS>det › imposto › PISST › pPISRevisã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 PISST é o percentual usado no cálculo do PIS, Programa de Integração Social, por substituição tributária sobre base monetária. Seu XPath é /nfeProc/NFe/infNFe/det/imposto/PISST/pPIS.
O campo tem a mesma unidade percentual de alguns grupos do PIS próprio, mas pertence a outro cálculo. Sua presença não autoriza copiar a alíquota do PIS próprio nem determina a soma ao total da nota.
Percentual sobre base de PIS-ST
PISST escolhe entre vBC/pPIS e qBCProd/vAliqProd. No cálculo percentual, pPIS vem depois de vBC; depois vêm vPIS obrigatório e, opcionalmente, indSomaPISST. O grupo não contém CST interno. MOC 7.0, Anexo I, página 54, NT 2020.005 v1.21, página 15.
Na alternativa por quantidade, usa-se valor em reais por unidade, não pPIS. Informar ambos os pares, mesmo que um esteja zerado, viola a escolha estrutural.
Escala e casas decimais
Hipótese sintética: base R$ 960,00 e percentual 1,25% já definidos para uma operação fictícia. O valor de PIS-ST é 960 × 1,25 ÷ 100 = R$ 12,00.
<PISST xmlns="http://www.portalfiscal.inf.br/nfe">
<vBC>960.00</vBC>
<pPIS>1.2500</pPIS>
<vPIS>12.00</vPIS>
<indSomaPISST>0</indSomaPISST>
</PISST>
O fragmento é sintético, parcial da nota e não pronto para transmissão. Parâmetros e indicador são hipóteses de representação, sem indicação tributária. 1.2500 significa 1,25%; o fator equivalente é 0,0125. Gravar o fator como percentual e dividir novamente por 100 produziria R$ 0,12, cem vezes menos.
No XSD real PL_010d_v1.03, referência histórica, pPIS usa TDec_0302a04: até três inteiros e, se há fração, duas a quatro casas; zero e inteiros também são aceitos. 1.25 e 1.2500 seguem o padrão; 1.2, 1,25 e 1.25000 não seguem. Schemas 010d v1.03, PISST e tipos básicos.
A base vBC desse grupo usa TDec_1302Opc, que não admite zero no pacote histórico. A alíquota aceitar zero não torna a base zero estruturalmente aceita. Isso também não determina que uma alíquota zero seja adequada à operação. Ausência de parâmetro não deve virar zero.
A precisão de pPIS não define tolerância de rejeição ou um arredondamento universal do resultado. Preserve o parâmetro confirmado ao calcular, separando entrada percentual de apresentação monetária.
Alíquota, valor e total são separados
indSomaPISST=0 no exemplo não zera o imposto de R$ 12,00. Ele indica que esse valor não compõe vNF. Com indicador 1, o valor permanece R$ 12,00 e passa a integrar a parcela de PIS-ST condicionada em W16-10. Ausência do indicador não satisfaz “igual a 1”. NT 2020.005 v1.21, R07.
PISST/vPIS é R06, distinto de Q09 do PIS próprio e de ICMSTot/vPIS. Não some tributos diferentes apenas porque seus nomes são semelhantes.
Conferência do contexto
Para erro de presença, confira modelo e tpImp: R01-10, rejeição 746, alcança NFC-e e NF-e com DANFE Simplificado Tipo 2, tpImp=6, conforme NT 2026.002 v1.10a, marco de produção 03/08/2026. Não trate toda NF-e modelo 55 como contexto permitido para PISST. NT 2026.002, páginas 3 e 18.
Para erro estrutural, confira o par vBC/pPIS e a ordem, sem misturar quantidade. Para divergência de conta, compare base, percentual confirmado, fator interno e literal XML. A escala, a precisão e a origem da base devem ser rastreadas separadamente.
A definição de incidência, base e percentual de PIS-ST precisa da operação, produto, regime e fundamento para confirmação com o responsável contábil. Corrija a causa comprovada e gere novamente; não altere percentual ou indicador para fechar total nem edite XML assinado.
Veja vBC de PISST, vPIS e indSomaPISST.
Referência técnica para integração
- XPath completo
/nfeProc/NFe/infNFe/det/imposto/PISST/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