A ideia seria disponibilizar um novo parâmetro opcional chamado tipo_emissao no body do endpoint de Emitir NFC-e para criar uma nota em contingência quando a Sefaz está com o serviço paralisado e assim conseguir baixar o DANFCE.
Request Body:
{
"infNFe": { ... },
"infNFeSupl": { ... },
"ambiente": "homologacao",
"referencia": "string"
"tipo_emissao": "string"
}
O parametro tipo_emissao poderia asumir dois valores, "tipo_emissao": "normal"
ou "tipo_emissao": "contingencia"
, caso não seja informado a API da Nuvem Fiscal pode considerar ele como “normal” por padrão para evitar quebras.
Caso seja passado o valor “contingencia” a API da Nuvem Fiscal não deve tentar transmitir esse documento para a Sefaz. No caso seria feita apenas a validação de schema e retornado a resposta padrão do endpoint como os valores de status como pendente
ou criado um novo valor status especifico para a contingência. No objeto de autorizacao os campos codigo_status e motivo_status poderiam assumir os valores "codigo_status": 999
e "motivo_status": "Registrada como Contingencia Offline"
.
Response Data:
{
"id": "string",
"ambiente": "homologacao",
"created_at": "2023-08-04T12:23:00Z",
"status": "pendente",
"referencia": "string",
"data_emissao": "2023-08-04T12:23:00Z",
"modelo": 0,
"serie": 0,
"numero": 0,
"valor_total": 0,
"chave": "string",
"autorizacao": {
"digest_value": "string",
"id": "string",
"ambiente": "homologacao",
"status": "pendente",
"autor": {},
"chave_acesso": "string",
"data_evento": "2023-08-04T12:23:00Z",
"numero_sequencial": 0,
"data_recebimento": "2023-08-04T12:23:00Z",
"codigo_status": 999,
"motivo_status": "Registrada como Contingencia Offline",
"numero_protocolo": "",
"codigo_mensagem": 0,
"mensagem": "",
"tipo_evento": "string"
}
}
Nesse cenário seria possível realizar a impressão do DANFCE utilizando o id retornado na requisição anterior com os dados da nota, QrCode e as mensagens de “Emitida em Contingência” e “Pendente de autorização”.
Depois quando a Sefaz voltasse a responder seria feita um nova tentativa de emissão pelo endpoint de Emitir NFC-e só que dessa vez passando o tipo_emissao como normal
para autorizar a nota.