engineAPIengineAPI
// conceitos

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ódigoRegimeTipo de código ICMS
1Simples NacionalUsa CSOSN
2Simples Nacional (Excesso de sublimite)Usa CSOSN
3Lucro Presumido ou Lucro RealUsa CST

Como Configurar

json
{
  "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:

json
"icms": {
  "origem": 0,
  "csosn": "400"
}
CSOSNDescriçãoQuando usar
102Tributada pelo Simples, sem créditoVenda normal sem crédito ao comprador
400Não tributada pelo SimplesOperações isentas ou fora do escopo
500ICMS cobrado anteriormente por STMercadorias com substituição tributária
900OutrosDemais 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:

json
{
  "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:

CSTDescriçãoSuportado hoje
00Tributada integralmenteSim
20Com redução de base de cálculoNão, 422 TRIBUTACAO_NAO_RESOLVIDA
40IsentaNão, 422 TRIBUTACAO_NAO_RESOLVIDA
41Não tributadaNão, 422 TRIBUTACAO_NAO_RESOLVIDA
60Cobrada anteriormente por STNã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çãocode
Emissor Simples Nacional (crt: 1/2) com icms.cst em vez de csosnCST_REGIME_INCOMPATIVEL
Emissor Regime Normal (crt: 3) com icms.csosn em vez de cst/resolverTributacaoCSOSN_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.


Veja também