Como saber se sua NFC-e foi emitida pela API
O payload de uma NFC-e — recebido por consulta ou por webhook — usa a mesma estrutura de NF-e: o campo status e um histórico de tentativas em lastEvents.events[]. Os dois juntos dizem se a nota foi efetivamente autorizada.
O campo status
status é o mesmo enum de NF-e (InvoiceStatus), com 9 valores possíveis:
| Retorno | Número | Descrição |
|---|---|---|
IssueDenied | -2 | A SEFAZ negou a emissão de forma definitiva |
Error | -1 | A nota não concluiu o processamento com sucesso |
None | 0 | A nota ainda não iniciou o processo de emissão |
Created | 1 | Nota criada, aguardando processamento |
Processing | 2 | Nota em processamento |
Issued | 3 | Nota autorizada com sucesso |
IssuedContingency | 4 | Nota autorizada em contingência |
Cancelled | 5 | Nota cancelada |
Disabled | 6 | Numeração inutilizada |
Só Issued e IssuedContingency significam nota emitida e válida. Error/IssueDenied significam que a emissão falhou; Created/Processing significam que ainda está em andamento.
O histórico lastEvents.events[]
Igual à NF-e, o payload traz o caminho que a nota percorreu, em vez do par flowStatus/flowMessage usado por NFS-e. Os tipos mais comuns:
type | Significado |
|---|---|
DefinedNumberAndSerieSuccessfully | Número e série atribuídos |
InvoiceSetAccessKey | Chave de acesso calculada |
InvoiceXmlSigned | XML assinado |
Authorized | Autorizada pela SEFAZ — traz protocolNumber e statusCode |
AuthorizationWithFailed | Rejeição pontual da SEFAZ — traz statusCode e message |
MaxAuthorizationFailed | Esgotou as tentativas de autorização |
SendSignedBatchFailed | Falha no envio do lote à SEFAZ |
MergedCancellation | Cancelamento consolidado |
Como saber se a nota foi efetivamente emitida
status sozinho já responde na maioria dos casos: Issued/IssuedContingency = emitida; Error/IssueDenied = não emitida.
SendSignedBatchFailed é comum aparecer em notas que terminam autorizadas com sucesso — a SEFAZ estadual teve uma indisponibilidade transitória, o reenvio funcionou, e a nota chegou em status=Issued normalmente. Considere sempre o status da raiz, não a simples presença de um evento de falha no histórico.
O caso da duplicidade (aparenta falha, mas a nota provavelmente foi emitida)
Se sua chamada de emissão retornar 504, a causa mais comum é um timeout na conexão com a SEFAZ estadual — não necessariamente uma falha de fato. O cenário: o envio original chegou, mas a resposta não voltou a tempo. Ao reenviar, a SEFAZ identifica a duplicidade e retorna sinal de que a nota já está na base dela, geralmente autorizada.
Se você recebeu 504 e não tem certeza do resultado, não reemita a NFC-e diretamente. Consulte pela chave de acesso primeiro, para evitar duplicidade fiscal.