Envios, falhas e reenvio de webhooks
A aba Envios realizados mostra quantas tentativas cada webhook fez ao longo do tempo, não há histórico de cada envio nem botão de reenviar, e por isso o seu sistema precisa responder rápido e tratar repetições.
Onde acompanhar
Plataforma > Configuração > Webhooks ou Loja > Configurações > Webhooks, aba Envios realizados.
A aba mostra um gráfico de Tentativas do Webhook por data, com uma linha para cada webhook.
| Controle | O que faz |
|---|---|
| Filtro de período | Hoje, 7 dias, 14 dias, 30 dias, todo o período ou um intervalo de datas. A aba abre em 7 dias |
| Selecionar webhook | Mostra só o webhook escolhido |
| Realizar teste | Dispara um envio de teste para o webhook selecionado |
O gráfico conta as tentativas. Ele não separa as que deram certo das que falharam.
Como os envios acontecem
| Evento | Quando sai |
|---|---|
| Cadastro de novos usuários e Assinatura em atraso | No momento do evento |
| Pedidos, Matrículas, Iniciate Checkout e Carrinho abandonado | Por um processo periódico, que verifica o que há de novo a cada poucos segundos |
Por isso, um pedido aprovado pode levar alguns instantes para chegar ao seu sistema.
O que acontece quando o destino falha
- Cadastro e assinatura em atraso: é feita uma tentativa. Se o destino não responder ou responder com erro, o evento não é reenviado.
- Pedidos e matrículas: o processo periódico envia tudo o que mudou desde o último envio bem-sucedido daquele webhook. Enquanto o destino falhar, os mesmos itens voltam a ser enviados na verificação seguinte. Quando um envio dá certo, o ponto de partida avança.
Na prática, o seu sistema pode receber o mesmo pedido ou a mesma matrícula mais de uma vez. Isso é esperado.
O que o seu sistema precisa fazer
- Responder com sucesso (código 200) assim que receber. Guarde os dados e processe depois, em vez de fazer todo o trabalho antes de responder.
- Tratar repetições. Use
order_idnos pedidos,ticket_idnas matrículas e oiddo item nos carrinhos para atualizar o registro existente, sem criar outro. - Guardar o que recebeu. Como o admin não mostra o conteúdo de cada envio, o registro do seu lado é a única forma de investigar depois.
- Ficar no ar. Um destino fora do ar perde os eventos de cadastro e de assinatura em atraso daquele intervalo.
O que não existe
- Lista de envios na tela, com data, conteúdo e resposta de cada um.
- Botão para reenviar um evento.
- Aviso por e-mail quando um webhook falha.
- Número de tentativas ou intervalo de reenvio configurável.
Recuperar eventos perdidos
Se o destino ficou fora do ar e você precisa repor os dados:
- Cadastros: exporte os usuários em Plataforma > Usuários, botão Exportar XLS.
- Pedidos: baixe o Relatório Financeiro do período, em Loja > Dashboard, botão Relatórios.
- Matrículas: baixe o Relatório de Matrícula do período, no mesmo botão.
Depois, importe a planilha na sua ferramenta.
Investigar um problema
- Na aba Envios realizados, selecione o webhook e veja se há tentativas no período. Sem tentativas, o evento não está sendo gerado ou o webhook está desligado.
- Em Minhas conexões, confira se a chave Status está ligada, se o endereço está certo e se o evento está marcado.
- Confira o filtro de loja e de produto do webhook. Um webhook de um produto não recebe eventos de outro.
- No seu sistema, veja o registro das requisições recebidas e a resposta que ele deu.
- Se as tentativas aparecem no gráfico e nada chega ao destino, fale com o suporte e informe o nome do webhook, o evento e o horário.
Erros comuns
"O gráfico mostra tentativas, mas meu sistema não registrou nada"
O destino pode ter recusado a requisição: autenticação errada, endereço incompleto ou formato não aceito. Teste com um endereço de inspeção para ver o que chega.
"Recebo o mesmo pedido várias vezes"
O destino não está respondendo com sucesso, e o item volta a ser enviado. Corrija a resposta do seu sistema e trate a repetição pelo order_id.
"Não recebi o cadastro de um aluno"
O evento de cadastro tem uma tentativa só. Se o destino falhou naquele momento, reponha pela exportação de usuários.