# Retenções em NFS-e

Na **NFS-e**, o tomador do serviço pode reter tributos federais (INSS, IRRF, PIS, COFINS, CSLL) e municipais (ISS) na fonte. As retenções variam por CNAE, tipo de tomador (PF/PJ) e legislação aplicável.

## Principais retenções

### ISS

O **ISS** é devido ao município do **prestador**, salvo as exceções da **LC 116/2003 art. 3º** (construção civil, limpeza, vigilância e outros listados), quando é devido ao **município do tomador**. Alíquota entre **2% e 5%** conforme município e item de serviço.

Quando o tomador retém o ISS, marque `ISSRetido = true` no payload.

### INSS (retenção previdenciária)

Serviços listados na **IN RFB 971** (limpeza, construção, vigilância, manutenção, serviços prestados por cessão de mão de obra) exigem retenção de **11%** quando o tomador é PJ.

### IRRF

- **1,5%** - serviços profissionais da Lei 7.450/85 (consultoria, contabilidade, advocacia, engenharia, etc.).
- **1%** - serviços de limpeza, vigilância, conservação.

Aplicável quando tomador é PJ e a soma mensal dos serviços prestados supera **R$ 666,67** (IN RFB 1.234).

### PIS, COFINS, CSLL

Retenção federal de **4,65%** (PIS 0,65% + COFINS 3% + CSLL 1%) aplicável a serviços da Lei 10.833/2003 quando tomador é PJ e valor ultrapassa limite legal.

## Como a Brasil NFe trata

A API **não calcula automaticamente** alíquotas de retenção a partir do tomador (PF/PJ) ou CNAE - os valores devem vir preenchidos no payload da NFS-e. Quando algum campo de retenção é informado, ele é repassado para o XML do município destino sem transformação.

Exceções: padrões nacionais como ABRASF aplicam, em determinadas configurações, alíquotas default de 0,65% (PIS), 3% (COFINS) e 1% (CSLL) quando os campos correspondentes são omitidos. Em municípios com layout próprio, esses defaults podem não ser aplicados.

## Cuidado

- As regras variam por município - o valor do ISS pode mudar conforme o enquadramento local.
- MEI e Simples Nacional têm regras próprias de retenção - confira antes de emitir.
- Na NFS-e, os valores retidos aparecem como campos separados; o valor líquido é `vServicos − somaRetencoes`.
- Marcar `ISSRetido = true` **não calcula** o ISS retido automaticamente - você ainda precisa preencher `ValorIssRetido` quando o município exigir.

## Ver também

- [NFS-e por município](/conceitos-fiscais/nfse-por-municipio)
- [Regimes Tributários (CRT)](/conceitos-fiscais/regimes-tributarios)
