Eventos de Webhook
Webhooks permitem que seu sistema receba atualizações em tempo real da Bullring Finance sempre que eventos específicos ocorrerem. Você pode registrar uma URL de webhook para escutar notificações de eventos e acionar seus próprios fluxos de trabalho. A Bullring Finance pode notificar seu servidor em tempo real sobre alterações no status de subcontas, confirmações de pagamento e progresso de saques. Para começar a receber webhooks, registre seu endpoint pelo Painel ou via API de Webhook.Como Funciona
Quando um evento ocorre, a Bullring Finance envia uma requisição HTTPPOST
para a URL registrada com um payload JSON descrevendo o evento. Seu endpoint deve retornar um código de status 2xx
para confirmar o recebimento.
Todas as requisições de webhook são assinadas com um segredo compartilhado. Você deve verificar a assinatura da requisição antes de processar.
Verificando a assinatura
Todas as requisições de webhook do Bullring incluirão um cabeçalho com a chaveX-BULLRING-SIGNATURE
, que contém o timestamp e um hash assinado no formato:
-
Obtenha o valor do cabeçalho
X-BULLRING-SIGNATURE
. -
Divida a string por
,
. -
Em seguida, divida cada parte por
=
. - Extraia o valor no índice 1 de cada parte.
- O timestamp extraído
- O payload da requisição (corpo)
- O segredo (disponível no seu painel do Bullring após criar um webhook)
==
.
Como o Bullring utiliza o algoritmo de hash SHA256 com codificação base64, veja abaixo como verificar a assinatura usando Node.js:
Verification Example
,
entre o timestamp e o payload ${timestamp},${payload}
ao criar o hash.
Eventos de Subconta
subaccount.status.created
subaccount.status.approved
subaccount.status.declined
subaccount.status.review
Eventos de Pagamento
payment.status.paid
payment.status.unpaid
Eventos de Saque
withdrawal.status.not_initiated
withdrawal.status.in_progress
withdrawal.status.completed
withdrawal.status.failed
Formato do Payload do Webhook
Cada webhook será enviado como uma requisição POST para seu endpoint registrado com a seguinte estrutura:Exemplos de Payloads
Evento de Subconta: subaccount.status.created
Evento de Subconta: subaccount.status.approved
Evento de Pagamento: payment.status.paid
Evento de Pagamento: payment.status.unpaid
Evento de Saque: withdrawal.status.completed
2xx
para confirmar o recebimento.