SEFAZ lenta ou instável (v2)
A emissão de documentos fiscais pela API é assíncrona: o POST de emissão devolve um
recibo, e o resultado deve ser acompanhado pela consulta (GET .../{recibo}). Na operação
normal, a SEFAZ autoriza em poucos segundos.
Em alguns momentos (instabilidade ou lentidão da SEFAZ), a autorização pode levar mais de 15 segundos. Nessa janela, a consulta do recibo pode devolver temporariamente:
{ "status": "emitindo", "sefaz": { "codigo": "217", "mensagem": "Rejeição: NF-e não consta na base de dados da SEFAZ" }}A regra de ouro: decida pelo sefaz.codigo, nunca pelo status sozinho
sefaz.codigo | Significado | Ação do integrador |
|---|---|---|
100 | Autorizada (protocolo e XML disponíveis) | Concluir a venda / imprimir DANFE |
217 ou 105 | Transitório — SEFAZ ainda processando | Aguardar e seguir consultando o mesmo recibo — não reemitir |
| ausente / vazio | Nota na fila ou enviada, sem retorno ainda (status pendente/processando/emitindo) | Aguardar e seguir consultando o mesmo recibo |
Qualquer outro (ex.: 204, 539, 770…) | Rejeição definitiva | Corrigir o dado apontado na mensagem e emitir novamente |
O que o nosso sistema faz automaticamente
Você não precisa (e não deve) reenviar a nota. Nosso sistema possui reconciliação automática: um processo interno re-consulta a situação da nota diretamente na SEFAZ (pela chave de acesso) e atualiza o resultado assim que houver resposta definitiva:
- Se a SEFAZ autorizou → a consulta do recibo passa a devolver
status: "emitida", com protocolo de autorização e XML definitivo — como em qualquer emissão normal. - Se a SEFAZ rejeitou de fato →
sefaz.codigo/sefaz.mensagempassam a refletir a rejeição real, para correção e reenvio.
Na maioria dos casos a situação se resolve em poucos minutos. A janela de reconciliação automática cobre até 3 horas.
Ação necessária do integrador
- Continue consultando o mesmo recibo até obter um resultado definitivo (
sefaz.codigo = 100ou um código de rejeição real). Sugestão de polling: a cada 2–5 s no primeiro minuto; depois a cada 30–60 s. - Nunca reenvie a mesma venda enquanto
sefaz.codigofor217,105ou estiver ausente. A nota pode já ter sido autorizada na SEFAZ — reenviar gera duplicidade de documento fiscal (duas notas válidas para a mesma venda). Envie semprenumero_origemna emissão (mais detalhes) para que, mesmo em caso de reenvio acidental, a API devolva o recibo já existente em vez de criar outra nota. - Só considere a venda concluída (impressão de DANFE, baixa no seu sistema) quando
sefaz.codigo = 100. - Se receber uma rejeição definitiva (código ≠
100/217/105, ex.: erro cadastral ou tributário), corrija o dado apontado na mensagem e aí sim emita novamente. - Se uma nota permanecer com
sefaz.codigo = 217(ou105) por mais de 3 horas, não reemita por conta própria — acione o suporte informando o recibo e a chave de acesso, para verificação manual.
Resumo por situação
| Situação | status | sefaz.codigo | Ação |
|---|---|---|---|
| Autorizada | emitida | 100 | Concluir a venda / imprimir DANFE |
| SEFAZ lenta (transitório) | emitindo | 217 (ou 105) | Aguardar e repetir a consulta — não reemitir |
| Em fila / sem retorno ainda | pendente / processando | ausente | Aguardar e repetir a consulta |
| Rejeição definitiva | emitindo + bloco sefaz | ≠ 100/217/105 | Corrigir o dado e emitir novamente |
| Cancelada | cancelada | — | — |
| Transitório por mais de 3h | emitindo | 217 (ou 105) | Contatar o suporte com recibo + chave — não reemitir |