Assinatura HMAC
Cada webhook é assinado com HMAC-SHA256 usando osignatureSecret que você recebeu ao cadastrar o webhook. A assinatura acompanha o evento no formato:
`${timestamp}.${corpo_raw}`. Para validar, recalcule a assinatura com o seu segredo e compare — usando uma comparação time-safe.
Proteção contra replay
Compare otimestamp da assinatura com o horário atual e rejeite entregas muito antigas (ex.: mais de 5 minutos). Isso evita que um evento legítimo capturado seja reenviado mais tarde por um atacante.
Idempotência
A mesma entrega pode chegar mais de uma vez (retentativa ou reenvio). Registre oid do evento e descarte duplicatas antes de processar.
Retentativas
Se seu endpoint não responder2xx, a Ephra reenvia o evento automaticamente:
- Até 3 retentativas por entrega.
- Backoff crescente: aproximadamente 8 min, 15 min e 30 min.
- São retentadas apenas entregas das últimas 48 horas; depois disso, a entrega é marcada como
failed. - Timeout de 60 segundos por tentativa.
200 imediatamente e processe em segundo plano (enfileire).
Checklist de segurança
- Use HTTPS — nunca HTTP em produção.
- Valide a assinatura HMAC do header com comparação time-safe.
- Rejeite entregas com
timestampmuito antigo (replay). - Responda
2xxsomente após concluir (ou enfileirar) o processamento. - Implemente idempotência usando o
iddo evento. - Não valide o payload inteiro com schemas rígidos — campos novos não devem quebrar seu endpoint.
Para valores altos, confirme o estado real com
GET /v1/transactions/{id} antes de liberar o pedido.