Skip to main content
Webhooks permitem que sua aplicação seja notificada automaticamente quando ocorrerem mudanças em payments e cashouts.

Como funciona

Ao criar um payment ou um cashout com callbackUrl, 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 é o paymentId.
  • Para eventos cashout.*, o segredo é o payoutId.
Sempre valide a assinatura antes de processar o webhook.

Retries

Se sua aplicação não responder com 2xx, a Safefy tenta novamente:
  1. Tentativa 1 (imediata)
  2. Tentativa 2 após ~2 segundos
  3. Tentativa 3 após ~4 segundos
Recomendação: confirme rápido (200 OK) e processe em background.

Idempotência

Como podem existir retries, trate o processamento como idempotente.
  • Chave recomendada: id (delivery id) ou data.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.