Dúvida sobre preenchimento de retenção PIS/COFINS e campo vRetCSLL no padrão atual da NFS-e Nacional

Boa tarde a todos.

Estou com uma dúvida prática em relação ao preenchimento do XML da NFS-e Nacional após a Nota Técnica que trata do campo tpRetPisCofins e da agregação das retenções no campo vRetCSLL.

Conforme a observação do manual:

  • Atualmente o schema permite apenas:

    • 1 – PIS/COFINS Retido

    • 2 – PIS/COFINS Não Retido

  • E, havendo retenção de PIS, COFINS e/ou CSLL, os valores devem ser SOMADOS e informados no campo vRetCSLL.

  • Os campos vPis e vCofins não devem ser utilizados para informar valores RETIDOS.

Minha dúvida prática é a seguinte:

Hoje tenho duas formas possíveis de montar o XML:

:small_blue_diamond: Opção 1 (que estou usando atualmente):
O valor líquido (vLiq) não considera o desconto de PIS/COFINS, mantendo apenas o ISS e demais retenções.
O PIS/COFINS fica tratado separadamente no grupo federal.

:small_blue_diamond: Opção 2:
Somar CSLL + PIS + COFINS dentro de vRetCSLL, refletindo essa retenção também no cálculo do vLiq, conforme interpretação literal da Nota Técnica.

Gostaria de saber:

  1. Qual abordagem vocês estão utilizando na prática?

  2. Estão somando efetivamente PIS + COFINS + CSLL dentro de vRetCSLL?

  3. O vLiq de vocês está considerando essa soma como retenção efetiva?

  4. Alguém já teve rejeição ou apontamento de contador/auditoria por conta desse modelo?

Percebo que ainda há bastante divergência de entendimento entre contadores e desenvolvedores, e gostaria de alinhar com quem já está validando isso em produção.

Desde já agradeço a contribuição de todos.

1 curtida

:one: PIS/COFINS Próprio – Sobre o Faturamento

Os valores destacados no grupo <piscofins> referem-se ao PIS e à COFINS próprios da empresa, calculados sobre a base de R$ 10.000,00.

  • PIS (1,65%) → R$ 165,00

  • COFINS (7,60%) → R$ 760,00

Esses valores representam a tributação normal incidente sobre o faturamento (CST 01) e não se tratam de retenção na fonte.


:two: Retenções Federais – Informadas em <vRetCSLL>

Além da tributação própria, há as retenções federais efetuadas pelo tomador do serviço, calculadas sobre a mesma base de R$ 10.000,00:

  • PIS retido (0,65%) → R$ 65,00

  • COFINS retido (3,00%) → R$ 300,00

  • CSLL retida (1,00%) → R$ 100,00

Total das retenções:
R$ 465,00

Esse valor está consolidado no campo:

<vRetCSLL>465.00</vRetCSLL>

:pushpin: Campo <tpRetPisCofins>

O campo <tpRetPisCofins> tem função exclusivamente identificadora, ou seja, ele indica quais tributos compõem o valor informado em <vRetCSLL>.

No exemplo:

<tpRetPisCofins>3</tpRetPisCofins>

O código 3 significa: PIS / COFINS / CSLL Retidos

Ou seja, o valor de R$ 465,00 informado em <vRetCSLL> corresponde à soma das retenções de PIS, COFINS e CSLL efetuadas na fonte.

1 curtida

No tangente ao campo tpRetPisCofins, a nota técnica https://www.gov.br/nfse/pt-br/biblioteca/documentacao-tecnica/rtc/nt-007-se-cgnfse-v1-0.pdf diz: “atualmente no schema só são permitidos os tipos 1 e 2“.

Enviei algumas DPS’s com o tipo 3 e o sistema estranhamente acatou sem questionar, já que deveria permitir somente os tipos 1 e 2, mas tive alguns problemas ao usar a consulta pública NFS-e | Consulta Pública de NFS-e :

1 - Na aba “Outros Tributos”, Tipo de Retenção do PIS/Cofins aparece como “Não informado“.

2 - Ao tentar baixar o PDF do DANFSe clicando em “Download DANFS-e“, recebo um erro 500 ao invés do PDF.

Além disso, parece que se for gerar uma nota pelo emissor web https://www.gov.br/nfse/pt-br/biblioteca/documentacao-tecnica/documentacao-atual/guia-emissorpubliconacionalweb_snnfse-ern-v12.pdf, só vai encontrar as opções 1 (Retido) e 2 (Não Retido).

No emissor web a documentação está desatualizada, as novas opções 0 e 3 a 9 estão aparecendo, mas os problemas citados na Consulta pública persistem.

Obrigado pela explicação, agora ficou mais claro.

Então, pelo que entendi:

  • O grupo <piscofins> informa o PIS e COFINS próprios da empresa (tributação normal sobre o faturamento – CST 01), não se tratando de retenção.

  • Quando houver retenção na fonte, os valores retidos de PIS, COFINS e CSLL devem ser somados e informados exclusivamente no campo <vRetCSLL>.

  • O campo <tpRetPisCofins> tem apenas função identificadora, indicando se houve retenção (atualmente o schema permite apenas 1 ou 2).

  • IRRF e INSS permanecem em seus campos próprios (<vRetIRRF> e <vRetCP>).

No meu caso prático:

Base: R$ 7.440,00
PIS retido (0,65%): 48,36
COFINS retido (3%): 223,20
CSLL retido (1%): 74,40

Total consolidado em:
<vRetCSLL>345.96</vRetCSLL>

E IRRF (1%) e INSS (11%) informados separadamente.

Agora entendi que o valor líquido deve considerar todas as retenções (INSS + IRRF + PIS/COFINS/CSLL).

Agradeço pela explicação, realmente esse ponto da NT ainda gera bastante dúvida.

Segue print para .xml

Acabei de conferir pelo emissor nacional e aceitou:

image

Emitente estado de SP.

Vê em NFS-e | Consulta Pública de NFS-e se os problemas que citei acontecem com a sua nota.

Realmente usando a consulta publica da erro 500.

Corrigindo exemplo:

bom dia @MuriloMenegasso, sobre o campo <tpRetPisCofins>, não sei se percebeu. Temos um xsd de 09/02/2026, que possui todos os valores da nt 007.

Se puder da uma conferida em Documentação Atual — Portal da Nota Fiscal de Serviço eletrônica

@Benilson, sobre a consulta, não tenho o que falar. Aparentemente problema ou instabilidade no ambiente.

Acredito que o tema da abertura inicial desse fórum foi atendido.

Eu não faço uso do tpRetPisCofins = 1, para o exemplo que você trouxe, eu utilizo o 3.

Bom dia, amigo.

Entendo seu ponto. O que acontece é que, ao utilizar o tpRetPisCofins = 3, quando o cliente vai consultar a DANFSe, o sistema acaba retornando erro 500.

Na live oficial (https://youtu.be/9DH7-4xWVJg), eles comentam que o 1 e o 0 serão descontinuados futuramente, mas também deixam claro que por enquanto ainda precisam ser utilizados. Inclusive, orientam manter:

  • 1 para retido

  • 0 para não retido

Por isso estou mantendo dessa forma, para evitar inconsistência na consulta da DANFSe até que a mudança esteja efetivamente aplicada no ambiente oficial.

Se você conseguiu usar o 3 sem gerar erro na consulta, me fala qual ambiente está utilizando (produção ou homologação), porque pode ser alguma diferença de versão.

Entendi, no nosso caso aqui, nos geramos o DANFSe, o nosso sai até com logo da empresa prestadora de serviço.

Entendi :+1:

Eu também gero a DANFSe própria, até para ter uma visualização melhor por item quando preciso detalhar algo para o cliente.

O ponto é que alguns clientes aqui utilizam o QR Code para validar diretamente no portal nacional se a DANFSe está realmente registrada e válida no sistema. Quando eles fazem essa consulta e o XML foi transmitido com tpRetPisCofins = 3, acaba retornando erro 500 na validação.

Quando você fala cliente, esta se referindo ao tomador destacado na nota, se for ele pode consultar direto pelo emissor web.

NFSe Recebidas

Caramba, se for em notas emitidas com tipo 3 dá para gerar o DANFSe, parece que o erro é exclusivamente da Consulta Pública, que fica no QRCode do PDF.

Perfeito!!
Sim estou me referindo ao tomador destacado na nota :+1:

De fato, ele pode consultar direto pelo emissor web em NFSe Recebidas, e até orientamos nesse sentido.

O ponto é que, na prática, alguns tomadores acabam utilizando apenas o QR Code da DANFSe para validação rápida no portal nacional. Quando ocorre o erro 500, mesmo que a nota esteja correta, isso gera questionamento e retrabalho para explicar.