Webhooks: enviar vendas para o Zapier e faturar no InvoiceXpress
Atualizado a 29 de setembro de 2026
Um webhook envia cada venda paga e cada novo lead da tua loja para um endereço teu, em segundos: produto, cliente (nome, email, NIF quando o indica e campos personalizados), valor, cupão e método de pagamento. Com o Zapier, isso chega para emitir a fatura-recibo no InvoiceXpress ou juntar o cliente à tua lista de email.
1. Criar o Zap e copiar o URL
- 1No Zapier, cria um Zap novo e escolhe o gatilho Webhooks by Zapier → Catch Hook.
- 2Continua até o Zapier te mostrar o URL do webhook (começa por
https://hooks.zapier.com/hooks/catch/) e copia-o.
2. Ligar à Shelf
- 1No painel, vai a Definições → Integrações → Webhooks, cola o URL e clica em Ligar webhook.
- 2Clica em Enviar evento de teste.
- 3No Zapier, clica em Test trigger: aparece uma venda de exemplo (Cliente Teste, NIF 123456789) com todos os campos para mapear.
O NIF do cliente chega em data.buyer.nif: nos checkouts pagos, quem compra pode abrir Quero fatura com NIF e escrevê-lo, se quiser (ligas ou desligas em Definições → Faturação). Sem NIF, o campo vem a null: deixa o NIF da fatura vazio e ela fica para consumidor final. Não é preciso criar um campo personalizado.
3. Emitir a fatura-recibo no InvoiceXpress
- 1Adiciona um passo Filter by Zapier: continua só se
typeforsale.paid, setestnão existir e sedata.amount.totalfor maior que 0. Uma venda com cupão de 100% chega com total 0.00 ecoupon_full: true. - 2Adiciona a ação InvoiceXpress → Create Invoice-Receipt e liga a tua conta InvoiceXpress.
- 3Mapeia os campos (tabela abaixo). Escolhe a taxa de IVA ou o motivo de isenção que se aplica a ti; se tiveres dúvidas, confirma com o teu contabilista.
- 4Adiciona InvoiceXpress → Finalize Invoice-Receipt para a fatura ficar emitida e, se quiseres, Sends Invoice by Email para o cliente a receber.
- 5Testa o Zap com o evento de teste e liga-o.
| InvoiceXpress | Campo do webhook |
|---|---|
| Nome do cliente | data.buyer.name |
| Email do cliente | data.buyer.email |
| NIF | data.buyer.nif (vazio: consumidor final) |
| Descrição do artigo | data.product.title |
| Preço | data.amount.total |
| Referência | data.order_id |
Os eventos
sale.paid: uma venda paga, incluindo order bumps. Uma venda com cupão de 100% também conta, comcoupon_full: true.lead.created: alguém recebe um produto gratuito ou um lead magnet.
Os dois eventos trazem também data.consents, com o que o cliente aceitou no checkout: terms (os teus termos e condições, com a version do texto e accepted_at) e immediate_access (o pedido de acesso imediato, com kind e accepted_at). Cada um vem a null quando não se aplica.
Verificar a assinatura (opcional, para quem programa)
Cada pedido traz o cabeçalho Shelf-Signature: t=…,v1=…, em que v1 é o HMAC-SHA256 de t + "." + corpo com o segredo que vês uma única vez ao ligar o webhook. Recusa pedidos com mais de 5 minutos. O mesmo evento pode, raramente, chegar duas vezes: usa o id para ignorar repetidos.
Perguntas frequentes
Posso usar o Make ou o n8n em vez do Zapier?+
Sim. No Make, usa o módulo Custom webhook; no n8n, o nó Webhook. Recebem exatamente os mesmos dados.
O que acontece se o meu Zap estiver desligado?+
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.
E se o meu produto já tem um campo personalizado «NIF»?+
Continua a funcionar. Nesse produto a Shelf não mostra o Quero fatura com NIF, e o que o cliente escrever no teu campo também chega em data.buyer.nif, se for um NIF válido.