Consultar a nota e eventos fiscais
Depois de emitir, tudo se faz pela ref. Os eventos fiscais (cancelamento, carta de correção, inutilização) dependem da SEFAZ e por isso são assíncronos: respondem 202 e o resultado aparece em eventos da nota (e chega por webhook).
| Método | Rota | Para quê |
|---|---|---|
GET |
/nfe/{ref} |
estado atual da nota, com chave, protocolo, links e eventos |
GET |
/nfe/{ref}/xml |
XML autorizado (nfeProc) |
GET |
/nfe/{ref}/danfe |
DANFE em PDF |
DELETE |
/nfe/{ref} |
cancelar |
POST |
/nfe/{ref}/carta_correcao |
carta de correção (CC-e) |
GET |
/nfe/{ref}/eventos/{id}/xml |
XML de um evento registrado |
POST |
/nfe/inutilizacao |
inutilizar uma faixa de numeração |
GET |
/nfe/inutilizacoes |
histórico de inutilizações |
GET |
/nfe/inutilizacoes/{id}/xml |
XML de uma inutilização registrada |
Em todas as rotas de /nfe/{ref}, quem tem mais de uma empresa informa ?cnpj_emitente= (na query; no POST/DELETE também vale no corpo). Os links devolvidos pela API (caminho_*) já levam o cnpj_emitente.
Consultar
GET /nfe/{ref} devolve a nota no mesmo formato da emissão (veja A resposta da nota). 404 nota_nao_encontrada se não houver nota com essa ref na empresa e no ambiente atual.
Acompanhando uma emissão por consulta, repita até o status ser final (autorizado, cancelado, denegado, inutilizado) ou ficar em erro_autorizacao/erro_validacao, que esperam uma correção sua. Comece a cada 2 segundos e aumente (veja boas práticas).
XML e DANFE
- XML (
GET /nfe/{ref}/xml): o documento fiscal, com o protocolo da SEFAZ. Respondeapplication/xml. Disponível enquanto a nota estáautorizadoe depois decancelado: a legislação obriga a guardar o XML autorizado e o do cancelamento por 5 anos. Antes da autorização,404. - DANFE (
GET /nfe/{ref}/danfe): o PDF para impressão ou envio ao cliente. Disponível só enquanto a nota estáautorizado.
Guarde o XML no seu sistema assim que a nota for autorizada. Não dependa de buscá-lo só quando alguém pedir.
Cancelar
DELETE /nfe/{ref} pede o cancelamento de uma nota autorizada. O corpo:
{ "justificativa": "Cliente desistiu da compra antes do envio", "confirmo": true }
| Campo | Regra |
|---|---|
justificativa |
de 15 a 255 caracteres |
confirmo |
obrigatório e true: você afirma que a mercadoria não saiu. Cancelar uma venda já despachada é irregular (o caminho certo é devolução ou estorno, com o contador) |
Resposta 202: a nota continua autorizado até a SEFAZ registrar; o pedido aparece em eventos com status: "processando":
{
"ref": "PED-1002", "status": "autorizado", "numero": "2", "chave_nfe": "35261011222333000181550010000000021219954665",
"eventos": [
{ "id": 1, "tipo": "cancelamento", "sequencia": 1, "status": "processando", "texto": "Cliente desistiu da compra antes do envio",
"protocolo_sefaz": null, "status_sefaz": null, "mensagem_sefaz": null, "solicitado_em": "2026-10-04T15:50:11+00:00", "caminho_xml": null }
]
}
Quando a SEFAZ registra, a nota vira cancelado e o evento registrado, já com o protocolo e o link do XML do evento:
{
"ref": "PED-1002", "status": "cancelado",
"caminho_xml_nota_fiscal": "https://srv1839254.hstgr.cloud/api/v2/nfe/PED-1002/xml?cnpj_emitente=11222333000181", "caminho_danfe": null,
"eventos": [
{ "id": 1, "tipo": "cancelamento", "sequencia": 1, "status": "registrado", "texto": "Cliente desistiu da compra antes do envio",
"protocolo_sefaz": "135000000000001", "status_sefaz": "135", "mensagem_sefaz": "Evento registrado e vinculado a NF-e",
"solicitado_em": "2026-10-04T15:50:11+00:00", "caminho_xml": "https://srv1839254.hstgr.cloud/api/v2/nfe/PED-1002/eventos/1/xml?cnpj_emitente=11222333000181" }
]
}
Regras e erros (422, com o motivo em erros):
- só se cancela nota
autorizado; - prazo: a SEFAZ aceita o cancelamento por um prazo depois da autorização (24 horas é o padrão nacional; algumas UFs admitem mais). Passou do prazo: a API recusa e orienta falar com o contador (devolução ou estorno);
- não pode haver outro cancelamento ou carta de correção em andamento;
- se a SEFAZ recusar o cancelamento, o evento fica
recusado(comstatus_sefazemensagem_sefaz), a nota continuaautorizadoe você pode corrigir o motivo e pedir de novo.
{ "codigo": "requisicao_invalida", "mensagem": "Confirme que a mercadoria não saiu. ...", "erros": { "confirmo": ["Confirme que a mercadoria não saiu. ..."] } }
Carta de correção (CC-e)
POST /nfe/{ref}/carta_correcao corrige dados acessórios de uma nota autorizada: complemento de endereço, informações adicionais, dados de transporte e similares.
{ "correcao": "Correcao do complemento do endereco de entrega para Apto 12" }
correcao: de 15 a 1000 caracteres.- Não corrige valores, impostos, dados que mudem o destinatário nem datas. Para isso é cancelamento (dentro do prazo) ou nota de devolução/estorno.
- Resposta
202; o evento aparece emeventoscomtipo: "carta_correcao"esequencia(1, 2, 3...). Por prática fiscal, cada nova carta deve repetir as correções anteriores que continuam valendo: a SEFAZ considera a mais recente. - A SEFAZ aceita até 20 cartas por nota. Não dá para enviar uma carta enquanto a anterior estiver em andamento, nem para nota cancelada.
- Se a SEFAZ recusar, o evento fica
recusadoe a mesma sequência pode ser usada de novo.
Inutilizar numeração
Inutilizar é declarar à SEFAZ que uma faixa de números nunca será usada. Serve para números reservados que ficaram sem nota (uma nota rejeitada e abandonada, por exemplo). A plataforma não deixa buracos de propósito, mas notas rejeitadas que você desistiu de corrigir deixam números parados.
POST /nfe/inutilizacao (a mesma rota e os mesmos nomes do Focus NFe):
{
"cnpj": "11222333000181",
"serie": 1,
"numero_inicial": 1,
"numero_final": 2,
"justificativa": "Numeros reservados para notas rejeitadas e abandonadas",
"confirmo": true
}
| Campo | Regra |
|---|---|
cnpj (ou cnpj_emitente) |
a empresa. Dispensável se a conta tem uma só |
serie, numero_inicial, numero_final |
a faixa (contínua, até 1000 números, de um só ano) |
justificativa |
de 15 a 255 caracteres |
confirmo |
obrigatório e true: você afirma que os números não foram usados em nenhuma NF-e, inclusive em outro sistema de emissão |
Só entram na faixa números que nunca existiram na SEFAZ: notas rascunho, rejeitadas ou paradas por pendência. Número de nota autorizada, denegada, cancelada ou em processamento é recusado (422, em erros.faixa). A faixa também não pode passar do último número já gerado na série.
Resposta 202, depois consulte por GET /nfe/inutilizacoes:
{
"id": 1, "cnpj": "11222333000181", "ambiente": "homologacao", "serie": "1", "numero_inicial": "5", "numero_final": "6",
"status": "autorizado", "justificativa": "Numeros reservados para notas rejeitadas e abandonadas",
"protocolo_sefaz": "141260000000001", "status_sefaz": "102", "mensagem_sefaz": "Inutilizacao de numero homologada",
"solicitado_em": "2026-10-04T15:53:12+00:00", "caminho_xml": "https://srv1839254.hstgr.cloud/api/v2/nfe/inutilizacoes/1/xml?cnpj_emitente=11222333000181"
}
O status da inutilização é processando_autorizacao enquanto espera a SEFAZ, autorizado quando registrada e erro_autorizacao quando recusada (veja status_sefaz e mensagem_sefaz).
Quando a inutilização é registrada, as notas daquela faixa passam a inutilizado (uma para cada ref afetada). Para vender de novo aquele pedido, use uma ref nova: ela recebe um número novo.
O prazo legal para inutilizar é até o dia 10 do mês seguinte ao da emissão; a SEFAZ não barra depois, mas fora do prazo a obrigação acessória fica irregular: fale com o contador.