Comece Aqui

Quick Start

Da API Key à primeira NF-e autorizada em 4 passos.

Emita sua primeira NF-e em 4 passos. A autorização na SEFAZ é assíncrona: você cria o rascunho, enfileira o envio e recebe um webhook (recomendado) — ou faz polling a cada 3–5 s até o status terminal.

  1. 1 · API Key
  2. 2 · Cliente
  3. 3 · Criar NF-e
  4. 4 · Send + poll
1
Obter API Key

No cadastro (Criar conta) ou via POST /v1/companies, a API Key é exibida uma única vez. Guarde com segurança.

Formato

<8-chars-do-uuid>.<segredo> — ex.: a0eebc99.super-secret-key-123
2
Destinatário (opcional se usar destinatario inline)

Pode cadastrar o cliente antes ou enviar destinatario direto no POST /v1/nfe. O cMun pode vir no payload ou ser resolvido (UF+cidade / CEP) na base IBGE local.

OperaçãoMétodo e RotaReferência Técnica
Cadastrar ClientePOST /v1/customersVer Parâmetros →
curl -X POST https://api.nfer.me/v1/customers \
-H "Content-Type: application/json" \
-H "X-API-Key: $NFER_KEY" \
-d '{
"nome": "Cliente Exemplo LTDA",
"cpfCnpj": "00000000000191",
"tipoPessoa": "J",
"endereco": {
"logradouro": "Rua Exemplo",
"numero": "100",
"bairro": "Centro",
"cMun": "4106902",
"xMun": "Curitiba",
"UF": "PR",
"CEP": "80010000"
}
}'
{
"id": "uuid-do-cliente",
"nome": "Cliente Exemplo LTDA",
"cpf_cnpj": "00000000000191"
}
3
Criar rascunho da NF-e

Modo smart: informe destinatarioId ou destinatario inline, e fiscalProfileId no item. O número da nota é reservado na hora.

Compatibilidade: aliases customerId e customer continuam aceitos normalmente.

OperaçãoMétodo e RotaReferência Técnica
Criar NF-ePOST /v1/nfeVer Parâmetros & Presets →
curl -X POST https://api.nfer.me/v1/nfe \
-H "Content-Type: application/json" \
-H "X-API-Key: $NFER_KEY" \
-d '{
"destinatarioId": "UUID-DO-CLIENTE",
"naturezaOperacao": "VENDA DE MERCADORIA",
"tipoOperacao": "1",
"finalidade": 1,
"serie": 1,
"consumidorFinal": true,
"transporte": { "modFrete": 9 },
"itens": [{
"fiscalProfileId": "UUID-DO-PERFIL",
"codigo": "SKU-001",
"descricao": "PRODUTO TESTE",
"quantidade": 2,
"valorUnitario": 125.50,
"ncm": "61091000",
curl -X POST https://api.nfer.me/v1/nfe \
-H "Content-Type: application/json" \
-H "X-API-Key: $NFER_KEY" \
-d '{
"destinatario": {
"cpfCnpj": "00000000000191",
"nome": "Cliente Exemplo LTDA",
"endereco": {
"logradouro": "Rua Exemplo",
"numero": "100",
"bairro": "Centro",
"xMun": "Cianorte",
"UF": "PR",
"CEP": "87200000"
}
},
"naturezaOperacao": "VENDA DE MERCADORIA",
"tipoOperacao": "1",
{
"id": "uuid-da-nfe",
"status": "rascunho",
"numero": 143,
"serie": 1
}
4
Enviar à SEFAZ e acompanhar

POST /v1/nfe/:id/send responde 202 e Preferência: cadastre um webhook. Sem webhook, faça polling em GET /v1/nfe/:id a cada 3–5 s até sair de processando (não menos que 3 s — rate limit da API).

OperaçãoMétodo e RotaReferência Técnica
Transmitir à SEFAZPOST /v1/nfe/:id/sendVer Envio →
Consultar StatusGET /v1/nfe/:idVer Retorno →
curl -X POST https://api.nfer.me/v1/nfe/$NFE_ID/send \
-H "X-API-Key: $NFER_KEY"
{
"message": "NF-e queued for sending",
"jobId": "job-uuid",
"status": "processando"
}
{
"id": "uuid-da-nfe",
"status": "autorizada",
"chave_acesso": "4126...",
"numero": 143
}