NostFood API

Documentação para integração com o sistema NostFood

Introdução

Bem-vindo à documentação da API do NostFood. Esta API permite que você integre seu sistema com a plataforma NostFood para consultar pedidos, usuários e produtos.

URL Base: https://nostfood.com/api/public/

Como Obter sua API Key

  1. Acesse o painel administrativo do seu lojista
  2. Navegue até a seção "🔌 API Externa"
  3. Clique na aba "📥 Permitir Consultas"
  4. Clique em "Nova Chave"
  5. Preencha o nome da integração e selecione as permissões necessárias
  6. Copie a chave gerada (ela será exibida apenas uma vez!)
⚠️ Importante: A chave API é exibida apenas no momento da criação. Guarde-a em local seguro!

Endpoints Disponíveis

A API oferece 8 endpoints principais organizados em 3 recursos:

  • 📦 Pedidos: GET (listar) e POST (criar, atualizar, cancelar)
  • 👥 Usuários: GET (listar) e POST (criar)
  • 🍕 Produtos: GET (listar) e POST (criar)

Modos de Sincronização

  • Polling (GET): disponível para reconciliação e recuperação de consistência
  • Webhook (eventos): recomendado para processamento em tempo real
  • Modo Híbrido: webhook como primário + polling como backup

Formato de Resposta

Todas as respostas são retornadas em formato JSON com a seguinte estrutura:

{
  "success": true,
  "data": { ... },
  "message": "Mensagem opcional"
}
✅ API Bidirecional: Esta API é totalmente bidirecional - você pode tanto consultar dados (GET) quanto enviar dados (POST) usando a mesma chave API. Os endpoints POST aceitam a mesma estrutura que os endpoints GET retornam, facilitando a integração.

Autenticação

Para acessar a API, você precisa incluir sua chave API em todas as requisições através do header X-API-Key.

Exemplo de Requisição

curl -X GET "https://nostfood.com/api/public/pedidos.php" \
  -H "X-API-Key: f37c69fc95815aa030229acc8ab6fe63385312a80300a99c611322c913e5be28"

Permissões da API Key

Cada API Key pode ter permissões granulares para diferentes recursos:

  • 📦 Pedidos - Acesso ao endpoint de pedidos
  • 👥 Usuários - Acesso ao endpoint de usuários
  • 🍕 Produtos - Acesso ao endpoint de produtos

Respostas de Autenticação

401 - API Key não fornecida:

{
  "success": false,
  "message": "API Key não fornecida. Use o header X-API-Key"
}

401 - API Key inválida:

{
  "success": false,
  "message": "API Key inválida"
}

403 - API Key desativada:

{
  "success": false,
  "message": "API Key desativada"
}

403 - API Key expirada:

{
  "success": false,
  "message": "API Key expirada"
}

403 - Sem permissão:

{
  "success": false,
  "message": "Sem permissão para acessar pedidos"
}
⚠️ Segurança: Nunca compartilhe sua chave API publicamente. Mantenha-a em segredo como se fosse uma senha. Todas as requisições são registradas com IP e User-Agent para auditoria.

Pedidos

GET Listar Pedidos

/api/public/pedidos.php

Retorna a lista de pedidos do lojista autenticado via API Key.

Parâmetros Query (opcionais)
  • status - Filtrar por status (confirmado, preparando, enviado, entregue, cancelado)
  • data_inicio - Data inicial (formato: YYYY-MM-DD)
  • data_fim - Data final (formato: YYYY-MM-DD)
  • limit - Limite de resultados (padrão: 100, máximo: 1000)
  • offset - Pular registros para paginação
Exemplo de Requisição
curl -X GET "https://nostfood.com/api/public/pedidos.php?status=confirmado&limit=10" \
  -H "X-API-Key: sua_chave_api_aqui"
Exemplo de Resposta
{
  "success": true,
  "data": {
    "pedidos": [
      {
        "id": 123,
        "order_number": "PED-20251106-1234",
        "customer_name": "João Silva",
        "customer_email": "joao@example.com",
        "customer_phone": "5511999999999",
        "customer_address": "Rua das Flores, 123",
        "customer_number": "123",
        "customer_neighborhood": "Centro",
        "customer_city": "São Paulo",
        "customer_state": "SP",
        "customer_cep": "01000-000",
        "customer_complemento": "Apto 45",
        "items": [
          {
            "id": 1,
            "name": "Pizza Margherita",
            "quantity": 2,
            "price": 45.00,
            "subtotal": 90.00,
            "customizations": []
          }
        ],
        "subtotal": 90.00,
        "delivery": 5.00,
        "total": 95.00,
        "status": "confirmado",
        "payment_method": "pix",
        "created_at": "2025-11-06 14:30:00",
        "hora_preparado": null,
        "hora_enviado": null,
        "hora_pronto": null,
        "hora_aprovado": "2025-11-06 14:31:00",
        "hora_confirmado": "2025-11-06 14:31:00"
      }
    ],
    "total": 150,
    "limit": 10,
    "offset": 0,
    "has_more": true
  },
  "message": "Pedidos recuperados com sucesso"
}

POST Criar Pedido

/api/public/criar-pedido.php

Cria um novo pedido no sistema do lojista.

Campos Obrigatórios
  • customer_name (string) - Nome do cliente
  • customer_phone (string) - Telefone do cliente
  • customer_address (string) - Endereço de entrega
  • items (array) - Array de itens do pedido
  • total (float) - Valor total do pedido
  • payment_method (string) - Método de pagamento
Campos Opcionais
  • customer_email (string) - Email do cliente
  • customer_number (string) - Número do endereço
  • customer_neighborhood (string) - Bairro
  • customer_city (string) - Cidade
  • customer_state (string) - Estado (UF)
  • customer_cep (string) - CEP
  • customer_complemento (string) - Complemento
  • subtotal (float) - Subtotal (se não informado, usa o total)
  • delivery (float) - Taxa de entrega (padrão: 0)
  • status (string) - Status inicial (padrão: "pendente")
Exemplo de Requisição
curl -X POST "https://nostfood.com/api/public/criar-pedido.php" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: sua_chave_api_aqui" \
  -d '{
    "customer_name": "João Silva",
    "customer_phone": "5511999999999",
    "customer_email": "joao@example.com",
    "customer_address": "Rua das Flores, 123",
    "customer_number": "123",
    "customer_neighborhood": "Centro",
    "customer_city": "São Paulo",
    "customer_state": "SP",
    "customer_cep": "01000-000",
    "items": [
      {
        "id": 89,
        "name": "Pizza Margherita",
        "quantity": 2,
        "price": 45.00,
        "customizations": []
      }
    ],
    "subtotal": 90.00,
    "delivery": 5.00,
    "total": 95.00,
    "payment_method": "pix"
  }'
Exemplo de Resposta (201 Created)
{
  "success": true,
  "data": {
    "pedido_id": "498",
    "order_number": "API-20251106-2855",
    "status": "pendente"
  },
  "message": "Pedido criado com sucesso"
}
💡 Dica: O order_number é gerado automaticamente no formato API-YYYYMMDD-#### e pode ser usado para rastrear o pedido.

POST Atualizar Pedido

/api/public/atualizar-pedido.php

Atualiza o status de um pedido existente do lojista autenticado.

Campos Obrigatórios
  • status (string) - Novo status do pedido
  • pedido_id (int) OU order_number (string) - Identificador do pedido
Status aceitos
  • pendente, confirmado, aprovado, em_preparo, pronto, saiu_entrega, enviado, entregue, cancelado, rejeitado
Exemplo de Requisição
curl -X POST "https://nostfood.com/api/public/atualizar-pedido.php" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: sua_chave_api_aqui" \
  -d '{
    "order_number": "API-20251106-2855",
    "status": "em_preparo"
  }'
Exemplo de Resposta
{
  "success": true,
  "data": {
    "pedido_id": 498,
    "order_number": "API-20251106-2855",
    "status_anterior": "confirmado",
    "status_novo": "em_preparo"
  },
  "message": "Pedido atualizado com sucesso"
}

POST Cancelar Pedido

/api/public/cancelar-pedido.php

Cancela um pedido existente do lojista autenticado (status final: cancelado).

Campos Obrigatórios
  • pedido_id (int) OU order_number (string) - Identificador do pedido
Campos Opcionais
  • motivo (string) - Motivo do cancelamento
Exemplo de Requisição
curl -X POST "https://nostfood.com/api/public/cancelar-pedido.php" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: sua_chave_api_aqui" \
  -d '{
    "pedido_id": 498,
    "motivo": "Cliente solicitou cancelamento"
  }'
Exemplo de Resposta
{
  "success": true,
  "data": {
    "pedido_id": 498,
    "order_number": "API-20251106-2855",
    "status_anterior": "em_preparo",
    "status_novo": "cancelado",
    "motivo": "Cliente solicitou cancelamento"
  },
  "message": "Pedido cancelado com sucesso"
}

Usuários

GET Listar Usuários

/api/public/usuarios.php

Retorna a lista de usuários/clientes que se cadastraram através do seu lojista.

Parâmetros Query (opcionais)
  • email - Buscar por email (busca parcial)
  • limit - Limite de resultados (padrão: 100, máximo: 1000)
  • offset - Pular registros para paginação
Exemplo de Requisição
curl -X GET "https://nostfood.com/api/public/usuarios.php?limit=10" \
  -H "X-API-Key: sua_chave_api_aqui"
Exemplo de Resposta
{
  "success": true,
  "data": {
    "usuarios": [
      {
        "id": 456,
        "name": "Maria Santos",
        "email": "maria@exemplo.com",
        "phone": "5511988888888",
        "cep": "01000-000",
        "address": "Rua das Palmeiras",
        "number": "456",
        "neighborhood": "Jardins",
        "complemento": "Casa 2",
        "city": "São Paulo",
        "state": "SP",
        "created_at": "2024-12-01 10:00:00",
        "total_pedidos": 15,
        "total_gasto": 850.00,
        "ultimo_pedido": "2025-11-05 18:30:00"
      }
    ],
    "total": 230,
    "limit": 10,
    "offset": 0,
    "has_more": true
  },
  "message": "Usuários recuperados com sucesso"
}

POST Criar Usuário

/api/public/criar-usuario.php

Cadastra um novo usuário/cliente no sistema.

Campos Obrigatórios
  • name (string) - Nome completo do usuário
  • email (string) - Email único do usuário
Campos Opcionais
  • phone (string) - Telefone
  • password (string) - Senha (se não fornecida, é gerada automaticamente)
  • cep (string) - CEP
  • address (string) - Endereço
  • number (string) - Número
  • neighborhood (string) - Bairro
  • complemento (string) - Complemento
  • city (string) - Cidade
  • state (string) - Estado (UF)
Exemplo de Requisição
curl -X POST "https://nostfood.com/api/public/criar-usuario.php" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: sua_chave_api_aqui" \
  -d '{
    "name": "Maria Santos",
    "email": "maria@exemplo.com",
    "phone": "5511988888888",
    "cep": "01000-000",
    "address": "Rua das Palmeiras",
    "number": "456",
    "neighborhood": "Jardins",
    "city": "São Paulo",
    "state": "SP"
  }'
Exemplo de Resposta (201 Created)
{
  "success": true,
  "data": {
    "user_id": "50",
    "email": "maria@exemplo.com",
    "senha_gerada": "a8f4c92d"
  },
  "message": "Usuário criado com sucesso"
}
⚠️ Importante: Se a senha não for fornecida, o sistema gera uma senha aleatória que é retornada no campo senha_gerada. Envie essa senha para o usuário por email ou outro meio seguro.
Validações
  • O email deve ser único no sistema
  • O formato do email é validado
  • Email duplicado retorna erro 400

Produtos

GET Listar Produtos

/api/public/produtos.php

Retorna o catálogo completo de produtos do lojista, incluindo categoria, subcategoria e customizações.

Parâmetros Query (opcionais)
  • categoria_id - Filtrar por categoria
  • ativo - Filtrar por status (1 = ativo, 0 = inativo)
  • limit - Limite de resultados (padrão: 100, máximo: 1000)
  • offset - Pular registros para paginação
Exemplo de Requisição
curl -X GET "https://nostfood.com/api/public/produtos.php?ativo=1&limit=10" \
  -H "X-API-Key: sua_chave_api_aqui"
Exemplo de Resposta
{
  "success": true,
  "data": {
    "produtos": [
      {
        "id": 89,
        "nome": "Hambúrguer Artesanal",
        "descricao": "Pão brioche, blend 180g, queijo cheddar",
        "preco": 32.00,
        "preco_promocional": null,
        "imagem_url": "https://exemplo.com/imagem.jpg",
        "ativo": true,
        "categoria_id": 5,
        "categoria_nome": "Lanches",
        "subcategory_id": 12,
        "subcategoria_nome": "Hambúrgueres Especiais",
        "ordem": 1,
        "created_at": "2025-01-15 10:00:00",
        "updated_at": "2025-11-06 08:30:00",
        "subprodutos": [
          {
            "id": 1,
            "nome": "Ponto da Carne",
            "descricao": "Escolha o ponto da carne",
            "tipo": "single",
            "obrigatorio": true,
            "min_opcoes": 1,
            "max_opcoes": 1,
            "ordem": 1,
            "opcoes": [
              {
                "id": 1,
                "nome": "Mal Passado",
                "descricao": null,
                "preco_adicional": 0.00,
                "incluido": false,
                "ordem": 1,
                "disponivel": true
              },
              {
                "id": 2,
                "nome": "Ao Ponto",
                "descricao": null,
                "preco_adicional": 0.00,
                "incluido": true,
                "ordem": 2,
                "disponivel": true
              },
              {
                "id": 3,
                "nome": "Bem Passado",
                "descricao": null,
                "preco_adicional": 0.00,
                "incluido": false,
                "ordem": 3,
                "disponivel": true
              }
            ]
          },
          {
            "id": 2,
            "nome": "Adicionais",
            "descricao": "Escolha até 3 adicionais",
            "tipo": "multiple",
            "obrigatorio": false,
            "min_opcoes": 0,
            "max_opcoes": 3,
            "ordem": 2,
            "opcoes": [
              {
                "id": 4,
                "nome": "Bacon Extra",
                "descricao": null,
                "preco_adicional": 5.00,
                "incluido": false,
                "ordem": 1,
                "disponivel": true
              },
              {
                "id": 5,
                "nome": "Cheddar Extra",
                "descricao": null,
                "preco_adicional": 4.00,
                "incluido": false,
                "ordem": 2,
                "disponivel": true
              }
            ]
          }
        ]
      }
    ],
    "total": 45,
    "limit": 10,
    "offset": 0,
    "has_more": true
  },
  "message": "Produtos recuperados com sucesso"
}
Estrutura do Produto

Cada produto retorna 4 componentes principais:

  1. Produto: Dados básicos (id, nome, descrição, preço, imagem, status)
  2. Categoria: ID e nome da categoria
  3. Subcategoria: ID e nome da subcategoria (pode ser null)
  4. Subprodutos: Array de grupos de customização com suas opções
💡 Dica: Os subprodutos podem ter tipo single (selecionar apenas 1) ou multiple (selecionar várias). Use os campos min_opcoes e max_opcoes para validar a seleção.

POST Criar Produto

/api/public/criar-produto.php

Cria um novo produto no catálogo com estrutura completa incluindo categoria, subcategoria e grupos de customização.

Campos Obrigatórios
  • name ou nome (string) - Nome do produto
  • price ou preco (float) - Preço do produto
  • category_id (int) OU categoria_nome (string) - ID da categoria existente ou nome para criar nova
Campos Opcionais
  • description ou descricao (string) - Descrição do produto
  • original_price ou preco_promocional (float) - Preço original (para produtos em promoção)
  • image_url ou imagem_url (string) - URL da imagem
  • active ou ativo (boolean) - Status (padrão: true)
  • sort_order ou ordem (int) - Ordem de exibição (padrão: 0)
  • categoria_descricao (string) - Descrição da categoria (ao criar nova)
  • categoria_ordem (int) - Ordem da categoria (ao criar nova)
  • subcategory_id (int) OU subcategoria_nome (string) - ID ou nome da subcategoria
  • min_quantity (int) - Quantidade mínima da subcategoria
  • max_quantity (int) - Quantidade máxima da subcategoria
  • subprodutos (array) - Array de grupos de customização
Estrutura dos Subprodutos

Cada grupo de customização no array subprodutos pode conter:

  • nome (string) - Nome do grupo (ex: "Tamanho", "Adicionais")
  • descricao (string) - Descrição do grupo
  • tipo (string) - Tipo: "single" ou "multiple"
  • obrigatorio (boolean) - Se é obrigatório selecionar
  • min_opcoes (int) - Mínimo de opções a selecionar
  • max_opcoes (int) - Máximo de opções a selecionar
  • ordem (int) - Ordem de exibição
  • opcoes (array) - Array de opções do grupo

Cada opção no array opcoes pode conter:

  • nome (string) - Nome da opção
  • descricao (string) - Descrição da opção
  • preco_adicional (float) - Valor adicional
  • incluido (boolean) - Se vem incluído por padrão
  • ordem (int) - Ordem de exibição
  • disponivel (boolean) - Se está disponível (padrão: true)
Exemplo de Requisição Completa
curl -X POST "https://nostfood.com/api/public/criar-produto.php" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: sua_chave_api_aqui" \
  -d '{
    "nome": "Hambúrguer Artesanal Supreme",
    "descricao": "Blend 180g, pão brioche, queijos nobres",
    "preco": 42.90,
    "preco_promocional": 38.90,
    "imagem_url": "https://exemplo.com/burger-supreme.jpg",
    "categoria_nome": "Lanches Premium",
    "categoria_descricao": "Lanches artesanais premium",
    "subcategoria_nome": "Hambúrgueres Especiais",
    "ativo": true,
    "ordem": 1,
    "subprodutos": [
      {
        "nome": "Ponto da Carne",
        "descricao": "Escolha como deseja sua carne",
        "tipo": "single",
        "obrigatorio": true,
        "min_opcoes": 1,
        "max_opcoes": 1,
        "ordem": 1,
        "opcoes": [
          {
            "nome": "Mal Passado",
            "preco_adicional": 0,
            "incluido": false,
            "ordem": 1
          },
          {
            "nome": "Ao Ponto",
            "preco_adicional": 0,
            "incluido": true,
            "ordem": 2
          },
          {
            "nome": "Bem Passado",
            "preco_adicional": 0,
            "incluido": false,
            "ordem": 3
          }
        ]
      },
      {
        "nome": "Adicionais",
        "descricao": "Adicione até 3 extras",
        "tipo": "multiple",
        "obrigatorio": false,
        "min_opcoes": 0,
        "max_opcoes": 3,
        "ordem": 2,
        "opcoes": [
          {
            "nome": "Bacon Crocante",
            "preco_adicional": 6.00,
            "incluido": false,
            "ordem": 1,
            "disponivel": true
          },
          {
            "nome": "Queijo Cheddar",
            "preco_adicional": 4.50,
            "incluido": false,
            "ordem": 2,
            "disponivel": true
          },
          {
            "nome": "Cebola Caramelizada",
            "preco_adicional": 3.00,
            "incluido": false,
            "ordem": 3,
            "disponivel": true
          }
        ]
      },
      {
        "nome": "Molhos Especiais",
        "descricao": "Escolha o molho de sua preferência",
        "tipo": "single",
        "obrigatorio": false,
        "min_opcoes": 0,
        "max_opcoes": 1,
        "ordem": 3,
        "opcoes": [
          {
            "nome": "Molho da Casa",
            "preco_adicional": 0,
            "incluido": true,
            "ordem": 1
          },
          {
            "nome": "Molho Barbecue",
            "preco_adicional": 2.00,
            "incluido": false,
            "ordem": 2
          }
        ]
      }
    ]
  }'
Exemplo de Resposta (201 Created)
{
  "success": true,
  "data": {
    "product_id": "1769",
    "name": "Hambúrguer Artesanal Supreme",
    "price": 42.9
  },
  "message": "Produto criado com sucesso"
}
✅ Auto-criação de Entidades:
  • Se você fornecer categoria_nome e a categoria não existir, ela será criada automaticamente
  • Se você fornecer subcategoria_nome e a subcategoria não existir, ela será criada automaticamente
  • Isso simplifica a integração - você não precisa criar categorias/subcategorias separadamente!
💡 Paridade de Estrutura: Este endpoint POST aceita a mesma estrutura completa que o endpoint GET retorna. Isso significa que você pode:
  1. Buscar um produto com GET produtos.php
  2. Modificar os dados conforme necessário
  3. Enviar a estrutura completa via POST para criar um produto similar
🌐 Suporte Multilíngue: O endpoint aceita campos tanto em inglês quanto em português:
  • name ou nome
  • price ou preco
  • description ou descricao
  • active ou ativo

Webhooks & Polling (Modo Híbrido)

Para integrações com terceiros, recomendamos o modelo híbrido: webhook para tempo real e polling para reconciliação.

✅ Estratégia recomendada: processe eventos por webhook em tempo real e rode polling periódico para cobrir indisponibilidades temporárias do endpoint parceiro.

Fluxo de Entrega de Eventos

  1. NostFood detecta alteração de pedido ou catálogo
  2. NostFood envia evento para a URL webhook cadastrada do parceiro
  3. Parceiro responde 2xx em até 10 segundos
  4. Se falhar, NostFood agenda reentrega automática
  5. Polling periódico reconcilia possíveis perdas

Eventos Cobertos

Os eventos abaixo cobrem os fluxos de envio/recebimento de pedidos e catálogo:

Evento Descrição Direção
order.created Novo pedido criado NostFood → Parceiro
order.updated Alteração de status ou dados relevantes do pedido NostFood → Parceiro
order.cancelled Pedido cancelado/rejeitado NostFood → Parceiro
catalog.product.created Produto criado NostFood → Parceiro
catalog.product.updated Produto atualizado (incluindo subprodutos) NostFood → Parceiro
catalog.category.created Categoria criada NostFood → Parceiro
catalog.category.updated Categoria atualizada NostFood → Parceiro
catalog.subcategory.created Subcategoria criada NostFood → Parceiro
catalog.subcategory.updated Subcategoria atualizada NostFood → Parceiro
catalog.subproduct_group.created Grupo de customização criado NostFood → Parceiro
catalog.subproduct_group.updated Grupo de customização atualizado NostFood → Parceiro
catalog.subproduct_option.created Opção de customização criada NostFood → Parceiro
catalog.subproduct_option.updated Opção de customização atualizada NostFood → Parceiro

POST Formato de Entrega (Webhook Outbound)

Todos os eventos webhook seguem envelope padrão:

{
          "event_id": "evt_01JVW9B7N7Y8K2A4F4M1Q9R2ZX",
          "event_type": "order.updated",
          "occurred_at": "2026-05-15T19:55:31Z",
          "delivery_attempt": 1,
          "lojista_id": 32,
          "resource": {
          "type": "order",
          "id": "498"
          },
          "data": {
          "order_number": "API-20260515-2855",
          "status": "em_preparo",
          "previous_status": "confirmado",
          "total": 95.0
          }
        }
Headers de Segurança
  • X-NostFood-Event: nome do evento (ex: order.updated)
  • X-NostFood-Delivery-Id: id único da tentativa de entrega
  • X-NostFood-Timestamp: timestamp UNIX em segundos
  • X-NostFood-Signature: assinatura HMAC SHA-256 do corpo bruto
Assinatura

Assinatura recomendada: sha256=HMAC_SHA256(raw_body, webhook_secret). O parceiro deve validar assinatura e recusar payload sem assinatura válida.

Resposta esperada do parceiro
  • 2xx: evento aceito, não reenviar
  • 4xx/5xx ou timeout: reentrega automática

Política de Reentrega

  • Timeout por tentativa: 10s
  • Tentativas: até 6 (1 inicial + 5 retries)
  • Backoff sugerido: 10s, 30s, 2m, 5m, 15m
  • Ordenação: não garantida entre eventos distintos
  • Idempotência: obrigatória no parceiro via event_id e X-NostFood-Delivery-Id

Polling de Backup (Recomendado)

Mesmo com webhook habilitado, mantenha polling periódico para garantir consistência:

  • Pedidos: GET /api/public/pedidos.php com status, data_inicio, data_fim, limit, offset
  • Produtos/Catálogo: GET /api/public/produtos.php com categoria_id, ativo, limit, offset
Janela de Reconciliação

Sugestão operacional: executar polling a cada 60-120 segundos, buscando uma janela retroativa de pelo menos 5 minutos para cobrir atrasos de rede e retries.

💡 Envio para NostFood (entrada): para criar novos pedidos e produtos no NostFood, continue usando os endpoints POST já documentados (criar-pedido.php e criar-produto.php). O webhook cobre a distribuição de eventos de saída em tempo real.

Códigos de Erro

Código HTTP Significado Descrição
200 OK Requisição GET bem-sucedida
201 Created Recurso criado com sucesso (POST)
400 Bad Request Parâmetros inválidos ou faltantes
401 Unauthorized Chave API inválida ou ausente
403 Forbidden Sem permissão para acessar este recurso
404 Not Found Recurso não encontrado
429 Too Many Requests Limite de requisições excedido
500 Internal Server Error Erro interno do servidor

Exemplo de Resposta de Erro

{
  "success": false,
  "message": "Chave API inválida ou expirada"
}

Gerenciamento de Chaves API

Gerar Nova Chave

Acesse o painel administrativo → API ExternaPermitir ConsultasNova Chave

Visualizar Chaves Ativas

Suas chaves ativas aparecem mascaradas no formato: f37c69fc...13e5be28

Você pode ver:

  • Nome da chave
  • Permissões concedidas
  • Status (ativa/inativa)
  • Data de criação
  • Último uso
  • Data de expiração (se definida)

Logs de Acesso

Todos os acessos à API são registrados e você pode visualizar:

  • Data e hora do acesso
  • Chave utilizada (mascarada)
  • Endpoint acessado
  • Endereço IP de origem
  • Status da requisição
💡 Dica: Crie chaves diferentes para cada integração/sistema. Isso facilita o gerenciamento e revogação caso necessário.
Precisa de Ajuda?

Entre em contato com o suporte do NostFood ou acesse o painel administrativo para gerenciar suas chaves API.