Cobertura Fiscal
O que a engineAPI emite hoje, por documento, regime e cenário: disponível, disponível em breve ou não suportado, sempre com o erro exato e a alternativa quando existe.
Cobertura Fiscal: o que a engineAPI emite hoje
Antes de integrar, a pergunta que importa não é "a API tem endpoint de NFe?". É "o cenário do meu cliente, com o regime tributário dele, sai autorizado?". Esta página responde isso célula a célula: documento × regime × cenário, com o estado real e, quando não suportado, o erro exato que você recebe e a alternativa quando existe.
Todo cenário desta página é regime tributário do emissor (Simples Nacional/MEI ou
Regime Normal) cruzado com operação (venda interna, interestadual, exportação...).
O mesmo documento pode ser suportado num regime e recusado no outro: um crt: 3
vendendo com Substituição Tributária recusa hoje; um crt: 1 (Simples) na mesma
operação emite.
Como ler esta página
| Estado | Significado |
|---|---|
| ✅ Disponível | Emite hoje. Onde o cálculo é automático (Cérebro Fiscal), é dito explicitamente; onde não é, o campo é passthrough: você informa pronto, a engineAPI valida a forma e transmite, sem calcular o valor |
| 🧪 Disponível em breve | Existe prazo concreto e trabalho em andamento, não é intenção. Só usado quando há data ou release já identificável |
| ❌ Não suportado | Recusa antes de transmitir a SEFAZ/SEFIN, com 422/400 e o motivo por item. Nenhum documento sai incompleto ou com número fiscal queimado por um cenário sem suporte |
Todo 422 de tributação assistida segue o mesmo formato: code, motivo por item e,
quando existem, as alternativas curadas (candidatas). Formato completo, RFC 7807:
Erros e Rejeições.
NF-e e NFC-e
NFC-e (modelo 65) é sempre venda presencial a consumidor final, na UF do emitente (a API declara isso ao motor por você). Por isso as linhas de operação interestadual, DIFAL, exportação, transporte, NF-e referenciada e combustível abaixo marcadas "NF-e apenas" não são um "não suportado" na NFC-e: são cenário que o modelo não representa, ou grupo do leiaute que o contrato ainda não escreve para esse documento.
Por regime tributário
| Cenário | Simples Nacional / MEI (crt: 1/2/4) | Regime Normal (crt: 3, Lucro Real/Presumido) |
|---|---|---|
| Venda interna (mesma UF) | ✅ Disponível, NF-e e NFC-e | ✅ Disponível, NF-e e NFC-e, 26 das 27 UFs curadas em fonte primária (Mato Grosso fora, recusa 422). Em Sergipe, o adicional de FCP a consumidor final só resolve para os NCM da lista curada (5 hoje); fora dela recusa com 422 TRIBUTACAO_NAO_RESOLVIDA. Como NFC-e é sempre consumidor final, isso alcança toda NFC-e em SE cujo produto não está na lista |
| Venda interestadual, destinatário contribuinte (B2B) (NF-e apenas) | ✅ Disponível | ✅ Disponível, alíquota federal de 7%/12%/4% (importados) por origem/destino |
| Venda interestadual, consumidor final não contribuinte (DIFAL) (NF-e apenas) | ❌ Sem partilha: o grupo ICMSUFDest (EC 87/2015) não existe no contrato para nenhum regime. csosn manual emite, mas sem declarar o diferencial ao estado de destino | ❌ Não suportado. 422 TRIBUTACAO_NAO_RESOLVIDA: o documento exigiria o grupo ICMSUFDest, que este motor calcula só a operação própria, nunca emite incompleto. Enviar o grupo à mão também recusa: 400 (o campo não existe no contrato) |
| Substituição Tributária (produto com CEST) | ✅ Disponível como passthrough manual (via csosn); sem detecção automática hoje | ❌ Não suportado, NF-e e NFC-e. 422 ICMS_ST_NAO_SUPORTADO se você informar ST no payload; e o motor também recusa antes disso, com o mesmo código, para qualquer item cujo NCM esteja arrolado em CEST, mesmo sem você mencionar ST |
| Redução de base / isenção por benefício estadual (CST 20/40/41/51/60/90) | ✅ Disponível como passthrough manual (via csosn); sem detecção automática hoje | ❌ Não suportado, NF-e e NFC-e. Não existe caminho manual de ICMS em Regime Normal: icms.cst informado à mão sempre recusa com 422 CST_NAO_SUPORTADO_NFE, para qualquer CST, benefício incluso. Os campos do benefício (pRedBC, vICMSDeson, motDesICMS) não existem no contrato: se enviados (dentro ou fora de icms), devolvem 400 nomeando o campo |
| NF-e referenciada (documento que referencia uma nota anterior) (NF-e apenas) | ❌ Não suportado | ❌ Não suportado. O grupo (NFref/refNFe e variantes) não existe no contrato hoje. Enviá-lo devolve 400, nomeando o campo e explicando por quê: sem o grupo no documento, a SEFAZ rejeitaria a nota com cStat 321 depois de consumir o número fiscal; a API recusa antes disso |
| Transporte (transportadora + volumes) (NF-e apenas) | ✅ Disponível, campos básicos: modalidade do frete, dados da transportadora, quantidade/espécie/peso dos volumes | ✅ Disponível, mesmos campos básicos |
| Transporte detalhado (veículo, reboque, lacres, balsa, vagão) (NF-e apenas) | ❌ Não suportado | ❌ Não suportado. O contrato aceita, em transporte, só modFrete, transportadora e volumes. Campos do leiaute completo (veiculo, reboque, lacres...) devolvem 400 nomeando o campo |
Combustíveis e GLP (grupo items[].combustivel) (NF-e apenas) | 🧪 Disponível em breve: o grupo existe no contrato e é validado contra o leiaute oficial, mas ainda não foi exercitado com emissão real contra a SEFAZ. csosn manual + grupo combustivel (código ANP, e para GLP os percentuais e vPart); CFOP de combustível sem o grupo recusa antes com 422 COMBUSTIVEL_GRUPO_OBRIGATORIO. Detalhe completo: Guia: Combustíveis | ❌ Não suportado hoje: combustível costuma exigir Substituição Tributária, e cai na mesma recusa 422 ICMS_ST_NAO_SUPORTADO da linha de ST acima |
Devolução (finNFe: 4) (NF-e apenas) | ✅ Disponível, mesmo tratamento de qualquer outra finalidade (passthrough, sem regra fiscal própria de devolução) | ✅ Disponível, mesmo tratamento |
| Exportação (destinatário no exterior) (NF-e apenas) | ✅ Disponível como passthrough manual (via csosn); fora da curadoria do Cérebro Fiscal | ❌ Não suportado hoje, nenhum caminho: manual recusa (mesma regra de "não existe cst manual em Regime Normal" acima) e a emissão assistida não cobre UF de destino fora do Brasil (422 TRIBUTACAO_NAO_RESOLVIDA). Os grupos específicos de exportação (exporta, detExport) também não existem no contrato: devolvem 400 se enviados |
| Desconto incondicional no item | ✅ Disponível, NF-e e NFC-e. Base do ICMS/FCP e do IBS/CBS sai líquida do desconto | ✅ Disponível, mesmo comportamento |
| Desconto condicional (sob evento futuro) | ❌ Não suportado, sem campo no contrato (por lei integra a base, não é redutor) | ❌ Não suportado, mesmo motivo |
| Inutilização de numeração (faixa não usada) | ✅ Disponível, NF-e e NFC-e | ✅ Disponível, NF-e e NFC-e |
Todo campo fora do contrato de emissão recusa com 400, nomeando o campo (NF-e,
NFC-e, NFS-e e o envelope de lote). Não existe mais campo desconhecido aceito e
descartado em silêncio: se o cenário desta tabela está marcado ❌, o campo
correspondente do leiaute completo (NFref, veiculo, pRedBC, exporta...) devolve
erro explicando por que ainda não é suportado, em vez de sumir sem aviso.
Detalhe de cada recusa (mensagem completa, exemplo de payload, por que recusamos em vez de emitir incompleto): Regime Normal: emissão com ICMS calculado.
CST e CSOSN
| Regime | O que a emissão assistida resolve | O que fica de fora |
|---|---|---|
| Simples/MEI | CSOSN 102 (tributação pelo Simples, sem permissão de crédito) para todo item sem tributação manual | Os demais CSOSN (103, 300, 400, 500, 900) não são inferidos: se o seu cenário precisa de um deles (ex.: ST recolhida antes, isenção, imune), informe icms.csosn manualmente |
| Regime Normal | CST 00 (tributação integral), com base, alíquota, valor e FCP calculados | Nenhum outro CST é resolvido automaticamente. icms.cst informado à mão recusa com 422 CST_NAO_SUPORTADO_NFE: o leiaute exige a modalidade de base de cálculo (modBC), campo que este contrato não expõe |
Combinação errada de regime e campo (csosn num emissor crt: 3, cst num emissor
Simples) recusa antes da SEFAZ: catálogo completo em Erros e
Rejeições.
Reforma Tributária (IBS/CBS) na NF-e/NFC-e
IBS/CBS é obrigatório por lei desde 03/08/2026 para NF-e e NFC-e (regra geral), independente do regime do emissor. A engineAPI emite:
| Cenário | Estado |
|---|---|
Redução de alíquota por NCM (gRed) | ✅ Disponível, provado com emissão real autorizada |
| Espelho divergente da tabela oficial | ✅ Recusa antes de transmitir, com o 422 explicando o que fazer |
| NCM em mais de um anexo (multiclasse) | ✅ Disponível: resolve automaticamente quando há uma classe única ou acordo entre candidatas; recusa pedindo ibsCbs.cClassTrib quando não há |
| Base de cálculo com desconto incondicional | ✅ Disponível |
Calendário completo por documento e tipo de operação, alíquotas de 2026 a 2033 e o que
muda para o Simples Nacional: Reforma Tributária: datas que
importam. Detalhe de cada 422 específico: Reforma
Tributária: erros de IBS/CBS.
NFS-e
| Cenário | Estado |
|---|---|
| Resolução de CNAE para código de serviço (LC 116) | ✅ Disponível para os CNAEs cadastrados na base; CNAE fora da base retorna lista vazia de sugestões, nunca um código inventado |
| Emissão manual (você informa o código de serviço) | ✅ Disponível, passthrough |
| Alíquota de ISS | ✅ Disponível como passthrough manual. Na emissão assistida, um valor divergente do que a prefeitura calcularia é descartado de propósito (fica em avisos[] na resposta), porque ecoar o valor errado rejeitaria o documento |
| Retenções (IRRF/CSLL/INSS/PIS/COFINS/outras) | ❌ Não suportado. 422 RETENCOES_NAO_SUPORTADAS se você informar qualquer retenção com valor diferente de zero: o motor ainda não escreve os grupos de retenção na DPS do Padrão Nacional, e aceitar e descartar em silêncio seria pior do que recusar. Omita o bloco (ou envie tudo zerado) enquanto isso |
| Cancelamento e consulta de status | ✅ Disponível |
IBS/CBS na DPS (grupo ibsCbs) | ✅ Disponível como passthrough, quando você envia o bloco: o documento carrega o grupo <IBSCBS> do leiaute nacional. Emissão assistida (resolverTributacao: true) não opina sobre este grupo: os códigos cIndOp/cst/cClassTrib de serviço são seus |
IBS/CBS: destinatário diferente do tomador (indDest: "1") | ❌ Não suportado. 422 IBSCBS_DPS_DESTINATARIO_NAO_SUPORTADO: o leiaute exige junto o grupo dest (dados do destinatário), que este motor ainda não escreve. Use indDest: "0" quando o destinatário for o próprio tomador |
IBS/CBS na DPS ainda não foi exercitado contra a SEFIN em produção (prova formal pendente): validado até aqui contra o esquema XSD oficial, nenhuma DPS com o grupo foi transmitida ao Fisco. Mesma situação de combustível na NF-e (seção acima): o contrato existe e está testado, a emissão real é o que falta.
Datas de obrigatoriedade do IBS/CBS na NFS-e por tipo de serviço: Reforma Tributária: datas que importam. Diferenças estruturais entre NFS-e e NF-e, campos de cancelamento e exemplo completo: Guia: NFSe.
Fora do contrato público hoje
CT-e (modelo 57) e MDF-e (modelo 58) existem no roadmap, sem data. Distribuição de DFe (consulta de documentos de terceiros na SEFAZ) está fora do contrato público hoje. Nenhum dos três aparece nos endpoints documentados nesta doc.