Webhooks para novos pedidos
Um webhook envia cada novo pedido, e cada mudança nele, ao seu próprio sistema como uma mensagem JSON assinada. Você dá à Menuthere um endereço HTTPS e um segredo, e depois verifica a assinatura em cada requisição. Um botão de teste e um registro de entregas permitem conferir se funciona.
- Onde
- Set up by Menuthere support
- Plano
- O painel não restringe webhooks por plano.
- Tempo
- 15 min
- Atualizado
Configure um webhook
Passo 1: Envie seu endereço ao suporte
Os webhooks ainda não estão no painel, então o suporte da Menuthere os configura. Envie ao suporte o endereço que vai receber os pedidos. Ele precisa começar com https:// e estar acessível pela internet. Endereços como localhost ou de rede privada não podem ser chamados.
Passo 2: Guarde o segredo de assinatura
O suporte liga os webhooks de pedidos e entrega a você um segredo de assinatura. Guarde-o apenas no seu servidor. Você o usa para conferir se cada requisição realmente veio da Menuthere.
Passo 3: Peça um evento de teste
Peça ao suporte para enviar um evento de teste. Ele envia um order.created de exemplo ao seu endereço, e o resultado mostra Delivered com o código de resposta do seu endpoint, ou o que deu errado.
O que a Menuthere envia
| Evento | Enviado quando |
|---|---|
| order.created | Um pedido é feito. |
| order.status_updated | O status de um pedido muda, por exemplo aceito, comida pronta ou concluído. |
| payment.status_updated | Um pedido é marcado como pago, ou a forma de pagamento dele muda. |
| delivery.status_updated | Um entregador é atribuído ou o estado da entrega muda. |
| Cabeçalho | Valor |
|---|---|
| x-menuthere-event | O nome do evento. |
| x-menuthere-timestamp | Hora Unix em segundos, definida de novo a cada tentativa. |
| x-menuthere-signature | Um HMAC-SHA256 em hexadecimal do corpo bruto da requisição, feito com o seu segredo. |
O corpo é um envelope com event, um id único, created_at e data. Um evento de teste também traz "test": true, então ignore-o na sua cozinha. Em order.created, data contém os campos abaixo.
| Campo | Conteúdo |
|---|---|
| order_id, order_number | O ID do pedido e o número mostrado à sua equipe. |
| status, type, placed_at, currency | Status atual, tipo de pedido, hora em que foi feito e moeda. |
| totals | subtotal, delivery_charge, packing_charge, gst, discount, grand_total. |
| customer | name, phone, address. |
| table | number e name da mesa em um pedido de mesa, caso contrário vazio. |
| items | Cada linha: name, quantity, unit_price, total_price, variant, notes. |
| notes, payment | A observação do cliente, e o method do pagamento e se is_paid. |
Verificação e confiabilidade
- Confira a assinatura com o corpo bruto. Interpretar e recodificar o JSON muda os espaços e a ordem, e a assinatura não vai bater.
- Seja idempotente. O mesmo id pode chegar duas vezes. Use-o para evitar uma segunda comanda na cozinha.
- Responda com um 2xx rapidamente. A Menuthere espera 8 segundos por tentativa e tenta até três vezes, depois de 1,5 segundo e depois de 5 segundos. Um timeout, um 5xx, um 408 ou um 429 é repetido. Qualquer outro 4xx é entendido como um não deliberado e interrompe.
- Confira Recent deliveries. O painel lista as tentativas das últimas 24 horas, das mais novas às mais antigas, com o código de resposta e a hora. Cada nova tentativa é uma linha própria.
Perguntas
Posso apontar para um servidor da minha própria rede?
Posso avisar meu PDV de que o pedido foi aceito?
O registro de entregas é guardado para sempre?
Relacionados
Não encontrou? Escreva para [email protected] ou fale com a gente no chat, das 9h às 21h.Central de ajudaPreçosmenuthere.com
