Pular para conteúdo

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.