< Todos

Foody Delivery Webhooks

O que é um webhook?

Um webhook é como um “aviso automático” que um sistema envia para outro quando algo acontece. No caso da Foody Delivery, ele serve para avisar seu sistema sobre mudanças nos pedidos.

Exemplos práticos:

  • Quando o pedido foi entregue ao cliente;
  • Quando o pedido foi despachado para o entregador.

Boas práticas no uso dos hooks

As chamadas dos webhook da Foody Delivery tem um timeout de 10 segundos, então evite grandes processamentos diretamente na URL que é chamada pelo hook.

A URL invocada pelo webhook deve sempre retornar http-status 200, qualquer status diferente de 200 será considerado um erro na chamada do hook.

IMPORTANTE: o webhook não tem lógica ou inteligência para tratar erros como 400, 401, 404 retornados pelo seu endpoint. A missão do hook é entregar o evento para o seu endpoint, então se seu endpoint foi chamado com sucesso e você recebeu o evento, você deve retornar http status como 200 pois você recebeu o evento.

Quando o hook encontra um erro (http-status diferente de 200), ele tenta mais uma vez depois de 60-120 segundos.

Se você precisa de uma ferramenta de apoio para desenvolver sua API (URL invocada pelos hooks) localmente e ainda receber as chamadas normalmente, nós recomendamos que você use a ferramenta Local Tunnel e poderá utilizar WebhookSite para testar os hooks.

Como configurar e ativar os webhooks

Acesse Minha Conta ➞ Configurações Avançadas ➞ Criar Gatilho, então entre com os seguintes dados:

  • A URL a ser invocada pelo hook.
  • Clique em Ativado para ativar ou desativar o hook.
  • O token de autorização é gerado automaticamente, mas você pode alterá-lo se quiser.

Na hora de criar ou atualizar um gatilho, o sistema valida a url do gatilho enviando um payload de teste com o evento ‘hook_test’. Desta forma, a URL deve estar disponível e preparada para receber este payload de teste e retornar http-status 200.Caso a url não retorne http-status 200 no momento desta validação, não será possível proceder com a configuração deste gatilho.

Se seu endpoint retornar consecutivamente mais de 10 erros, o webhook será automaticamente desativado.

O payload enviado pelo hook contém o token de autorização configurado previamente para que você autentique a chamada do hook. O token de autorização pode ser utilizado para identificar o hook quando este chegar em seu endpoint, por exemplo, o UUID deste cliente em seu sistema.

Exemplo de payload (estrutura de dados)

{
  "uid": "4228df3a-a54a-40d7-b30f-1385eca4c3dd",
  "updateDate": "2020-06-19T17:42:12Z",
  "event": "order_status_updated",
  "token": "2b100082b90d4ad9b4fezzed960cf652",
  "status": "dispatched"
}
Sumário