Pular para o conteúdo

Fluxo de emissão (v2)

A emissão na v2 é assíncrona: você envia a nota, recebe um recibo imediatamente e depois consulta o resultado por polling. O mesmo vale para cancelamento e carta de correção.

Passo a passo

  1. EmitirPOST /nfe/emissao (ou /nfce/emissao, /nfse/emissao).

    A resposta imediata traz o recibo e o status de processamento:

    {
    "recibo": "abc123def456",
    "status": "emitindo",
    "sefaz": { "codigo": "105", "mensagem": "Lote em processamento" }
    }
  2. Consultar (polling)GET /nfe/nota/{recibo} até chegar a um estado terminal.

    Terminal window
    curl https://api.mysebr.com.br/nfemyse/rest/nfe/nota/abc123def456 \
    -H "Authorization: Token SEU_TOKEN"

    Estados possíveis durante o polling:

    SituaçãoResposta
    Ainda processando{ "status": "pendente", "sefaz": { "codigo": "9999", "mensagem": "Sua nota ainda não foi processada." } }
    Recibo inexistente{ "erro": "O recibo informado não existe em nossa base" }
    Erro no processamento{ "erro": "<mensagem>" }
    EmitidaObjeto completo da nota com bloco sefaz (ver abaixo)
  3. Nota pronta — quando status é emitida, o bloco sefaz traz a chave, o protocolo e os links do DANFE/XML:

    {
    "status": "emitida",
    "sefaz": {
    "data-emissao": "...",
    "chave": "3526...",
    "protocolo": "...",
    "codigo": "100",
    "mensagem": "Autorizado o uso da NF-e",
    "url-danfe": "https://myse.com.br/bd/<id>",
    "url-xml": "https://myse.com.br/bn/<id>"
    }
    }

Polling responsável

  • Use intervalo mínimo de 2 segundos entre consultas do mesmo recibo.
  • Use backoff exponencial (2s → 3s → 4.5s → … até 30s).
  • Pare ao chegar em estado terminal (emitida, cancelada, rejeitada).
  • Timeout total razoável: 5 minutos; após isso, acione o suporte com o recibo.

Evitar duplicação: numero_origem

Envie sempre o campo numero_origem (seu identificador único da venda/operação) no payload de emissão. Se você reenviar uma emissão com o mesmo numero_origem, a API não gera outra nota — retorna o recibo da emissão original:

{
"erro": "Já existe uma nota com este número de origem em nosso sistema.",
"recibo": "<recibo_existente>"
}

Cancelamento e carta de correção

Seguem o mesmo padrão assíncrono:

  • POST /nfe/cancelamento → retorna recibo → consulte em GET /nfe/cancelamento/{recibo}.
  • POST /nfe/correcao → retorna recibo → consulte em GET /nfe/correcao/{recibo}.