> ## Documentation Index
> Fetch the complete documentation index at: https://docs.engineapi.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Produto ou serviço pelo CNAE

> POST /v1/fiscal/classificar-cnae: diz se a empresa emite nota de produto, nota de serviço ou se é preciso perguntar, a partir dos CNAEs. Consultivo e sem garantia.

`POST /v1/fiscal/classificar-cnae` responde, a partir do CNAE principal e dos secundários,
se a empresa emite **nota de produto** (NF-e/NFC-e), **nota de serviço** (NFS-e) ou se a
resposta depende da operação e é preciso **perguntar** ao cliente. Serve ao onboarding: o
parceiro consulta e só pergunta (com botões, por exemplo) quando a resposta for `ambiguo`.

<CardGroup cols={3}>
  <Card title="Consultivo, nunca automático" icon="hand-point-up">
    Não escreve no cadastro do emissor; `garantia` é sempre `false`
  </Card>

  <Card title="Fonte em cada resposta" icon="book">
    `fonte` diz de onde veio a resposta e `motivo` cita o CNAE e a regra fiscal
  </Card>

  <Card title="Ambíguo é resposta, não erro" icon="circle-question">
    Quando a lei separa produto e serviço pela operação, a resposta é `ambiguo` com `dica`
  </Card>
</CardGroup>

<Warning>
  Este endpoint **não substitui a revisão do seu contador**. `garantia` é sempre `false`: a
  decisão final sobre o tipo de nota é do cliente.
</Warning>

***

## Como chamar

```json theme={null}
POST /v1/fiscal/classificar-cnae
{
  "cnaePrincipal": "4711-3/02",
  "cnaesSecundarios": ["9602-5/01"]
}
```

| Campo | Tipo | Obrigatório | Descrição |
| - | - | - | - |
| `cnaePrincipal` | string | sim | Subclasse da CNAE 2.3 com 7 dígitos, com ou sem máscara (`"4711-3/02"` ou `"4711302"`) |
| `cnaesSecundarios` | string\[] | não | Até 100 subclasses no mesmo formato. Repetidos e iguais ao principal são ignorados |

Mesma autenticação dos demais endpoints do Cérebro Fiscal (chave de parceiro e plano com o
Cérebro Fiscal habilitado). Sem chave válida, a resposta é `401`.

## Resposta

```json theme={null}
{
  "data": {
    "tipo": "ambiguo",
    "fonte": "curado",
    "motivo": "CNAE 1412-6/03 (FACÇÃO DE PEÇAS DO VESTUÁRIO, EXCETO ROUPAS ÍNTIMAS) está na tabela curada de exceções do cérebro fiscal: pode ser nota de produto ou de serviço, conforme a operação.",
    "dica": "Se você costura para uma confecção ou loja que vai revender as peças, a nota é de produto. Se costura sob medida para a pessoa que vai usar a roupa, com o tecido dela, a nota é de serviço.",
    "garantia": false
  },
  "meta": { "requestId": "req_abc123", "timestamp": "2026-10-06T18:00:00.000Z" }
}
```

| Campo | Valores | Significado |
| - | - | - |
| `tipo` | `produto`, `servico`, `ambiguo` | `produto` = NF-e/NFC-e; `servico` = NFS-e; `ambiguo` = depende da operação, pergunte ao cliente |
| `fonte` | `curado`, `lc116`, `divisao`, `conflito` | De onde veio a resposta (ver a ordem das regras abaixo) |
| `motivo` | string | O CNAE, com a descrição oficial do IBGE, e a regra que decidiu |
| `dica` | string, opcional | Frase para o cliente decidir, ou um alerta sobre a parte da operação que sai na outra nota |
| `garantia` | sempre `false` | Resposta consultiva |

## Ordem das regras

Cada CNAE (principal e secundários) passa pelas três primeiras regras, nesta ordem; a
primeira que responde decide.

1. **Tabela curada de exceções** (`fonte: "curado"`): CNAEs em que a divisão engana, cada
   linha com a fonte oficial citada. Manda sobre as outras regras.
2. **Tabela de serviço por CNAE da LC 116/2003** (`fonte: "lc116"`): CNAE que tem
   sugestão de serviço no [Serviço Padrão por CNAE](/guides/resolve-servico-padrao) é
   `servico`.
3. **Regra por divisão** (`fonte: "divisao"`): os 2 primeiros dígitos do CNAE, pela tabela
   abaixo. Na divisão 77 a resposta sai pelo grupo (3 primeiros dígitos), porque locação
   pura de bem móvel e cessão de marca ou franquia têm regimes diferentes.
4. **Secundários** (`fonte: "conflito"`): se o principal é `produto` e algum secundário é
   `servico` (ou o contrário), a resposta é `ambiguo` e o `motivo` cita os CNAEs em conflito.
   Secundário `ambiguo` ou do mesmo tipo do principal não muda a resposta.

## Tabela por divisão (CNAE 2.3)

| Divisões | Tipo | Por quê |
| - | - | - |
| 45, 46, 47 (comércio) | `produto` | Circulação de mercadoria é fato gerador de ICMS ([LC 87/1996, art. 2º, I](https://www.planalto.gov.br/ccivil_03/leis/lcp/lcp87.htm)) |
| 59, 62 a 76 e 78 a 96 (informação, finanças, profissionais, administrativas, educação, saúde, artes, outros serviços) | `servico` | Atividades da lista de serviços da [LC 116/2003](https://www.planalto.gov.br/ccivil_03/leis/lcp/lcp116.htm), tributadas pelo ISS |
| 55, 56 (alojamento e alimentação) | `ambiguo` | Fornecimento de alimentação em bares e restaurantes é ICMS (LC 87/1996, art. 2º, I); hospedagem e bufê são ISS (LC 116/2003, itens 9.01 e 17.11) |
| 58 (edição) | `ambiguo` | Edição de livros, jornais e revistas vende mercadoria; edição só digital pode ser serviço |
| 60, 61 (rádio, TV e telecomunicações) | `ambiguo` | Serviço de comunicação é ICMS (LC 87/1996, art. 2º, III), fora da NFS-e |
| 01 a 43 (agropecuária, extração, indústria, energia, água, construção) e 49 a 53 (transporte, armazenagem e correio) | `ambiguo` | A mesma atividade pode ser venda de produto (ICMS) ou prestação de serviço (ISS), conforme a operação |
| 97, 99 (serviços domésticos, organismos internacionais) | `ambiguo` | Sem enquadramento por divisão; confirme com o contador |

### Divisão 77, por grupo

| Grupo | Tipo | Por quê |
| - | - | - |
| 77.1 (locação de meios de transporte sem condutor), 77.2 (aluguel de objetos pessoais e domésticos) e 77.3 (aluguel de máquinas e equipamentos sem operador) | `ambiguo`, com `dica` | Locação pura de bem móvel não é serviço tributado pelo ISS ([STF, Súmula Vinculante 31](https://portal.stf.jus.br/jurisprudencia/sumariosumulas.asp?base=26\&sumula=1286); o subitem 3.01 da lista da [LC 116/2003](https://www.planalto.gov.br/ccivil_03/leis/lcp/lcp116.htm), locação de bens móveis, foi vetado) nem venda de mercadoria. Com condutor, operador, montagem ou manutenção junto, essa parte é serviço; a `dica` diz isso ao cliente. No 77.3, a `dica` lembra que a cessão de andaimes, palcos e estruturas de uso temporário está no subitem 3.05 da LC 116/2003 |
| 77.4 (gestão de ativos intangíveis não financeiros) | `servico`, com `dica` | Cessão de direito de uso de marca e franquia estão na lista da LC 116/2003 (subitens 3.02 e 17.08); o STF julgou constitucional o ISS sobre franquia ([Tema 300, RE 603.136](https://portal.stf.jus.br/jurisprudenciaRepercussao/verAndamentoProcesso.asp?incidente=3832440\&numeroProcesso=603136\&classeProcesso=RE\&numeroTema=300)). A `dica` avisa que venda ou licenciamento de patente e direito de exploração mineral não estão na lista |

## Tabela curada de exceções

| CNAE | Tipo | Fonte oficial |
| - | - | - |
| 1412-6/03 Facção de peças do vestuário | `ambiguo` | CNAE 2.3 ("serviços industriais de facção"); LC 116/2003, itens 14.05 e 14.09; [STF, RE 882.461, Tema 816](https://noticias.stf.jus.br/postsnoticias/iss-nao-incide-em-etapa-intermediaria-do-ciclo-de-producao-decide-stf/): não incide ISS do item 14.05 quando a peça vai ser industrializada ou revendida |
| 4520-0/02, 4520-0/03, 4520-0/04, 4520-0/05, 4520-0/07, 4520-0/08 (serviços em veículos) e 4543-9/00 (manutenção de motos) | `servico` | CNAE 2.3, classe 45.20-0 e subclasse 4543-9/00; LC 116/2003, itens 14.01, 14.06, 14.11 e 14.12. A `dica` lembra que peças e partes saem em nota de produto (ICMS) |
| 4611-7/00 a 4619-2/00 (representantes comerciais, 11 subclasses) | `servico` | CNAE 2.3, grupo 46.1: representantes "diferem do comércio atacadista por não terem a propriedade da mercadoria"; LC 116/2003, item 10.09 |

Os CNAEs 4520-0/01 (mecânica) e 4520-0/06 (borracharia) não precisam da tabela curada: já
respondem `servico` pela tabela de serviço por CNAE (regra 2).

## Exemplos

| Entrada | `tipo` | `fonte` |
| - | - | - |
| `{"cnaePrincipal": "4711302"}` | `produto` | `divisao` |
| `{"cnaePrincipal": "6201-5/01"}` | `servico` | `divisao` (ou `lc116`, quando o CNAE estiver na tabela de serviço por CNAE) |
| `{"cnaePrincipal": "1412603"}` | `ambiguo` | `curado`, com `dica` |
| `{"cnaePrincipal": "5611201"}` | `ambiguo` | `divisao` |
| `{"cnaePrincipal": "7711000"}` | `ambiguo` | `divisao` (grupo 77.1, locação pura), com `dica` |
| `{"cnaePrincipal": "4711302", "cnaesSecundarios": ["9602501"]}` | `ambiguo` | `conflito` |

## CNAE inválido

CNAE que não tem 7 dígitos depois de tirar a máscara, ou que não existe na CNAE 2.3 do
IBGE, é recusado com `400`. O endpoint nunca responde `ambiguo` para um CNAE inválido.

```json theme={null}
{
  "error": {
    "type": "https://engineapi.com.br/errors/VALIDATION_ERROR",
    "title": "Validation Error",
    "status": 400,
    "detail": "Os dados enviados são inválidos",
    "errors": [
      {
        "field": "cnaePrincipal",
        "message": "CNAE inválido: informe uma subclasse da CNAE 2.3 com 7 dígitos, com ou sem máscara (ex.: \"4711-3/02\")."
      }
    ],
    "instance": "/v1/fiscal/classificar-cnae",
    "requestId": "req_abc123",
    "timestamp": "2026-10-06T18:00:00.000Z"
  }
}
```

Num secundário inválido, `field` aponta a posição: `cnaesSecundarios.1`.

## Próximo passo

Com a empresa classificada como `servico`, o [Serviço Padrão por CNAE](/guides/resolve-servico-padrao)
sugere o item da LC 116 e o código de tributação nacional para o cadastro da NFS-e.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.