Regimes Tributários
Simples Nacional, Lucro Presumido e Lucro Real: como cada regime afeta os campos obrigatórios na emissão de NFe.
Regimes Tributários
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
{
"cnpj": "11222333000181",
"name": "Empresa Exemplo Ltda",
"crt": 1
}
O crt é definido no cadastro da empresa emissora (POST /companies). Você pode atualizá-lo a qualquer momento via PATCH /companies/{issuerId}.
Simples Nacional (crt: 1 ou 2)
Use o campo csosn no objeto icms de cada item:
"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 |
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:
{
"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.
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):
| 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 |
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.