Comportamento dos provedores de webhook

O que cada remetente faz quando seu endpoint está lento ou fora do ar, e como ele assina o que envia. Cada afirmação aqui tem uma fonte, e os campos para os quais não encontramos fonte ficam vazios, em vez de preenchidos com um número plausível.

Colunas de assinatura

Verificadas com um verificador funcional para cada provedor, comprovado por uma suíte de testes. Uma especificação mal lida faz um teste falhar em vez de ir para produção.

última verificação em 2026-08-20

Colunas de entrega

Lidas na documentação do próprio provedor, não em resumos de terceiros. Link para a fonte em cada linha.

última verificação em 2026-08-06

Comportamento de entrega

Leia primeiro a coluna de prazo de resposta. O remetente com o prazo mais curto entre os que enviam para você é sua restrição real, não o mais conhecido.

ProvedorPrazo de respostaNovas tentativasDesiste / desativa
Slackfonte3 s3 novas tentativas: imediatamente, após 1 min, após 5 minInscrições de eventos desativadas se mais de 95% das tentativas falharem num intervalo de 60 min
LINEfonte2 s

Conta como request_timeout quando o servidor do bot não responde em até 2 segundos

Reenvio de webhooks, desativado por padrão (ative nas configurações da Messaging API do canal); quantidade e intervalo não divulgadosPode suspender o envio de webhooks se o servidor do bot continuar falhando em recebê-los; limite não publicado
Xerofonte5 s

200 em até 5 segundos, sem corpo e sem cookies; 401 quando a assinatura é inválida

não verificadonão verificado
Discordfonte3 s

Endpoints de interação precisam enviar uma resposta inicial em até 3 segundos

não verificadonão verificado
Shopifyfonte5 s

1 segundo para conectar, 5 segundos para a requisição inteira

8 novas tentativas ao longo de 4 horasInscrições criadas pela Admin API são excluídas após 8 falhas consecutivas, com um e-mail de aviso para o contato de emergência do desenvolvedor do app
Paddlefonte5 sProdução: até 60 tentativas ao longo de cerca de 2 dias, cerca de 10 na primeira hora e cerca de 45 no primeiro dia. Sandbox: 3 tentativas em cerca de 2 minnão verificado
HubSpotfonte5 s

Vale para o lote inteiro, que pode trazer até 100 notificações

Até 10 tentativas distribuídas ao longo de 24 horasnão verificado
GitHubfonte10 sNenhuma. O GitHub não reenvia automaticamente as entregas com falhaSem desativação. As entregas podem ser reenviadas manualmente por 3 dias; depois disso, o registro desaparece
Meta (Instagram, Facebook, Threads)fontenão publicadoTenta de novo com frequência decrescente ao longo de 36 horas e depois descarta o evento. A WhatsApp Cloud API tenta de novo por até 7 diasnão verificado
Twiliofonte15 s

Configurável. rt (timeout de leitura) padrão 15000 ms (máx. 15000), ct (conexão) padrão 5000 ms (máx. 10000), tt (total) padrão 15000 ms

Configurável: rc de 0 a 5, padrão 1. rp define quais falhas geram nova tentativanão verificado
Stripefontenão publicado

A Stripe não publica um número. A documentação dela diz apenas para responder 2xx antes de qualquer lógica lenta. A comunidade trabalha com 20 s

Backoff exponencial por até 3 dias no modo de produção. Sandbox: 3 tentativas ao longo de algumas horasEndpoint desativado após falhas contínuas, com aviso prévio por e-mail. Os eventos ficam na Events API por 30 dias
Svix (Clerk, Resend)fontenão publicado8 tentativas: imediatamente, 5 s, 5 min, 30 min, 2 h, 5 h, 10 h, 10 h. Depois, um webhook operacional message.attempt.exhaustedEndpoint desativado quando todas as tentativas falham por 5 dias
WooCommercefontenão publicado

A entrega entra na fila do Action Scheduler e é disparada pelo WP-Cron, então sai quando a próxima página é carregada, não quando o evento acontece

não verificadoWebhook desativado após mais de cinco falhas de entrega consecutivas

Duas linhas merecem uma segunda leitura. O GitHub não faz nenhuma nova tentativa, então uma entrega com falha se perde, a menos que alguém a reenvie em até três dias. A Paddle coloca cerca de 10 das suas 60 tentativas na primeira hora e cerca de 45 no primeiro dia, o que pune um handler apenas lento muito mais do que a curva da Stripe.

Esquemas de assinatura

A coluna de payload assinado é a que mais faz as pessoas perderem horas. Qualquer valor diferente de raw body significa que você não pode calcular o hash só do corpo da requisição.

ProvedorAlgoritmoPayload assinadoCodificaçãoCabeçalhoTolerância
SlackHMAC-SHA256v0:{timestamp}:{body}hexx-slack-signature = v0=hex5 min
LINEHMAC-SHA256raw bodybase64x-line-signature = base64nenhuma
XeroHMAC-SHA256raw bodybase64x-xero-signature = base64nenhuma
DiscordEd25519{timestamp}{body}hexx-signature-ed25519 + x-signature-timestampnenhuma
ShopifyHMAC-SHA256raw bodybase64x-shopify-hmac-sha256nenhuma
PaddleHMAC-SHA256{timestamp}:{body}hexpaddle-signature = ts=X;h1=hex5 s
HubSpotHMAC-SHA256POST{decodedUrl}{body}{timestamp}base64x-hubspot-signature-v35 min
GitHubHMAC-SHA256raw bodyhexx-hub-signature-256 = sha256=hexnenhuma
Meta (Instagram, Facebook, Threads)HMAC-SHA256raw bodyhexx-hub-signature-256 = sha256=hexnenhuma
TwilioHMAC-SHA1full URL + form params sorted by keybase64x-twilio-signaturenenhuma
StripeHMAC-SHA256{timestamp}.{body}hexstripe-signature = t=X,v1=hex5 min
Svix (Clerk, Resend)HMAC-SHA256{id}.{timestamp}.{body}base64svix-signature = v1,base645 min
WooCommerceHMAC-SHA256raw bodybase64x-wc-webhook-signaturenenhuma
Lemon SqueezyHMAC-SHA256raw bodyhexx-signature + x-event-namenenhuma
PayPalRSA-SHA256{txId}|{txTime}|{webhookId}|{crc32(body)}base64paypal-transmission-sig + 4 morenenhuma
SendGridECDSA P-256{timestamp}{body}base64x-twilio-email-event-webhook-signaturenenhuma
LinearHMAC-SHA256raw bodyhexlinear-signaturenenhuma
SentryHMAC-SHA256raw body, no timestamphexsentry-hook-signaturenenhuma
IntercomHMAC-SHA1raw bodyhexx-hub-signature = sha1=hexnenhuma
VercelHMAC-SHA1raw bodyhexx-vercel-signaturenenhuma

Use estes dados

A mesma tabela está disponível em JSON em /providers.json, sob a licença CC BY 4.0. Copie, incorpore, corrija. Se algum número aqui estiver errado ou um provedor tiver mudado algo, abra uma issue no repositório e corrigimos aqui.

Atribuição: AnyHook, Referência do comportamento de provedores de webhook, https://anyhook.net/pt/providers

Onde cada número apareceu