Visão geral
O webhook usa heartbeats para indicar presença. Os servidores enviam heartbeats periódicos, que identificam a presença de um merchant.Ao habilitar o webhook, as requests de presença começam no próximo ciclo de heartbeat (até 30 segundos). Existem dois tipos de heartbeat: por aplicativo e por merchant, para controle detalhado da presença.Requests por aplicativo
Para as integrações que não tem controle fino de presença temos a configuração para realizar uma única request de heartbeat periódica para o aplicativo, fazendo com que todos os merchants da aplicação fiquem online.Nesse caso, requests com resposta 202 Accepted
fazem com que a mensagem de heartbeat seja gerada, e qualquer outra resposta faz com que o heartbeat não seja gerado. O response body será ignorado.Na prática, isso significa que todos os merchants com scope order da integração ficarão abertos na listagem, desde que atendam aos outros critérios.
Exemplo de body da request
{
"code":"KEEPALIVE",
"fullCode":"KEEPALIVE",
"id":"a38ba215-f949-4b2c-982a-0582a9d0c10e"
}
Exemplo de request
Consulte o impacto da formatação na assinatura.curl --location 'http://localhost:8080/webhook' \
--header 'X-IFood-Signature: 6c0a429606266905349388ebc1eb12b8b98524dddd6b4bdc41c4b67591075b4c' \
--header 'Content-Type: application/json' \
--data '{
"code":"KEEPALIVE",
"fullCode":"KEEPALIVE",
"id":"a38ba215-f949-4b2c-982a-0582a9d0c10e"
}'
Enviamos apenas informações relevantes para a integração e mantemos compatibilidade com eventos de pedido.
Requests por merchant
Quando a integração usa controle fino de presença, o sistema envia requests de heartbeat para grupos de merchants. Cada request pode incluir até 1000 merchants.A resposta deve ter status 202 Accepted
e listar os merchants online no corpo da resposta. O sistema gera heartbeats apenas para esses merchants.Exemplo de body da request
{
"code":"KEEPALIVE",
"fullCode":"KEEPALIVE",
"id":"a38ba215-f949-4b2c-982a-0582a9d0c10e",
"merchantIds": ["cad65e8f-6fc6-438a-b159-e64a902a6b9a", "438a5e8f-6fc6-438a-b159-e64a902a6879"]
}
Response: apenas os merchants "online"
{
"merchantIds": ["cad65e8f-6fc6-438a-b159-e64a902a6b9a"]
}
Exemplo de request
Consulte o impacto da formatação na assinatura.curl --location 'http://localhost:8080/webhook' \
--header 'X-IFood-Signature: dc900bca38c8b6f908ea688a24604fa581921d1211da4211e4f5e139732c2ff1' \
--header 'Content-Type: application/json' \
--data '{
"code":"KEEPALIVE",
"fullCode":"KEEPALIVE",
"id":"a38ba215-f949-4b2c-982a-0582a9d0c10e",
"merchantIds": ["cad65e8f-6fc6-438a-b159-e64a902a6b9a", "438a5e8f-6fc6-438a-b159-e64a902a6879"]
}'
Enviamos apenas informações relevantes para a integração e mantemos compatibilidade com eventos de pedido.