Reforma Tributária
O módulo suporta os campos da Reforma Tributária (RTC) na emissão de NFS-e. Esta página reúne o que cada campo significa, onde configurá-lo e qual valor prevalece quando ele está definido em mais de um lugar.
Os campos se dividem em dois grupos com regras diferentes:
- NBS, Indicador da Operação e Classificação Tributária: obrigatórios apenas para empresas nos regimes Lucro Real ou Lucro Presumido. Empresas em outros regimes podem preenchê-los, mas não são obrigadas.
- PIS, COFINS e Tipo de Tributação: opcionais em qualquer regime. Preencha somente se precisar declarar esses tributos ou definir o regime de tributação do ISSQN.
Em ambos os casos, campos em branco são omitidos do payload e não afetam a emissão — quem não precisa deles não precisa preencher nada.
Para o contexto completo da Reforma Tributária, consulte a documentação da NFE.io sobre o tema.
Campos e onde configurá-los
| Campo | Emissor (padrão) | Código de serviço | Alíquotas & Retenções | Preenchimento |
|---|---|---|---|---|
| Nomenclatura Brasileira de Serviços (NBS) | ✅ | ✅ | — | Obrigatório no Lucro Real/Presumido |
Indicador da Operação (operationIndicator) | ✅ | ✅ | — | Obrigatório no Lucro Real/Presumido |
Classificação Tributária IBS/CBS (classCode) | ✅ | ✅ | — | Obrigatório no Lucro Real/Presumido |
| Retenção de ISS (%) | ✅ | — | ✅ | Opcional |
| Alíquota de PIS (%) | ✅ | — | ✅ | Opcional |
| Alíquota de COFINS (%) | ✅ | — | ✅ | Opcional |
Tipo de Tributação do ISSQN (taxationType) | ✅ | — | ✅ | Opcional |
- Emissor (padrão): Configurações do Módulo → Definições de Emissores
- Código de serviço: Código de Serviço, por produto/serviço
- Alíquotas & Retenções: Retenções, por código de serviço
Precedência na emissão
A resolução dos valores segue duas regras distintas — atenção à diferença, ela é a origem da maior parte das dúvidas.
Classificação do serviço (NBS, Indicador da Operação, Classificação Tributária)
Produto com código de serviço personalizado?
├── Sim → usa os campos do registro do código de serviço (mesmo que vazios)
└── Não → usa os campos padrão do emissor
Se o produto possui um código de serviço personalizado, os três campos vêm do registro do produto. Deixá-los em branco ali significa enviá-los vazios na nota — o padrão do emissor não entra como reserva.
Alíquotas e tributação (ISS, PIS, COFINS, Tipo de Tributação)
Existe alíquota cadastrada para o código de serviço?
├── Sim → usa o valor da tela Alíquotas & Retenções
└── Não → usa o valor padrão do emissor
└── Vazio → campo omitido na nota
Aqui a herança é campo a campo: é possível, por exemplo, definir só a alíquota de PIS no código de serviço e deixar COFINS e Tipo de Tributação herdando o padrão do emissor.
Qual emissor é usado
Antes de resolver qualquer campo, o módulo determina o emissor da nota:
- Se o cliente possui um emissor associado (Associar Emissor), esse emissor e seus padrões são usados.
- Caso contrário, é usado o emissor padrão definido nas configurações.
Os códigos de serviço e as alíquotas são sempre buscados para o emissor resolvido — cada emissor tem seus próprios registros.
Agrupamento das notas
Uma NFS-e comporta apenas um conjunto de atributos fiscais. Por isso, os itens da fatura são agrupados pela combinação completa de código de serviço + NBS + indicador da operação + classificação tributária, e cada grupo gera uma nota própria.
Uma fatura com itens de classificações fiscais diferentes resulta em múltiplas notas fiscais.
Como os valores chegam à nota
Para conferência e diagnóstico, estes são os campos enviados no payload de emissão:
| Configuração no módulo | Campo na API |
|---|---|
| NBS | nbsCode |
| Indicador da Operação | IbsCbs.operationIndicator |
| Classificação Tributária | IbsCbs.classCode |
| Retenção de ISS (%) | issAmountWithheld (valor calculado) |
| Alíquota de PIS (%) | pisRate (fração decimal) e pisAmount (valor calculado) |
| Alíquota de COFINS (%) | cofinsRate (fração decimal) e cofinsAmount (valor calculado) |
| Tipo de Tributação (ISSQN) | taxationType |
Notas sobre o cálculo:
- Você informa as alíquotas de PIS e COFINS em percentual (ex.:
0,65e3,00). O módulo as envia à API como fração decimal (0.0065e0.03), e na nota elas voltam a aparecer como percentual — 0,65% e 3,00%. - Os valores são calculados sobre o valor dos serviços do grupo fiscal, arredondados para duas casas:
valor dos serviços × alíquota ÷ 100. Em uma nota de R$ 100,00 com as alíquotas do exemplo, isso resulta em R$ 0,65 de PIS e R$ 3,00 de COFINS. - Os valores de PIS e COFINS são enviados sem retenção.
- Campos vazios são omitidos do payload e não afetam a emissão.
O payload completo de cada emissão fica registrado no Log de Módulo do WHMCS quando o Modo Depuração está ativo.
Tipo de Tributação do ISSQN
Valores aceitos no campo Tipo de Tributação (ISSQN) (taxationType):
| Valor | Descrição |
|---|---|
None | Nenhum |
WithinCity | Tributável no município |
OutsideCity | Tributável fora do município |
Export | Exportação de serviço |
Free | Isento |
Immune | Imune |
SuspendedCourtDecision | Suspenso por decisão judicial |
SuspendedAdministrativeProcedure | Suspenso por processo administrativo |
OutsideCityFree | Fora do município / Isento |
OutsideCityImmune | Fora do município / Imune |
OutsideCitySuspended | Fora do município / Suspenso |
OutsideCitySuspendedAdministrativeProcedure | Fora do município / Suspenso (processo administrativo) |
ObjectiveImune | Imune objetivo |
Quando o campo não é informado em nenhum nível, a API assume WithinCity.
Tabelas de referência
Use as tabelas oficiais para determinar os códigos corretos para os seus serviços:
- Tabela de Correlação — LC 116, NBS, Indicador de Operação e Classificação Tributária
- Tabela de Referência — Indicador da Operação (indOp)
- Tabela de Referência — CST e Classificação Tributária (IBS/CBS)
Reemissão
A reemissão de uma nota preserva todos os atributos fiscais da nota original (NBS, indicador de operação, classificação tributária, PIS/COFINS e tipo de tributação). Para reemitir com uma classificação diferente, ajuste antes a configuração do emissor ou do código de serviço e gere uma nova nota.