engineAPIengineAPI
// guias essenciais

Guia: Cérebro Fiscal

Emissão assistida de tributação com resolverTributacao — o que é, como ativar, o que NÃO faz e quando falha.

Cérebro Fiscal: emissão assistida de tributação

Você manda o item com NCM + CFOP + valores e liga "resolverTributacao": true — o motor resolve o CSOSN (Simples Nacional/MEI) e o grupo IBS/CBS da Reforma Tributária antes de gerar o documento. Você para de precisar saber CSOSN/alíquotas IBS/CBS por conta própria — que é justamente a parte que muda todo ano até 2033.

Vale para NFe, NFCe e NFSe (na NFSe, além de CSOSN/IBS-CBS, também completa campos da DPS como cTribNac/itemListaServico a partir do cadastro do emissor).

Opt-in explícito

Só ativa com resolverTributacao: true no payload — sem a flag, zero diferença

Fail-loud, nunca silencioso

Campo sem fonte para resolver → 422, nada é emitido ou persistido

Liberação manual

Rollout hoje é por conta, ativado pelo suporte — não é self-service


O que é

Ao ativar resolverTributacao: true na emissão, itens sem tributação manual (sem icms.csosn e sem ibsCbs) recebem CSOSN e o grupo IBS/CBS resolvidos automaticamente a partir do NCM/CFOP informados. Na NFSe, o mesmo princípio completa dpsNacional.cTribNac, servico.itemListaServico e servico.codigoNBS a partir do cadastro do emissor (cTribNacPadrao/servicoPadraoLc116).

icms.origem nunca é opinado pelo Cérebro — sempre vem do seu payload (ausente = 0, nacional). Campos informados manualmente sempre têm precedência sobre o que o Cérebro resolveria — é passthrough-com-override, nunca o contrário.

O que ele NÃO faz

Por decisão de produto, o v1 é passthrough assistido, não um motor de cálculo tributário completo:

  • Não classifica NCM por descrição/EAN — o NCM correto é responsabilidade de quem envia o item.
  • Não cobre Regime Normal (CST de ICMS/alíquotas de empresas do Lucro Real/Presumido) — hoje resolve Simples Nacional e MEI. Regime Normal fora do NCM/CFOP entra em 422 (sem inventar tributação).
  • Não calcula PIS/COFINS/IPI.
  • A "Fase Normal" (Regime Normal) está desenhada mas depende de decisão de produto para virar código — não prometa esse escopo para o cliente.

Nunca emissão parcial ou com chute de baixa confiança. Documento fiscal assinado não carrega tributação "aproximada" — ou o Cérebro resolve com fonte, ou a API responde 422 e nada é emitido.

Como ativar na sua conta

O rollout do Cérebro Fiscal tem dois níveis independentes, e os dois precisam estar ligados para a emissão assistida funcionar:

  1. Liberação da conta (parceiro): libera o acesso ao recurso para a sua conta, independente de plano. Hoje é liberação manual do suporte — fale com o suporte da engineAPI para habilitar. Sem essa liberação, resolverTributacao: true responde 403.
  2. Ativação por emissor: com a conta liberada, cada emissor (CNPJ) ainda precisa ter o Cérebro Fiscal ativado individualmente — configurável em Emissores → (seu emissor) → Cérebro Fiscal no dashboard. Isso existe porque emissores diferentes de uma mesma conta podem ter regimes/necessidades diferentes.

Ligar a liberação da conta não ativa automaticamente todos os seus emissores — é a permissão para usar o recurso, não o interruptor de cada CNPJ. Ative o emissor que for emitir com resolverTributacao: true.

Como usar na requisição

Payload mínimo de um item (NFe/NFCe) contando só com NCM + CFOP + valores — sem icms/ibsCbs:

json
{
  "resolverTributacao": true,
  "items": [
    {
      "codigo": "SKU-001",
      "descricao": "Produto exemplo",
      "ncm": "61091000",
      "cfop": "5102",
      "unidade": "UN",
      "quantidade": 1,
      "valorUnitario": 49.9
    }
  ]
}

Contratos completos de cada documento (todos os campos, exemplos de requisição completa): Emitir NFe, NFCe, NFSe.

Quando ele não resolve (422 fail-loud)

Se um campo fiscal obrigatório não tiver fonte para ser resolvido (ex.: CSOSN sem base vigente para o NCM, ou emissor sem cTribNacPadrao cadastrado na NFSe), a API responde 422 e nada é emitido nem persistido:

json
{
  "error": {
    "type": "https://engineapi.com.br/errors/UNPROCESSABLE_ENTITY",
    "title": "Entidade Não Processável",
    "status": 422,
    "detail": "Itens com tributação não-resolvível",
    "instance": "/v1/nfe",
    "requestId": "req_abc123",
    "timestamp": "2026-07-06T12:00:00.000Z"
  }
}

Na NFe/NFCe, o corpo real inclui {index, motivo} por item não-resolvido; na NFSe, camposNaoResolvidos com {campo, motivo}. Corrija o cadastro do emissor ou informe o campo manualmente, e reenvie. Detalhe completo dos códigos de erro: Erros e Rejeições.

Esse 422 é diferente da rejeição da SEFAZ/SEFIN (sempre 400) — são situações completamente diferentes. Não trate os dois como sinônimos.

FAQ

Dúvidas frequentes sobre quando usar (ou não) a emissão assistida: FAQ.