Webhooks da Shelf: os dados de cada venda

Atualizado a 23 de outubro de 2026

Um webhook envia cada venda paga e cada novo lead da tua loja para um endereço teu, em segundos. É a base de todas as automações: faturas automáticas, listas de email, folhas de cálculo ou avisos à tua equipa.

Ligar um webhook

  1. 1No Make, cria um cenário com o módulo Webhooks → Custom webhook, clica em Add e copia o URL (começa por https://hook.).
  2. 2Na Shelf, vai a Definições → Integrações → Webhooks, cola o URL e clica em Ligar webhook. Depois clica em Enviar evento de teste.
  3. 3O Make fica a conhecer os campos da venda e podes usá-los nos módulos seguintes como {{1.data.buyer.email}}.

Os eventos

  • sale.paid: uma venda paga, incluindo order bumps. Uma venda com cupão de 100% também conta, com coupon_full: true e total 0.00.
  • lead.created: alguém recebe um produto gratuito ou um lead magnet.
  • lesson.completed e course.completed: um aluno conclui uma aula ou um curso inteiro. Chegam só se os ligares no cartão do webhook (Aula concluída e Curso concluído).

O evento de teste

Enviar evento de teste envia uma venda de exemplo com "test": true, para a ferramenta conhecer os campos antes da primeira venda. Numa venda real, o campo test não existe: junta a condição «test não existe» ao filtro antes de ligar a automação a sério.

{
  "id": "evt_…",
  "type": "sale.paid",
  "created_at": "2026-10-23T10:00:00.000Z",
  "api_version": "2026-10-01",
  "test": true,
  "store": {
    "username": "aminhaloja",
    "url": "https://shelf.pt/aminhaloja"
  },
  "data": {
    "order_id": "00000000-0000-0000-0000-000000000000",
    "ordered_at": "2026-10-23T10:00:00.000Z",
    "product": {
      "id": "00000000-0000-0000-0000-000000000001",
      "title": "Produto de teste",
      "type": "digital",
      "url": "https://shelf.pt/aminhaloja"
    },
    "buyer": {
      "name": "Cliente Teste",
      "email": "cliente@exemplo.pt",
      "nif": "123456789",
      "marketing_consent": true,
      "custom_fields": {
        "Como nos conheceste?": "Instagram"
      }
    },
    "amount": {
      "total": "19.00",
      "original": "19.00",
      "discount": "0.00",
      "coupon": null,
      "pwyw": false,
      "currency": "EUR"
    },
    "consents": {
      "terms": {
        "version": "…",
        "accepted_at": "2026-10-23T10:00:00.000Z"
      },
      "immediate_access": {
        "kind": "digital_content",
        "accepted_at": "2026-10-23T10:00:00.000Z"
      }
    },
    "coupon_full": false,
    "payment": {
      "method": "mb_way",
      "stripe_payment_intent": null
    },
    "bumps": [],
    "tax": null
  }
}

Os campos

O que éCampo
Tipo de eventotype
Só no evento de testetest
Id do evento (para ignorar repetidos)id
Id da encomendadata.order_id
Data da compradata.ordered_at
Produtodata.product.title, id, type, url
Nome do clientedata.buyer.name
Email do clientedata.buyer.email
NIF (null quando não o indica)data.buyer.nif
Aceitou emails de marketing (null: não foi perguntado)data.buyer.marketing_consent
Campos personalizados, pelo nome do campodata.buyer.custom_fields
O que o cliente pagoudata.amount.total
Valor antes do cupãodata.amount.original
Desconto do cupãodata.amount.discount
Código do cupãodata.amount.coupon
Moedadata.amount.currency
Cupão de 100%data.coupon_full
Método de pagamentodata.payment.method
Order bumps (título e valor)data.bumps
IVA cobrado pela Shelf (null se não cobras)data.tax
Termos e acesso imediato aceitesdata.consents

Os valores vêm em euros, como texto com duas casas decimais ("19.00"). Um lead (lead.created) traz o produto, o cliente, os valores e os consentimentos, sem pagamento nem order bumps.

Métodos de pagamento

  • card: cartão, incluindo Apple Pay e Google Pay.
  • mb_way: MB WAY (vendas mais antigas podem trazer mbway).
  • revolut_pay: Revolut Pay, se o ligares.
  • free: sem pagamento, numa venda com cupão de 100%.

Perguntas frequentes

O que acontece se o meu endereço estiver em baixo?+

Tentamos de novo até 8 vezes ao longo de cerca de 45 horas. Se o endereço responder 410 (removido), o webhook é desligado; reativa-o em Definições → Integrações.

Onde vejo se os envios estão a funcionar?+

Em Definições → Integrações → Webhooks, na lista Últimos envios: cada evento com o estado e o código de resposta.

Quantos webhooks posso ligar?+

Um por loja, por agora.

Os eventos trazem dados pessoais?+

Sim: o nome, o email, o NIF e os campos personalizados do cliente. Liga o webhook só a ferramentas e endereços teus. Na Shelf, os envios ficam guardados 30 dias.

Ainda não tens loja Shelf?

Cria a tua em minutos: 14 dias grátis, 0% de comissão sobre as vendas.

Criar a minha loja