> ## 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.

# Regimes tributários

> Simples Nacional, Lucro Presumido e Lucro Real: como cada regime afeta os campos obrigatórios na emissão de NF-e.

O regime tributário da empresa emissora determina **quais campos de imposto são obrigatórios** na nota fiscal. É uma das diferenças mais críticas para acertar na integração.

***

## Regimes Suportados

| Código | Regime                                      | Tipo de código ICMS |
| ------ | ------------------------------------------- | ------------------- |
| `1`    | **Simples Nacional**                        | Usa **CSOSN**       |
| `2`    | **Simples Nacional (Excesso de sublimite)** | Usa **CSOSN**       |
| `3`    | **Lucro Presumido ou Lucro Real**           | Usa **CST**         |

***

## Como Configurar

```json theme={null}
{
  "cnpj": "11222333000181",
  "name": "Empresa Exemplo Ltda",
  "crt": 1
}
```

<Info>
  O `crt` é definido no cadastro da empresa emissora (`POST /companies`). Você pode atualizá-lo a qualquer momento via `PATCH /companies/{issuerId}`.
</Info>

***

## Simples Nacional (`crt: 1` ou `2`)

Use o campo `csosn` no objeto `icms` de cada item:

```json theme={null}
"icms": {
  "origem": 0,
  "csosn": "400"
}
```

| CSOSN | Descrição                           | Quando usar                             |
| ----- | ----------------------------------- | --------------------------------------- |
| `102` | Tributada pelo Simples, sem crédito | Venda normal sem crédito ao comprador   |
| `400` | Não tributada pelo Simples          | Operações isentas ou fora do escopo     |
| `500` | ICMS cobrado anteriormente por ST   | Mercadorias com substituição tributária |
| `900` | Outros                              | Demais situações                        |

<Info>
  A emissão assistida (`"resolverTributacao": true`, ver seção Lucro Real/Presumido
  abaixo) também serve o Simples Nacional: resolve **CSOSN 102** automaticamente para
  todo item sem tributação manual. Os demais CSOSN (103, 300, 400, 500, 900 da tabela
  acima) não são inferidos: informe `icms.csosn` manualmente quando seu cenário
  precisar de um deles. Detalhe completo em [Cobertura fiscal](/cobertura#cst-e-csosn).
</Info>

***

## Lucro Real / Lucro Presumido (`crt: 3`)

O campo `icms.cst` **não é preenchido à mão** neste regime: informá-lo é recusado com
`422 CST_NAO_SUPORTADO_NFE` (o leiaute exige a modalidade da base de cálculo, campo fora
deste contrato). O caminho que autoriza é a emissão assistida: `"resolverTributacao":
true` no corpo da requisição, com o item trazendo só a origem da mercadoria:

```json theme={null}
{
  "resolverTributacao": true,
  "items": [{
    "ncm": "11029000",
    "cfop": "5102",
    "icms": { "origem": 0 }
  }]
}
```

O motor calcula CST, base, alíquota e valor a partir do NCM, do CFOP, da UF do emissor e
da origem informada. Hoje só resolve **CST 00** (tributada integralmente); os demais CST
do regime não fazem parte desta fase:

| CST  | Descrição                      | Suportado hoje                                               |
| ---- | ------------------------------ | ------------------------------------------------------------ |
| `00` | Tributada integralmente        | Sim                                                          |
| `20` | Com redução de base de cálculo | Não, `422 TRIBUTACAO_NAO_RESOLVIDA`                          |
| `40` | Isenta                         | Não, `422 TRIBUTACAO_NAO_RESOLVIDA`                          |
| `41` | Não tributada                  | Não, `422 TRIBUTACAO_NAO_RESOLVIDA`                          |
| `60` | Cobrada anteriormente por ST   | Não, o NCM arrolado no CEST já recusa antes de chegar ao CST |

Detalhe completo do cenário (pré-requisitos, resposta, XML, erros e limitações conhecidas)
em [Regime Normal](/guides/regime-normal).

***

## Erro comum: regime errado

Bloco ICMS incoerente com o `crt` do emissor recusa **antes de chegar à SEFAZ**, com `422`
e um `code` estruturado (nunca um `sefazCode` inventado: o formato de erro é sempre RFC
7807, ver [Erros e Rejeições](/guides/errors)):

| Situação                                                                               | `code`                      |
| -------------------------------------------------------------------------------------- | --------------------------- |
| Emissor Simples Nacional (`crt: 1`/`2`) com `icms.cst` em vez de `csosn`               | `CST_REGIME_INCOMPATIVEL`   |
| Emissor Regime Normal (`crt: 3`) com `icms.csosn` em vez de `cst`/`resolverTributacao` | `CSOSN_REGIME_INCOMPATIVEL` |

<Warning>
  Certifique-se de que o `crt` cadastrado na empresa **corresponde ao regime real no CNPJ**. Um erro aqui causa rejeição em todas as notas do emissor.
</Warning>

***

## Veja também

<CardGroup cols={2}>
  <Card title="CFOP, NCM e CST" icon="list" href="/conceitos/cfop-ncm-cst">
    Tabela de referência dos códigos fiscais
  </Card>

  <Card title="Primeira Emissão" icon="file-invoice" href="/guides/first-emission">
    Guia completo com exemplos por regime
  </Card>
</CardGroup>
