Retenção de PIS, COFINS e CSLL na fonte na NFSe Nacional

Este guia explica como preencher corretamente os campos de PIS, COFINS, CSLL e IRRF na emissão de NFSe Nacional pela API da Focus NFe, conforme os esclarecimentos da NT007.

Campos envolvidos e papel de cada um

Campos de apuração própria (independem de retenção)

Use estes campos para destacar os valores de apuração própria, mesmo quando existir retenção:

  • base_calculo_pis_cofins (vBCPisCofins): base de cálculo de PIS/COFINS.
  • aliquota_pis (pAliqPis): alíquota de PIS.
  • aliquota_cofins (pAliqCofins): alíquota de COFINS.
  • valor_pis (vPis): valor de PIS da apuração própria.
  • valor_cofins (vCofins): valor de COFINS da apuração própria.

Campos de retenção na fonte

  • tipo_retencao_pis_cofins (tpRetPisCofins): define se existe retenção e qual combinação de impostos foi retida.
  • valor_csll (vRetCSLL): recebe a soma dos valores retidos de PIS, COFINS e CSLL.
  • valor_irrf (vRetIRRF): valor retido de IRRF/IRPJ, informar somente quando houver retenção.

Códigos de retenção em tpRetPisCofins

O campo tipo_retencao_pis_cofins (tpRetPisCofins) contém os códigos que representam retenção total, parcial ou ausência de retenção.

Consulte sempre a tabela atualizada de códigos na documentação de campos:

  • https://campos.focusnfe.com.br/nfse_nacional/EmissaoDPSXml.html

Regras de cálculo e validação

Conforme a NT007:

  • aplicar arredondamento bancário (half-even) nos cálculos de PIS e COFINS;
  • considerar tolerância de R$ 0,01 para valores de PIS e COFINS;
  • manter separação conceitual entre:
    • campos de apuração própria (vPis, vCofins);
    • campos de retenção (tpRetPisCofins, vRetCSLL, vRetIRRF).

Exemplos práticos de preenchimento

Os exemplos abaixo seguem a mesma lógica dos cenários de retenção apresentados pela Focus, agora com foco no preenchimento da NFSe Nacional.

Exemplo 1: sem retenção de PIS/COFINS/CSLL e sem IRRF

Neste cenário:

  • tpRetPisCofins = "0" (não retidos);
  • vRetCSLL = 0.00;
  • vRetIRRF = 0.00.
{
  "base_calculo_pis_cofins": "150.00",
  "aliquota_pis": "0.65",
  "aliquota_cofins": "3.00",
  "valor_pis": "0.98",
  "valor_cofins": "4.50",
  "tipo_retencao_pis_cofins": "0",
  "valor_csll": "0.00",
  "valor_irrf": "0.00"
}

Exemplo 2: retenção de PIS, COFINS e CSLL (sem IRRF)

Neste cenário:

  • tpRetPisCofins indica retenção de PIS/COFINS/CSLL;
  • valor_csll (vRetCSLL) recebe a soma retida dos três impostos;
  • valor_irrf permanece zero.

Exemplo com base de R$ 400,00:

  • PIS retido (0,65%): R$ 2,60
  • COFINS retido (3,00%): R$ 12,00
  • CSLL retido (1,00%): R$ 4,00
  • Soma para vRetCSLL: R$ 18,60
{
  "base_calculo_pis_cofins": "400.00",
  "aliquota_pis": "0.65",
  "aliquota_cofins": "3.00",
  "valor_pis": "2.60",
  "valor_cofins": "12.00",
  "tipo_retencao_pis_cofins": "3",
  "valor_csll": "18.60",
  "valor_irrf": "0.00"
}

Exemplo 3: retenção de PIS, COFINS, CSLL e IRRF

Neste cenário:

  • tpRetPisCofins define a combinação de retenções de PIS/COFINS/CSLL;
  • valor_csll segue com a soma retida de PIS + COFINS + CSLL;
  • valor_irrf informa o valor retido de IRRF/IRPJ.

Exemplo com base de R$ 800,00:

  • PIS retido (0,65%): R$ 5,20
  • COFINS retido (3,00%): R$ 24,00
  • CSLL retido (1,00%): R$ 8,00
  • Soma para vRetCSLL: R$ 37,20
  • IRRF/IRPJ retido (1,50%): R$ 12,00
{
  "base_calculo_pis_cofins": "800.00",
  "aliquota_pis": "0.65",
  "aliquota_cofins": "3.00",
  "valor_pis": "5.20",
  "valor_cofins": "24.00",
  "tipo_retencao_pis_cofins": "3",
  "valor_csll": "37.20",
  "valor_irrf": "12.00"
}

Referências

  • Documentação de campos NFSe Nacional (Focus NFe):
    https://campos.focusnfe.com.br/nfse_nacional/EmissaoDPSXml.html