Skip to Content
GuiasErros SEFAZ traduzidos

Erros SEFAZ traduzidos

A SEFAZ retorna códigos numéricos (cStat) com mensagens terrivelmente técnicas em XML. O gateway traduz isso pra português humano + sugestão de fix, antes de devolver via API ou webhook.

{ "status": "denied", "error": { "cStat": 778, "xMotivo": "Rejeição: NCM com dígito inválido", "humanized": "O NCM do item 3 (descrição: 'Camisa Algodão') tem dígito de verificação inválido. NCM válido tem 8 dígitos numéricos.", "fix_suggestion": "Verifique o cadastro do produto. NCM correto pra camisa de algodão = '61091000'. Consulte tabela TIPI.", "item_index": 2, "field": "ncm" } }

Top 20 erros mais comuns

cStatxMotivo SEFAZTradução humanaFix
204Duplicidade de NF-eChave de acesso já autorizadaUse GET pra recuperar
215Falha schema XMLCampo obrigatório ausenteVeja error.field
217Não consta no cadastro SEFAZNF-e/protocolo não existeConfira a chave
225Falha NCM inválidoNCM não bate com tabela TIPIAtualize cadastro
233Chave de acesso inválidaDígito verificador erradoGeração interna (bug)
239Modelo ≠ 65 inválido pra NFC-eTentou emitir mod 55 como NFC-eUse /v1/nfe
250Certificado expiradoCert A1 vencidoRenove + upload novo
252Ambiente diferenteCert prod com homolog (ou vice-versa)Veja ambiente no Issuer
280Certificado revogadoCRL marca cert como inválidoRenove
282Não corresponde ao CNPJCert é de outro CNPJUse cert correto
297CPF/CNPJ inválidoDígito erradoValide antes
301Uso denegadoEmitente irregular SEFAZRegularize cadastro
302Destinatário irregularIE destinatário cancelada/baixadaConfira no SINTEGRA
422NFC-e fora SPTentou usar URL SP em outra UFVerifique Issuer.uf
509Erro 999 (genérico SEFAZ)Erro interno SEFAZ — retry em 30sWorker retenta automaticamente
539Duplicidade de NF-eMesma chave + mesma SEFAZUse Idempotency-Key
656Consumo indevido SEFAZRate-limit da SEFAZ atingidoReduza requests / use sandbox
778NCM inválidoVeja 225 acimaIdem
999Rejeição genéricaErro não catalogadoAbra ticket no suporte

Quando o gateway não consegue traduzir

Pra códigos novos ou raros, devolve:

{ "error": { "cStat": 999, "xMotivo": "Rejeicao: <raw SEFAZ message>", "humanized": "Erro SEFAZ não traduzido (cStat=999). Mensagem original: '<raw>'.", "fix_suggestion": "Abra ticket em support@zfiscoo.zek.app.br com a access_key. Vamos catalogar.", "raw_xml_url": "https://api.zfiscoo.zek.app.br/v1/nfce/nfce_.../sefaz-raw-response" } }

O raw_xml_url te dá acesso à resposta original da SEFAZ — útil pra debug fundo e pra reportar pro suporte.

Como o catálogo é mantido

Fonte canônica em packages/fiscal-core/src/sefaz-errors.ts  — open source, MIT. PR’s são bem-vindos.

🤝

Se você bater num cStat não catalogado em produção, abra um issue no GitHub com a access_key. Adicionamos ao catálogo em horas, libera pra toda comunidade.