Skip to content

NF-e simples (venda de produto)

Exemplo mínimo funcional para emitir uma NF-e de venda.

Request completo

bash
curl -X POST https://api.nferapido.com.br/api/v1/nfe \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d @nfe.json

nfe.json

json
{
  "ide": {
    "natOp": "Venda de mercadoria",
    "serie": 1,
    "nNF": 1
  },
  "dest": {
    "cnpj": "33000167000101",
    "xNome": "Cliente Teste LTDA",
    "email": "cliente@exemplo.com",
    "enderDest": {
      "xLgr": "Av. República do Chile",
      "nro": "65", "xBairro": "Centro",
      "cMun": "3304557", "xMun": "Rio de Janeiro", "UF": "RJ",
      "CEP": "20031170", "cPais": "1058", "xPais": "Brasil"
    },
    "indIEDest": "9"
  },
  "det": [{
    "prod": {
      "cProd": "PROD001", "cEAN": "SEM GTIN",
      "xProd": "Camiseta tamanho M", "NCM": "61091000",
      "CFOP": "6102", "uCom": "UN",
      "qCom": "2", "vUnCom": "49.90", "vProd": "99.80",
      "cEANTrib": "SEM GTIN", "uTrib": "UN",
      "qTrib": "2", "vUnTrib": "49.90", "indTot": "1"
    },
    "imposto": {
      "ICMS": { "ICMSSN102": { "orig": "0", "CSOSN": "102" } },
      "PIS":  { "PISNT": { "CST": "07" } },
      "COFINS": { "COFINSNT": { "CST": "07" } }
    }
  }],
  "total": {
    "vProd": "99.80",
    "vNF": "99.80",
    "vDesc": "0.00",
    "vFrete": "0.00"
  },
  "transp": { "modFrete": "9" },
  "pag": [{ "tPag": "01", "vPag": "99.80" }],
  "infAdic": { "infCpl": "Pedido Web #12345" }
}

Fluxo completo

  1. POST → retorna id imediatamente com status pendente
  2. Background job monta XML, assina, envia para SEFAZ (~3-8s)
  3. Webhook notifica sua URL quando autorizada
  4. GET /api/v1/nfe/{id} → status final com chave + protocolo
  5. GET /api/v1/nfe/{id}/danfe → PDF da DANFE para download

Variações comuns

Venda para consumidor final (CPF)

Troque dest.cnpj por dest.cpf:

json
{
  "dest": {
    "cpf": "12345678909",
    "xNome": "João da Silva",
    "indIEDest": "9"
  }
}

Com frete e desconto

json
{
  "total": {
    "vProd":  "100.00",
    "vFrete": "15.00",
    "vDesc":  "10.00",
    "vNF":    "105.00"
  }
}

Com referência a pedido

json
{
  "infAdic": {
    "infCpl": "Pedido #PED-001234 Shopify",
    "obsCont": [{ "xCampo": "ml_order", "xTexto": "2000012345" }]
  }
}

Emissão ilimitada em todos os planos.