Introdução à referênciaErros e Rejeições FiscaisGETConsultar EmpresaPOSTCriar EmpresaPOSTUpload Certificado A1GETStatus do CertificadoPUTAlterar ConfiguraçõesPOSTConfigurar SequênciaGETListar SequênciasPOSTUpload Logomarca DANFEPOSTRotacionar API KeyGETListar ClientesPOSTCriar ClienteGETObter ClienteGETListar ProdutosPOSTCriar ProdutoGETObter ProdutoGETListar ServiçosPOSTCriar ServiçoGETObter ServiçoPOSTCriar rascunho de NF-ePOSTTransmitir NF-eGETConsultarGETListarGETBaixar PDF (DANFE)GETBaixar XMLPOSTCancelar NF-ePOSTEnviar CC-ePOSTInutilizar numeraçãoPOSTEmitir NFC-eGETConsultarGETBaixar cupom ESC/POSGETBaixar PDF (DANFE NFC-e)POSTCancelar NFC-eGETListar NFC-eGETBaixar XMLPOSTInutilizar numeraçãoPOSTCriar NFS-e (DPS)POSTTransmitir NFS-eGETConsultar NFS-eGETBaixar PDF (DANFSE)GETBaixar XML AssinadoPOSTCancelar NFS-ePOSTSubstituir NFS-eGETListar NFS-ePOSTEmitir CT-eGETConsultarGETBaixar PDF (DACTE)POSTCancelar CT-eGETListar CT-eGETBaixar XMLPOSTEnviar CC-ePOSTInutilizar numeraçãoGETMétricas de EntradaPOSTSincronização UnificadaGETListar NF-e RecebidasGETStatus NSU (NF-e)POSTSincronizar NF-e SEFAZGETObter NF-e RecebidaPOSTManifestar NF-e (MD-e)POSTManifestação em LotePOSTImportar Itens da NF-eGETBaixar XML (procNFe)GETBaixar DANFE (PDF)GETListar NFS-e TomadasGETStatus Sincronização ADNPOSTSincronizar NFS-e ADNGETObter NFS-e TomadaGETBaixar XML NFS-e TomadaGETBaixar DANFSE (PDF)GETListar CT-e TomadosGETStatus Sincronização SVRSPOSTSincronizar CT-e SVRSGETObter CT-e TomadoPOSTPrestação em Desacordo (610110)GETBaixar XML CT-e TomadoGETBaixar DACTE (PDF)GETListar WebhooksPOSTCriar WebhookDELExcluir WebhookPUTAtualizar WebhookPOSTRotacionar SecretPOSTReenviar EntregaPOSTTestar Conexão (Ping)POSTTestar Evento MockGETHistórico de EntregasDELLimpar EntregasGETDisponibilidade SEFAZ

Referência da API

Introdução à Referência da API

Visão geral técnica da API REST NFER: convenções de comunicação, autenticação, ambientes, padronização de erros, paginação e limites de taxa.

A API REST NFER permite a integração direta de sistemas de gestão (ERP, PDV, CRM e e-commerce) com os servidores autorizadores da SEFAZ e com o Ambiente de Dados Nacional (ADN). Todas as requisições devem ser feitas exclusivamente via protocolo HTTPS.

Base URL da API
HTTPShttps://api.nfer.me/v1

Recomenda-se o uso de TLS 1.2 ou superior. As requisições que enviam corpo JSON devem incluir o cabeçalho Content-Type: application/json.

Autenticação

A autenticação é feita enviando sua chave de API no cabeçalho HTTP X-API-Key em todas as chamadas operacionais.

curl -X GET https://api.nfer.me/v1/nfe \
-H "X-API-Key: sua_chave_de_api" \
-H "Content-Type: application/json"

Gestão de Chaves

Para entender como obter, rotacionar e gerenciar chaves de empresa e de organização, consulte o guia completo de Autenticação.

Ambientes (Homologação × Produção)

A NFER suporta emissão nos dois ambientes fiscais disponibilizados pelos órgãos autorizadores:

homologacao

Ambiente de testes conectado aos servidores de homologação da SEFAZ e ADN. As notas emitidas não possuem valor fiscal e levam a marca d'água de homologação. Ideal para testes de integração e validação de layouts.

producao

Ambiente de emissão oficial. As notas geradas são transmitidas aos servidores de produção da SEFAZ/Receita Federal e possuem validade fiscal e jurídica plena.

O ambiente pode ser informado individualmente no payload de emissão através do campo ambiente: "homologacao" | "producao" ou configurado como padrão no cadastro da empresa.

Formato de Erro

Quando uma requisição não pode ser processada, a API responde com o código de status HTTP correspondente e um corpo JSON estruturado com os detalhes da falha:

{
"error": "validation_error",
"message": "Parâmetros obrigatórios ausentes ou inválidos.",
"details": [
{
"field": "destinatario.cpfCnpj",
"error": "CPF ou CNPJ informado é inválido."
}
]
}

Códigos de Status HTTP Frequentes

CódigoNomeSignificado
200 / 201OK / CreatedOperação processada com sucesso.
400Bad RequestPayload JSON malformado ou parâmetros inválidos.
401UnauthorizedChave de API ausente, inválida ou expirada no cabeçalho X-API-Key.
403ForbiddenCredencial sem permissão para acessar o recurso da empresa solicitada.
404Not FoundRecurso fiscal, empresa ou documento não encontrado.
422Unprocessable EntityFalha em regra fiscal de negócio ou rejeição de esquema da SEFAZ.
429Too Many RequestsLimite de requisições por segundo ou por minuto excedido.
500Internal Server ErrorFalha interna inesperada no processamento da API.
502Bad GatewayServidor autorizador da SEFAZ ou ADN offline ou instável.

Paginação

Endpoints que retornam múltiplos registros (como listagem de notas, clientes ou produtos) adotam paginação via query parameters:

ParâmetroTipoPadrãoDescrição
pageinteger1Número da página desejada (base 1).
limitinteger20Quantidade máxima de itens por página (máximo 100).
offsetinteger0Deslocamento inicial alternativo para paginação baseada em cursor.
{
"data": [
{ "id": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d", "numero": 101, "status": "autorizada" },
{ "id": "c3a1d94f-5192-4e63-8a3b-9e4a8b7c9120", "numero": 102, "status": "autorizada" }
],
"meta": {
"page": 1,
"limit": 20,
"total": 142,
"totalPages": 8
}
}

Limites de Requisição (Rate Limit)

Para garantir alta disponibilidade e proteção contra picos excessivos, a API NFER aplica limites de taxa baseados no plano contratado. Todas as respostas HTTP incluem cabeçalhos informando o estado da sua cota:

Cabeçalho HTTPDescrição
X-RateLimit-LimitNúmero máximo de requisições permitidas dentro da janela de tempo atual.
X-RateLimit-RemainingQuantidade de requisições restantes que você ainda pode executar na janela vigente.
X-RateLimit-ResetTimestamp em segundos (Unix Epoch UTC) em que a janela de limite será reiniciada.
Retry-AfterRetornado quando o status é 429 Too Many Requests, indicando quantos segundos seu cliente deve aguardar antes de tentar novamente.

Boas Práticas para Evitar Erros 429

Para operações de emissão em lote ou filas de alto volume, implemente retentativas automáticas com recuo exponencial (exponential backoff) e respeite o valor do cabeçalho Retry-After.