422 específicos da Reforma
Tributária (IBS/CBS) dentro da emissão assistida
(resolverTributacao: true). O catálogo enxuto de todos os erros da API (formato RFC
7807, tabela de códigos HTTP, pré-voo do emissor) está em
Erros e respostas.
Os dois motivos abaixo aparecem dentro de
details.itensNaoResolvidos (NF-e/NFC-e) na
resposta 422 de Emissão assistida.
Procurando data de obrigatoriedade ou o cronograma da Reforma? Isso está em Reforma
Tributária: datas que importam.Espelho fiscal divergente
Um dos motivos possíveis dentro dedetails.itensNaoResolvidos. Acontece quando a
redução de IBS/CBS que temos espelhada para o NCM não bate com a tabela oficial de
classificação tributária para a classe (cClassTrib) daquele mesmo NCM:
cClassTrib do item (NT 2025.002) e rejeita a combinação
incoerente: cStat 1034 no IBS-UF, 1046 no IBS-Municipal, 1063 na CBS. Ou seja, o
documento não chega a existir de qualquer forma. A diferença é o que você recebe: em vez
de um código da SEFAZ sem contexto (produzido por um dado que está do nosso lado, não
no seu payload), você recebe este 422 local dizendo qual NCM, quais são os dois números
em conflito e o que fazer. Nada é transmitido.
Como seguir agora, sem esperar a correção do dado:
- Informe o grupo
ibsCbsdo item no payload (o mesmo shape que a emissão passthrough usa). Item comibsCbsexplícito é override do parceiro: o motor não recalcula nem consulta o espelho para ele. - Ou emita esse item sem
resolverTributacao, com a tributação que o seu ERP já tem.
cClassTrib
explícito resolve o caso: ele diz qual tratamento se aplica àquela mercadoria.
NCM multiclasse
Outro motivo dentro dedetails.itensNaoResolvidos, e o mais comum em alimento: o NCM
aparece em mais de um anexo da LC 214/2025, com percentuais diferentes. Quem decide
qual vale é o produto real, não o código: então o motor não escolhe sozinho:
candidatas traz todas as classes vigentes daquele NCM, com o anexo que as sustenta
e os percentuais de cada tributo: é o suficiente para escolher sem uma segunda
requisição. Quando o marcador automatica vem falso, aquela classe só vale se você
a informar explicitamente, porque o tratamento dela depende de um fato da operação
(adquirente, destinação, habilitação) que o NCM sozinho não revela.
Dois códigos irmãos aparecem no mesmo lugar:
Informando só a classe (ibsCbs.cClassTrib)
Para desempatar, você não precisa calcular os seis percentuais. Basta informar a
classe e ligar a emissão assistida: o motor busca os percentuais oficiais dela:
tributacao.ibsCbs.classe, com o código, o
anexo que o sustenta e a origem da escolha (informada, quando ela veio de você;
resolvida, quando o motor elegeu), o que permite auditar depois qual anexo sustentou
o número que foi assinado.
Três regras deste formato:
- ele exige
"resolverTributacao": true. Sem a flag ninguém resolve os percentuais, e o grupo iria incompleto para o documento: a API recusa antes com422 IBSCBS_CLASSE_SEM_RESOLVEDOR; cClassTribé o único campo aceito aqui. Qualquer outro (inclusivevBC) devolve400: a base de cálculo do IBS/CBS neste caminho é sempre ovProddo item, e aceitar um campo que não teria efeito seria pior que recusá-lo;- o grupo
ibsCbscompleto (comibsUf,ibsMunecbs) continua sendo passthrough puro, como sempre foi: o motor não toca nele. Grupo pela metade não vira “dica” em silêncio: falha nos dois formatos e devolve400com a mensagem do campo que faltou.
422 CCLASSTRIB_INADMISSIVEL_NO_MODELO
(a SEFAZ rejeitaria com cStat 1025). Uma classe condicionada a fato da operação
(adquirente, destinação, habilitação) é aceita em NF-e (você conhece a operação) e
recusada em NFC-e, onde a tabela oficial a marca como não admitida.
Guardar a classe por produto
A escolha vale para o produto, não para a nota. Depois de informaribsCbs.cClassTrib numa emissão (ou confirmar no painel / em
POST /v1/fiscal/classification/classe), o motor guarda a classe no cadastro
daquele item naquele emissor. A próxima emissão do mesmo código sem a classe
no payload reusa a lembrança, desde que ela continue entre as candidatas
vigentes e seja admissível no modelo do documento.
Se o conjunto de candidatas do NCM mudar (nova classe divergente, classe
removida, alíquota alterada), a lembrança fica pendente e o 422 NCM_MULTICLASSE
volta a pedir confirmação, com a lista atualizada. Um emissor nunca herda a
escolha de outro.
Para listar as candidatas sem emitir:
candidatas[] com nome, descricao, anexo e percentuais. É o
mesmo shape do 422. garantia é sempre false.
Veja também
- Erros e respostas: o catálogo completo, RFC 7807, códigos HTTP e pré-voo do emissor.
- Cérebro Fiscal: o que é a emissão assistida e como ativar na sua conta.
- Changelog fiscal: o que é uma mudança de regra, o
422na emissão, e os ciclos dos últimos 90 dias.