Webhooks que se consertam
Fica entre quem manda o webhook e o seu sistema. Guarda cada evento, reentrega quando o destino cai e, quando o fornecedor renomeia um campo, entrega o JSON no formato que o seu sistema espera.
Grátis até 10 mil eventos por mês, sem cartão.
-
14:02:31
order.paidRecusado HTTP 422: customer_name is required -
14:02:07
order.paidRecusado HTTP 422: customer_name is required -
13:58:44
order.paidEntregue HTTP 200
O campo customer_name agora chega como client.fullName.
- Nome
- 100%
- Formato do valor
- 100%
- Posição
- 30%
payload.customer_name ??= payload?.client?.fullName;
customer_name.
O formato muda sem aviso
Nenhum fornecedor avisa quando muda o webhook.
Um dia o customer_name vira client.fullName, o seu sistema responde 422 e os pedidos param
de entrar. Você descobre pelo cliente, horas depois.
Fila com reentrega resolve o destino fora do ar. Não resolve o formato que mudou: mandar o mesmo JSON mil vezes dá o mesmo erro mil vezes.
O Self-Healing aprende o formato de cada tipo de evento, percebe o campo que sumiu e o que apareceu no lugar, e preenche o antigo na entrega. O evento original fica guardado como chegou.
{
"type": "order.paid",
"id": 48213,
"customer_name": "Ana Souza",
"email": "ana@exemplo.com",
"total": 129.90
}
{
"type": "order.paid",
"id": 48214,
"client": { "fullName": "Bruno Lima" },
"email": "bruno@exemplo.com",
"total": 89.50
}
422 Resposta do seu sistema: customer_name is required
Como funciona
POST /in/lojaPrimeiro, o evento chega e fica guardado.
customer_nametextoemaile-mailtotaldecimal
Depois, o formato é aprendido.
customer_nameclient.fullNameEntão a troca de nome aparece.
customer_namePor fim, a entrega sai corrigida.
Teste com
- apareceu
client - sumiu
customer_name
O campo customer_name agora chega como client.fullName.
- Nome
- 100%
- Formato do valor
- 100%
- Posição
- 30%
payload.customer_name ??= payload?.client?.fullName;O seu sistema recebe
{
"type": "order.paid",
"id": 48214,
"client": {
"fullName": "Bruno Lima"
},
"email": "bruno@exemplo.com",
"total": 89.5,
"customer_name": "Bruno Lima"
}O que vem incluído
Corrige sozinho quando tem certeza
Correções com nota de 75% ou mais, e folga sobre a segunda opção, entram ativas sem esperar você. As outras ficam sugeridas no painel.
Tenta de novo quando seu sistema cai
Até 12 tentativas, com espera crescente de 5 segundos a 6 horas. O Retry-After do seu servidor é respeitado.
Guarda o corpo exatamente como chegou
Byte a byte: a assinatura do fornecedor continua valendo e 98765432109876543210 não vira 98765432109876540000.
Avisa no Slack, e-mail ou webhook
Um aviso por mudança, com a linha de código e o JSON Patch prontos para colar no seu sistema.
Assina cada entrega que sai
Cabeçalho x-selfheal-signature com HMAC e o segredo do endpoint, para o seu sistema conferir que veio do proxy.
Preços por mês
R$ 249por mês
250.000 eventos por mês, até 10 endpoints, correção automática e eventos guardados por 14 dias.
Começar no StarterPagamento por Pix, boleto ou cartão. Ao passar do limite do mês há 10% de folga; depois disso a entrada responde 429 até o mês virar ou você mudar de plano. Cancele quando quiser: o plano vale até o fim do mês pago.
Perguntas
E se a correção sugerida estiver errada?
Uma sugestão não muda nada até você ativar. Só as de confiança alta entram sozinhas, e só se você ligar a correção automática no endpoint. Dá para desligar uma correção a qualquer momento e reenviar os eventos afetados.
O evento original é alterado?
Não. O proxy guarda o corpo exatamente como chegou e aplica a correção só na cópia que vai para o seu sistema. No painel você vê os dois.
Funciona com qualquer serviço que manda webhook?
Com qualquer um que mande POST, PUT ou PATCH por HTTP. Você troca a URL de webhook no serviço de origem pelo endereço que o proxy te dá. Como o corpo é guardado byte a byte, a assinatura do fornecedor continua conferindo no seu sistema.
A origem espera a entrega no meu sistema?
Não. O proxy responde 202 assim que guarda o evento, então a origem nunca vê o seu sistema fora do ar. A entrega sai em seguida e, se falhar, volta para a fila.
Meu sistema fica numa rede interna. Dá?
Não. Por segurança, o proxy só entrega em endereços públicos na internet; IPs internos e localhost são recusados.
Por quanto tempo os eventos ficam guardados?
3 dias no grátis, 14 no Starter, 30 no Growth e 90 no Business. Eventos ainda na fila não são apagados.
Tem API?
Tem. Tudo o que o painel faz (endpoints, eventos, correções, avisos, chaves) tem rota em /api, com a chave de
API da conta.
Troque uma URL hoje
Crie a conta, crie um endpoint e troque a URL de webhook no serviço de origem pelo endereço do proxy. O grátis não pede cartão.