Contingência¶
Na faixa de numeração pela API, a emissão acontece em contingência
offline (tpEmis 9) quando a SEFAZ não responde. A entrega à SEFAZ acontece depois, sem
ação do integrador.
A resposta em contingência¶
A emissão em contingência é síncrona. No lugar do protocolo de autorização, a resposta traz um documento válido emitido em contingência, com DANFE e XML disponíveis.
A resposta vem no formato de autorização, com o par de flags do provedor:
{
"status": "autorizado",
"chave_nfe": "NFe41260812345678000195650010000000121000000011",
"numero": "12",
"serie": "1",
"contingencia_offline": true,
"contingencia_offline_efetivada": false
}
contingencia_offline_efetivada vira true quando a entrega à SEFAZ é concluída. O
acompanhamento é por consulta ou pelo gatilho
nfce_contingencia.
Este dialeto não expõe campo de contingência na resposta. O documento aparece como
pendente até a entrega ser concluída, e então passa a autorizado. tipo_emissao
9 identifica a emissão em contingência. O acompanhamento é por consulta, porque este
dialeto não tem webhooks.
Entrega e resolução¶
Um processo em segundo plano cuida dos documentos em contingência periodicamente. Estas regras governam esse trabalho:
Consultar antes de concluir. Um envio sem resposta não é interpretado. A chave é consultada na SEFAZ e o desfecho decide. Se o documento chegou, é fechado com o protocolo real. Se a SEFAZ confirma que nunca registrou a chave, o passo seguinte depende do tipo de envio.
Só retransmitir o que a consulta prova ausente. A única retransmissão do sistema é a reapresentação de um documento de contingência, e só acontece quando a consulta confirma que a SEFAZ nunca o recebeu. A reapresentação repete o documento sem alterar byte, chave nem número. Um documento normal sem resposta nunca é reenviado, e sim consultado.
Uma tentativa sem desfecho encerra ali. Quando a SEFAZ não declara o resultado de um envio normal, aquela tentativa não pode ser reenviada. A venda é documentada de novo na hora, com um número novo, em contingência.
O número da tentativa encerrada é resolvido depois, pelo que a consulta encontrar. Se a SEFAZ nunca registrou nada, o número é inutilizado. Se o documento acabou autorizado, é cancelado por substituição, ligado ao documento que valeu. A resolução acontece sem ação do integrador.
Respostas transitórias da SEFAZ (serviço paralisado, consumo indevido) não são rejeição. A entrega é tentada de novo, com o intervalo de espera que a própria SEFAZ exige. Nenhum documento é rejeitado ou inutilizado por uma resposta transitória.
Na faixa de numeração pelo cliente¶
Se a credencial controla a numeração, não há contingência offline. Emitir em contingência significaria inventar um documento na faixa do cliente. O comportamento passa a ser reportar estado fiel:
- Um envio sem desfecho conhecido fica parado até que uma consulta prove o que aconteceu, e nunca aparece como autorizado. A resposta vem sem liquidação: sem chave, sem numeração, sem caminhos de arquivo e sem código da SEFAZ. Não há o que reportar ainda. Consultar de novo mais tarde, ou reenviar a mesma referência, responde a mesma coisa até a consulta resolver.
- Se a consulta prova que a SEFAZ não registrou nada naquele número, o pedido termina rejeitado e o número volta para o controle do cliente, sem inutilização automática.
- Uma indisponibilidade da SEFAZ não impede a tentativa. O envio normal (
tpEmis 1) acontece assim mesmo, e o desfecho é o que for.
No ACBrAPI, a contingência vem declarada no pedido, pelos campos tpEmis, dhCont e
xJust. Nesta faixa não há decisão automática: a emissão em contingência acontece apenas
quando o pedido a declara.