Começar

Conceitos

Estes conceitos se repetem em todos os endpoints. Entenda o ref, o ambiente do token, os status da nota e o formato de erro antes de emitir a primeira NF-e.

ref

O ref é o identificador da nota no seu sistema. Você escolhe o valor na emissão (?ref=pedido-1001) e usa o mesmo valor para consultar, baixar XML/PDF e cancelar.

RegraDetalhe
TamanhoDe 1 a 80 caracteres.
CaracteresLetras, números, ponto, hífen e underscore.
EscopoÚnico por empresa, tipo de documento (nfe) e ambiente do token.
Onde vaiNa emissão: query string. Nas demais chamadas: path /v2/nfe/{ref}, /v2/nfe/{ref}.xml, /v2/nfe/{ref}.pdf ou /v2/nfe/{ref}/email.
Idempotência

Reenviar o mesmo ref não cria outra nota, exceto se o status atual for erro_autorizacao — nesse caso a API tenta autorizar de novo com o JSON novo.

Ambiente

Homologação e produção não se misturam. O token define o ambiente; documentos, numeração e consultas ficam separados. Uma consulta com token de homologação nunca encontra uma nota emitida em produção.

Status do documento

O campo status descreve o ciclo da NF-e. Use também status_sefaz e mensagem_sefaz para o retorno da SEFAZ.

statusSignificadoO que fazer
processando_autorizacaoLote enviado, autorização ainda não confirmada.Consulte o mesmo ref até o status mudar.
autorizadoNF-e autorizada na SEFAZ.Baixe XML e DANFE, ou envie por e-mail. Cancele só neste status.
erro_autorizacaoA SEFAZ rejeitou ou houve falha no envio.Corrija o JSON e reenvie com o mesmo ref.
denegadoUso denegado pela SEFAZ.Não reprocessa automaticamente. Trate o caso no seu sistema.
canceladoCancelamento autorizado.A nota permanece consultável, agora cancelada.
erro_cancelamentoFalha ao cancelar na SEFAZ.Verifique a justificativa e tente o DELETE novamente.

Campos da resposta

A consulta e a emissão devolvem o mesmo objeto de documento:

CampoDescrição
cnpj_emitenteCNPJ da empresa do token.
refIdentificador que você enviou.
statusStatus interno da API, conforme a tabela acima.
status_sefazCódigo cStat devolvido pela SEFAZ, quando houver.
mensagem_sefazTexto da SEFAZ ou mensagem interna do processamento.
chave_nfeChave de 44 dígitos, ou null se ainda não existir.
numeroNúmero da NF-e atribuído na emissão.
serieSérie da NF-e.
caminho_xml_nota_fiscalPath relativo do XML, preenchido após autorização.
caminho_danfePath relativo do PDF da DANFE, preenchido após autorização.
mensagemMensagem resumida, em geral igual à da SEFAZ.

Formato de erro

Erros usam HTTP 4xx/5xx e um JSON com codigo e mensagem. Códigos HTTP usados pela API:

HTTPUso
200Consulta, cancelamento, ou reenvio de um ref já existente.
201NF-e autorizada na emissão.
202NF-e aceita e ainda em processamento.
401Falha de autenticação.
403Documento fiscal não habilitado para a empresa.
404Documento, XML ou PDF não encontrado.
405Método HTTP não permitido na rota.
422Validação, rejeição da SEFAZ ou operação incompatível com o status.
500Erro interno ao gravar o documento.
Erro de validação
{
    "codigo": "erro_validacao_schema",
    "mensagem": "Erro na validação dos dados da NF-e.",
    "erros": [
        {
            "campo": "natureza_operacao",
            "mensagem": "Informe a natureza da operação."
        },
        {
            "campo": "items[1].cfop",
            "mensagem": "Informe o CFOP do item 1."
        }
    ]
}
XML e PDF não são JSON

As rotas .xml e .pdf devolvem o arquivo binário/texto correspondente. Trate 404 em JSON e 200 como download.