Skip to main content
A Onbeef envia uma notificação quando um pedido é criado ou muda de status. Use o webhook para receber esses eventos sem depender apenas do polling.

Ative o webhook

Registre ordersWebhookURL com PUT /v1/merchantOnboarding. O envio das notificações começa quando existe uma URL registrada. Sem ordersWebhookURL, a Onbeef não envia webhooks. Nesse caso, acompanhe os pedidos por polling com GET /v1/events:polling.
O webhook complementa o polling. Continue usando GET /v1/events:polling como rede de segurança para verificar o estado atual dos pedidos quando uma notificação não chegar.

Configure a URL

ordersWebhookURL deve conter a URL base do seu servidor. Não inclua /v1/orderUpdate nem uma barra no final. Por exemplo, registre:
A Onbeef enviará as notificações para:
Não registre a URL final do webhook. Se você informar https://your-pos-system.example.com/onbeef/v1/orderUpdate, a Onbeef acrescentará o caminho novamente.

Eventos enviados

A Onbeef envia uma notificação nestas situações:
  • Um pedido é criado.
  • O status de um pedido muda.
Cada notificação contém um único evento.
A mesma notificação pode ser entregue mais de uma vez, inclusive sem mudança de estado (por exemplo, em cancelamentos, que geram duas notificações). Processe de forma idempotente usando o par orderId e eventId.

Payload

A Onbeef envia o corpo como application/json:
A identidade de um evento é o par orderId e eventId. Armazene e deduplique sempre por esse par.

Headers

Cada notificação inclui estes headers:

Valide a assinatura

Você deve validar X-App-Signature antes de processar a notificação. Calcule o HMAC-SHA256 sobre o corpo bruto recebido. Use o client_secret da sua integração como chave. O resultado é uma string hexadecimal de 64 caracteres.
Compare o resultado com o valor de X-App-Signature. Use uma comparação em tempo constante quando sua linguagem oferecer esse recurso.
Calcule a assinatura antes de desserializar ou modificar o JSON. Alterações em espaços, quebras de linha ou ordem dos campos produzem outra assinatura.

Responda rapidamente

Responda com um status 2xx assim que validar e armazenar a notificação. Processe o evento de forma assíncrona sempre que possível. A Onbeef não reenvia a notificação quando seu servidor está indisponível ou responde com erro.
Use GET /v1/events:polling como rede de segurança para verificar o estado atual dos pedidos. O polling retorna o evento mais recente de cada pedido, não um histórico. Se uma notificação não chegar e o pedido avançar, o polling retornará o estado mais novo. O estado intermediário não será recuperado.