POST salva a nota, põe a emissão na fila e retorna 201 com a situação pendente. Cada tipo de nota tem um destino fiscal e uma forma de acompanhar o resultado, descritos abaixo.
NF-e (Nota de Produto)
Emissão assíncrona
POST /notas salva a nota e põe a autorização na fila da SEFAZ. A resposta é 201 Created com situacao: "pendente". O uuid e a chave_acesso são gerados na criação e já vêm definitivos nessa resposta.
Há duas formas de acompanhar o resultado:
Polling
Consulte
GET /notas/{uuid} até a situacao mudar.Webhooks
Assine os eventos
nfe_*. Veja Webhooks.Depois de
nfe_solicitacao_autorizacao, o próximo webhook já traz o resultado final: nfe_autorizada, nfe_rejeitada ou nfe_denegada. A Invo não envia evento para o estado em_processamento.Estados (situacao)
Cancelamento
DELETE /notas/{uuid}/cancel pede o cancelamento (evento 110111) de uma nota autorizada. A justificativa é obrigatória e tem de 15 a 255 caracteres. O processamento é assíncrono: a API retorna 202, e o resultado chega pelo webhook (nfe_cancelamento_autorizado ou nfe_cancelamento_rejeitado) ou pelo polling.
Inutilização síncrona
POST /inutilizacoes inutiliza uma faixa de numeração. É a única operação que chama a SEFAZ durante a requisição. A chamada SOAP é curta e o resultado vem na resposta: 200 quando a faixa foi inutilizada, 422 quando a SEFAZ rejeitou o pedido.
Documentos
Depois da autorização, baixe os documentos fiscais pelas rotas autenticadas:GET /notas/{uuid}/xml: XML autorizado (nfeProc), emapplication/xml.GET /notas/{uuid}/danfe: DANFE emapplication/pdf. A Invo gera o PDF no primeiro acesso.
NFS-e (Nota de Serviço)
Emissão assíncrona por RPS
POST /notas salva a nota e gera um RPS (Recibo Provisório de Serviços). A Invo põe o RPS na fila e o envia em lote à prefeitura. A resposta é 201 Created com rps.situacao: "pendente" e nfse.situacao: "pendente". O id já vem definitivo nessa resposta.
A resposta tem duas máquinas de estado. O RPS é o recibo que a Invo envia à prefeitura. A NFS-e é a nota que a prefeitura emite a partir dele. No uso normal, acompanhe
nfse.situacao. Consulte rps.situacao para entender uma falha de envio.Polling
Consulte
GET /notas/{id} até nfse.situacao virar emitida, com nfse.numero e codigo_verificacao, ou até o RPS falhar com rps.situacao: "processado_com_erro".Ao contrário da NF-e, a API NFS-e não envia webhooks. Acompanhe por polling. Os e-mails de notificação da conta continuam a ser enviados.
Estados da NFS-e (nfse.situacao)
Estados do RPS (rps.situacao)
Estes estados ajudam a diagnosticar o envio do lote à prefeitura:
Cancelamento
DELETE /notas/{id}/cancel pede o cancelamento de uma nota emitida. O motivo_cancelamento é obrigatório. O processamento é assíncrono: a API retorna 202, e nfse.situacao passa a cancelada quando a prefeitura confirma. Acompanhe por polling. Uma nota com nfse.situacao diferente de "emitida" recebe 422.
A NFS-e não tem inutilização de faixa nem download de XML e DANFE. O comprovante da nota é o
codigo_verificacao, que você confere no portal da prefeitura.