Skip to content

Webhooks -- Visao Geral

Webhooks permitem que sua aplicacao receba notificacoes em tempo real sobre eventos na plataforma Owem Pay. Quando um evento ocorre, a Owem Pay envia um HTTP POST para a URL cadastrada.

Como Funciona

  1. Cadastre uma URL de webhook na sua conta
  2. Quando um evento ocorrer (ex: PIX recebido), a Owem Pay envia um HTTP POST para sua URL
  3. Sua aplicacao processa a notificacao e responde com status 2xx (200, 201 ou 204)

Eventos Disponiveis

EventoDescricao
pix.receivedPIX recebido na conta (cash-in confirmado)
pix.completedTransferencia PIX enviada com sucesso (cash-out)
pix.failedTransferencia PIX falhou
pix.refundDevolucao PIX processada
pix.medNotificacao MED recebida do BACEN

Seguranca

Cada notificacao inclui headers de seguranca para validacao:

HeaderDescricao
X-Owem-SignatureAssinatura HMAC-SHA256 do payload
X-Owem-TimestampTimestamp do envio (ISO 8601)
X-Owem-Event-IdID unico do evento (para deduplicacao)
X-Owem-Event-TypeTipo do evento (ex: pix.received)

Validando a Assinatura

Valide a assinatura para garantir que a notificacao foi enviada pela Owem Pay:

javascript
const crypto = require('crypto');

function validateWebhook(payload, timestamp, signature, secret) {
  const message = `${timestamp}.${payload}`;
  const expected = 'sha256=' + crypto
    .createHmac('sha256', secret)
    .update(message)
    .digest('hex');

  return crypto.timingSafeEqual(
    Buffer.from(expected),
    Buffer.from(signature)
  );
}

Valide sempre

Nunca processe um webhook sem validar a assinatura. Isso protege contra requisicoes falsificadas.

Retry Policy

Se sua URL retornar um status diferente de 2xx, a Owem Pay realiza retentativas automaticas:

TentativaIntervalo
1aImediato
2a1 minuto
3a5 minutos
4a30 minutos
5a2 horas

Apos 5 tentativas sem sucesso, o evento e marcado como failed e nao sera reenviado automaticamente.

Idempotencia

Sua aplicacao deve ser idempotente: se receber o mesmo evento mais de uma vez (identificado pelo X-Owem-Event-Id), deve processá-lo sem duplicar efeitos.

Requisitos do Endpoint

  • A URL deve usar HTTPS
  • Deve responder com status 2xx em ate 5 segundos
  • O body da resposta e ignorado

Proximos Passos

Owem Pay Instituição de Pagamento — ISPB 37839059