Quickstart — primeiro documento NFe/CTe em ≤5 minutos
Objetivo: ativar o NFe/CTe Inbound e receber o primeiro documento em ≤5 minutos (homologação ou produção). Para tutorial guiado, vá direto a Primeiros passos.
Sumário
- Pré-requisitos
- Fluxo em 5 passos
- Passo 1 — Ativar inbound
- Passo 2 — Configurar webhook
- Passo 3 — Aguardar primeiro polling
- Passo 4 — Baixar XML / DANFE
- Passo 5 — Próximos passos
Pré-requisitos
- API Key ativa no painel nfe.io (header
Authorization: ApiKey <chave>) - Certificado digital A1 (
.pfx/.p12) configurado para a empresa - company_id da empresa cadastrada
- webhookUrl HTTPS público para receber notificações (opcional para o teste inicial via API)
Fluxo em 5 passos
Passo 1 — Ativar inbound
export NFEIO_API_KEY="<sua-chave>"
export COMPANY_ID="<id-da-empresa>"
curl -X POST \
"https://api.nfe.io/v2/companies/$COMPANY_ID/inbound/productinvoices" \
-H "Authorization: ApiKey $NFEIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"StartFromNsu": 0,
"StartFromDate": "2026-01-01T00:00:00Z",
"EnvironmentSEFAZ": "Test",
"WebhookVersion": 2
}'
Resposta 200 com "status": "Active" confirma a ativação. Use "EnvironmentSEFAZ": "Production" quando for para o ambiente real.
Passo 2 — Configurar webhook
No Painel nfe.io → Webhooks, cadastre a URL HTTPS do seu endpoint. Veja Configurar webhook para detalhes (HMAC, retry, etc.).
Passo 3 — Aguardar primeiro polling
A nfe.io consulta o Ambiente Nacional da SEFAZ periodicamente em nome do seu CNPJ. O primeiro documento chega entre 15 minutos e 4 horas após a autorização na SEFAZ.
Para consultar manualmente o status:
curl "https://api.nfe.io/v2/companies/$COMPANY_ID/inbound/productinvoices" \
-H "Authorization: ApiKey $NFEIO_API_KEY"
Passo 4 — Baixar XML / DANFE
Quando um documento chegar (via webhook ou polling), peça a URL temporária do XML pela chave de 44 dígitos e depois baixe o arquivo dessa URL — o endpoint abaixo retorna JSON ({"publicTemporaryUri": "..."}), não o XML diretamente:
curl "https://api.nfe.io/v2/companies/$COMPANY_ID/inbound/<CHAVE_44>/xml" \
-H "Authorization: ApiKey $NFEIO_API_KEY"
# → {"publicTemporaryUri": "https://storage.../nfe.xml"}
curl "$(...)" -o nfe.xml # baixe a partir da publicTemporaryUri retornada
Passo 5 — Próximos passos
- Tutorial completo: Primeiros passos
- Como fazer: Ativar via API
- Como fazer: Configurar webhook (HMAC, retry)
- Referência: Webhook events + HMAC
- Conceitos: Arquitetura