Como funciona
Ao criar um payment ou um cashout comcallbackUrl, a Safefy envia uma requisição HTTP POST para essa URL sempre que o status muda para um estado relevante.
Para payloads completos por domínio, veja:
Eventos de payment
Eventos de cashout
Headers enviados
Assinatura
- Para eventos
payment.*, o segredo é opaymentId. - Para eventos
cashout.*, o segredo é opayoutId.
Retries
Se sua aplicação não responder com2xx, a Safefy tenta novamente:
- Tentativa 1 (imediata)
- Tentativa 2 após ~2 segundos
- Tentativa 3 após ~4 segundos
200 OK) e processe em background.
Idempotência
Como podem existir retries, trate o processamento como idempotente.- Chave recomendada:
id(delivery id) oudata.id + type - Ignore eventos já processados para evitar duplicidade
Exemplo rápido
Fluxo de status de payment
Entenda o ciclo de vida de uma transação e quando cada webhook é disparado:Boas praticas
Responda rápido
Retorne 200 OK imediatamente e processe o webhook de forma assíncrona.
Seja idempotente
Use o id do webhook para evitar processar o mesmo evento duas vezes.
Valide a assinatura
Sempre verifique X-Safefy-Signature antes de confiar no payload.
Use HTTPS
Configure sua callbackUrl apenas com HTTPS em produção.