Fluxo recomendado
Quando um evento ocorre, a Cardápio Web envia uma requisição POST comContent-Type: application/json para a URL configurada.
Sua aplicação precisa validar o token no header X-Webhook-Token e responder com HTTP 200 em até 5 segundos. Para obter o pedido completo, use o order_id do payload em Consultar detalhes do pedido.
Sugestão: se o processamento do evento for demorado, considere separar o recebimento da lógica de integração:
- Valide o token e verifique o
event_idpara ignorar duplicatas. - Persista o payload em uma fila ou banco de dados.
- Responda com HTTP 200.
- Processe o restante de forma assíncrona (consulta de detalhes, gravação no banco, regras de negócio).
Dois modelos de configuração
- App da CW App Store
- Integração legada (API Key)
Configure Para testar no Sandbox, cadastre o app no ambiente de Sandbox, instale-o no seu estabelecimento de teste e realize pedidos para validar a entrega na
webhook_url no cadastro do app. Quando um estabelecimento instala o app, a Cardápio Web cria ou atualiza automaticamente o webhook da instalação.Autenticação- O
webhook_tokené gerado automaticamente após o cadastro do app e enviado pelo time de suporte junto com oclient_id - Cada notificação inclui o token no header
X-Webhook-Token
- A entrega começa após a instalação ativa do estabelecimento
- A desinstalação interrompe a entrega de webhooks daquela instalação
- Se o webhook for pausado após falhas consecutivas, entre em contato com
integracao@cardapioweb.compara reativá-lo
Webhooks de apps do marketplace não devem ser editados manualmente no Portal. A configuração vem do app.
webhook_url.Retornando HTTP 200
Para que a Cardápio Web considere a notificação processada com sucesso, a resposta deve ter status HTTP200 OK. Qualquer outro status é tratado como falha.
O tempo limite para a resposta é de 5 segundos. Timeouts também são tratados como falha e disparam retentativas.
Se o processamento completo do pedido puder ultrapassar esse limite, considere enfileirar o evento e retornar 200 OK antes de consultar a API ou aplicar regras de negócio. Operações lentas no handler aumentam o risco de timeout e podem levar o webhook à pausa após falhas consecutivas.
Em caso de falha na entrega, a Cardápio Web pode reenviar o mesmo evento até 15 vezes. Se optar por processamento assíncrono, vale usar o event_id como chave de idempotência para ignorar duplicatas.
Retentativas
Em caso de falha (status diferente de200 ou timeout), a Cardápio Web tenta novamente até receber HTTP 200 OK ou atingir o limite de 15 retentativas.
Após esgotar as retentativas, a Cardápio Web descarta a notificação e pausa o webhook. Enquanto pausado, novas notificações também são descartadas (não ficam enfileiradas).
Reativação
- Integração legada: reative manualmente no Portal (Configurações → Integrações → API) após corrigir o endpoint
- CW App Store: entre em contato com
integracao@cardapioweb.comapós corrigir awebhook_urlou o endpoint de recebimento
Como testar
A Cardápio Web envia webhooks para uma URL HTTPS pública. Durante o desenvolvimento, escolha a abordagem que melhor se encaixa no seu ambiente:- Servidor local (ngrok)
- Sem servidor local (Webhook.site)
Use o ngrok para expor um servidor rodando na sua máquina e receber notificações reais no seu código.
- Suba um servidor HTTP local que trate requisições POST (por exemplo, na porta
3000). - Exponha a porta com o ngrok:
- Copie a URL HTTPS gerada (ex.:
https://abc123.ngrok-free.app) e cadastre-a comowebhook_urlno cadastro do app ou no Portal (integração legada). - Realize um pedido de teste no Sandbox e verifique se a notificação chegou ao seu servidor.


