vPIS de ISSQNtot: total do PIS dos serviços e rejeição 608
<vPIS>total › ISSQNtot › vPISRevisão editorial em 14 de out. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.
ISSQNtot/vPIS registra o total de PIS dos itens sujeitos ao ISSQN. A comparação W21-10 usa o PIS dos mesmos itens de serviço; não soma todo PIS da nota nem transforma PIS em ISS.
Onde ficam o total e os valores participantes
No XML processado, localize /nfeProc/NFe/infNFe/total/ISSQNtot/vPIS. No documento com raiz NFe, comece em NFe/infNFe. Use o namespace da NF-e ao selecionar o caminho.
Este é um campo da NF-e/NFC-e, no namespace da NF-e; não é uma tag de DPS ou NFS-e municipal/nacional. A existência do grupo no schema não comprova habilitação para emitir documento conjugado nem define o tratamento do serviço. Fonte: Schemas XML NF-e/NFC-e PL 010f e MOC 7 Anexo I — leiaute e regras de validação.
Q09 é o valor monetário do PIS informado no grupo det/imposto/PIS. W21-10 seleciona os itens sujeitos ao ISSQN para essa soma. O grupo PIS continua no mesmo nível do ISSQN em imposto; não crie uma tag PIS dentro de ISSQN para acomodar o total. Fonte: MOC 7 Anexo I — leiaute e regras de validação, p.123.
Como distinguir os outros contextos de PIS
ICMSTot/vPIS usa itens sujeitos ao ICMS, com existência do grupo ICMS, na regra W13-10/602. retTrib/vRetPIS representa PIS retido. PISST/vPIS representa PIS por substituição tributária. A mesma sigla não permite misturar esses valores nem subtrair automaticamente retenção do Q09. Fonte: MOC 7 Anexo I — leiaute e regras de validação, pp.59–60 e 121–123.
Exemplo com recortes diferentes
Hipótese sintética: PIS Q09 de R$ 0,60 e R$ 0,40 em dois itens sujeitos ao ISSQN resulta em ISSQNtot/vPIS=1.00. Um terceiro item com ICMS e PIS de R$ 2,00 pertence ao recorte de W13; não eleva o total de serviços para R$ 3,00. Os valores são impostos de item já definidos, sem recomendação de base, CST ou alíquota. Fonte: MOC 7 Anexo I — leiaute e regras de validação, W13-10/W21-10.
Como representar o total dos serviços
PIS de serviços é opcional no grupo, com tipo positivo TDec_1302Opc. A representação 1.00 usa ponto e fração de duas casas; zero, vazio e separador de milhar são inválidos. A omissão estrutural não decide se há contribuição na operação. Fonte: Tipos básicos NF-e/NFC-e.
Fragmento completo de ISSQNtot, parcial em relação à nota, com prestação assumida em 30/09/2026:
<ISSQNtot xmlns="http://www.portalfiscal.inf.br/nfe">
<vPIS>1.00</vPIS>
<dCompet>2026-09-30</dCompet>
</ISSQNtot>
vPIS fica depois de vISS e antes de vCOFINS, quando presentes. Fonte: Schemas XML NF-e/NFC-e PL 010f.
Como investigar a rejeição 608
A regra W21-10 compara o total com Q09 dos itens sujeitos ao ISSQN; a divergência corresponde à rejeição 608, nas condições documentadas. Leia o código e a mensagem do retorno real antes de atribuir a causa. Liste os itens participantes, preserve os valores efetivamente serializados e some-os com aritmética decimal. Compare esse resultado com a tag de total, procurando item omitido, soma duplicada, ancestral errado ou alteração posterior ao cálculo.
Corrija a origem comprovada do erro no cálculo ou no mapeamento; depois gere uma nova prévia e valide novamente o campo, os itens e o XSD aplicável. Não edite XML já assinado ou autorizado para acertar a soma. Aplicação facultativa no MOC para modelos 55/65. Separe os contextos antes de conferir centavos; uma soma global pode produzir um valor aritmeticamente correto e conceitualmente errado. A aceitação pelo XSD demonstra estrutura, não autorização nem tratamento fiscal correto. Fonte: MOC 7 Anexo I — leiaute e regras de validação.
O PIS de ICMSTot detalha o recorte de itens com ICMS e sua comparação 602.
Referência técnica para integração
- XPath completo
/nfeProc/NFe/infNFe/total/ISSQNtot/vPIS- Namespace
http://www.portalfiscal.inf.br/nfe- Leiaute
- 4.00 · PL_010e_v1.02
- Ocorrências no XSD
- 0–1 no contexto do elemento pai
- Tipo
- TDec_1302Opc · 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-9]{1}[1-9]{1}|0\.[1-9]{1}[0-9]{1}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?- whiteSpace
preserve