Fila de emissão
Lista a fila de notas fiscais e reenvia itens que falharam, individualmente, com correção ou em lote.
Cada pedido que precisa de nota vira um item da fila. Aqui você acompanha o andamento, vê o motivo de cada falha e manda reemitir depois de corrigir o problema. Todas as rotas exigem o módulo focusnfe e o privilégio manage_nfe ou manage_settings.
Um pedido tem no máximo um item aberto (pending, processing ou submitted) por seller: tentar enfileirar de novo enquanto há um aberto não duplica nada. Quando o pedido é cancelado antes da autorização, o item aberto vira cancelled.
Listar a fila
Devolve os itens, os de NFC-e (65) primeiro e, dentro de cada modelo, os mais novos primeiro.
/api/v1/admin/fiscal/queueAdminLista a fila de emissão fiscal
Parâmetros de consulta
statusstringpendingprocessingsubmittedauthorizedfailedabandonedcancelleddocument_modelstring556555 NF-e, 65 NFC-e.pageintegerpadrão: 1per_pageintegerpadrão: 50Exemplo de requisição
Resposta
Campos da resposta
itemsarraynull quando vazio.totalintegerpageintegerper_pageintegeriduuidorder_iduuidvendor_iduuidestablishment_iduuiddocument_modelstring5565statusstringpendingprocessingsubmittedauthorizedfailedabandonedcancelledtrigger_sourcestringautomanualagentactor_iduuidattemptsintegernext_retry_atstringpending com espera.last_errorstringnfe_record_iduuidcreated_atstringupdated_atstringErros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token | {"error":"missing authorization header"} |
| 403 | Sem privilégio | {"error":"insufficient privileges","privilege_required_any":["manage_nfe","manage_settings"]} |
| 403 | Módulo desligado | {"error":"module_disabled","module":"focusnfe"} |
| 500 | Falha de consulta | {"error":"failed to list queue","detail":"..."} |
Filtros com valor desconhecido não dão erro: a lista volta vazia.
Reenviar um item
Coloca de volta na fila (pending, para tentar já) um item failed ou abandoned, limpa o último erro e marca a origem como manual. Não altera nenhum dado do pedido ou do produto: se a causa era um NCM errado, corrija o produto antes.
/api/v1/admin/fiscal/queue/{id}/retryAdminReenvia um item que falhou
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição
Resposta
O status devolvido é o novo estado do item (pending), não o resultado da emissão. A nota é emitida em segundo plano: consulte a fila de novo depois de alguns segundos.
Erros
| Status | Quando | Corpo |
|---|---|---|
| 422 | Item que não está failed ou abandoned, ou que não existe | {"error":"cannot retry item","detail":"fiscal: queue item not retryable"} |
Reenviar corrigindo emissor ou modelo
Faz o mesmo que o reenvio simples, mas antes troca o estabelecimento emissor e/ou o modelo do documento. É o caminho para rejeições causadas por CNPJ, série, UF ou inscrição estadual do emissor errado, ou por usar NF-e onde cabia NFC-e (e o contrário). As tentativas voltam a zero, porque é uma emissão nova.
/api/v1/admin/fiscal/queue/{id}/reemitAdminReenvia um item trocando emissor ou modelo
Parâmetros de caminho
iduuidobrigatórioCorpo da requisição (opcional)
establishment_iduuiddocument_modelstring5565Exemplo de requisição
Resposta
Erros
| Status | Quando | Corpo |
|---|---|---|
| 422 | Item que não está failed ou abandoned, ou inexistente | {"error":"cannot reemit item","detail":"fiscal: queue item not retryable"} |
| 422 | document_model diferente de 55 e 65 | {"error":"cannot reemit item","detail":"fiscal: modelo de documento inválido"} |
| 422 | establishment_id que não é UUID | {"error":"cannot reemit item","detail":"..."} |
Um corpo vazio ou ausente é válido e se comporta como o reenvio simples. O corpo com JSON inválido é ignorado em silêncio, com o mesmo efeito.
Reenviar vários itens
Reenfileira de uma vez os itens failed e abandoned escolhidos. Itens em outro estado são pulados sem erro; a resposta diz quantos foram de fato reenfileirados.
/api/v1/admin/fiscal/queue/bulk-retryAdminReenvia vários itens da fila
Corpo da requisição
idsarrayobrigatóriofilter.filterobjectAlternativa a ids: reenvia por critério, sempre sobre itens failed ou abandoned. Exige simulação e confirmação (veja abaixo). Chaves aceitas, todas opcionais: status, vendor_id, document_model, trigger_source, attempts_min (inteiro), error_contains (trecho do último erro), created_after e created_before (AAAA-MM-DD).
simulatebooleantrue: só calcula o recorte e devolve total, sample e um confirm_token, sem reenviar nada.confirm_tokenstringfilter.Exemplo de requisição
Resposta
Campos da resposta
retriedintegerfailed ou abandoned para pending.Com filter, a resposta segue o protocolo de lote por critério da plataforma. A simulação devolve total (quantos itens o recorte alcança), sample (até 10 exemplos), confirm_token e expires_at. A execução, com o mesmo corpo mais o confirm_token, devolve action, total_requested, status, affected e failed (200), ou 202 com async: true e o andamento do trabalho quando o recorte é grande. Sem simulação prévia a execução é recusada.
Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | JSON inválido | {"error":"invalid body","detail":"..."} |
| 400 | ids vazio e sem filter | {"error":"nenhum item selecionado"} |
| 422 | Falha ao reenfileirar | {"error":"cannot retry items","detail":"..."} |