Configurar webhooks

Com webhooks, você pode receber notificações HTTPS em tempo real sobre eventos ocorridos no mercado da Paxful. Por exemplo, podemos lhe enviar uma notificação quando for iniciada uma nova negociação ou sempre que um parceiro de negociação lhe enviar uma mensagem em um chat de negociação. Isso evita que você precise consultar a API em busca de alterações em objetos que possam ou não ter ocorrido, e ajuda a evitar que você atinja seu limite de taxa. Este guia mostrará exatamente como você pode configurar webhooks na Paxful.

Temos compatibilidade com webhooks para os seguintes eventos:

  • Nova negociação de recebimento na Paxful
  • Mensagem recebida no chat da negociação
  • Anexo recebido no chat da negociação
  • Alguém viu seu perfil na Paxful
  • Alguém viu sua oferta
  • O parceiro de negociação pagou para receber o bitcoin
  • A negociação foi cancelada ou expirou
  • Bitcoin vendido com sucesso
  • Bitcoin comprado
  • Depósito de bitcoin confirmado
  • O depósito de bitcoin está pendente
  • Avaliação recebida de um parceiro de negociação
  • Nova resposta a avaliação recebida

Configurar webhooks

Obs.: confirme se seu serviço está pronto para receber webhooks. Durante o processo de salvamento de URL, seu serviço deve extrair o cabeçalho de solicitação “X-Paxful-Request-Challenge” e colocá-lo na resposta como apresentado.

Segue como nosso cabeçalho de solicitação deve aparecer em sua carga paga (este é um exemplo de serviço de webhooks em Node.js):

RequestHeader.png

1. Acesse sua conta na Paxful, passe o cursor do mouse sobre seu nome de usuário, localizado no canto superior direito da página, e clique em Configurações no menu de contexto que será exibido.
ClickSettings.png

Será aberta a página de configurações.

2. No menu ao lado esquerdo da página, clique em Desenvolvedor.
Click_Developer.png

Será aberta a página de desenvolvedor.

3. Caso não tenha uma chave de API, digite o código da autenticação de dois fatores no campo abaixo e clique em Adicionar nova chave de API. Se já tiver uma chave de API, você pode pular este passo.
AddAPIKey.png

Sua nova chave de API será exibida na página de desenvolvedor, juntamente com outras seções.

4. Copie o URL de seu aplicativo.
Acesse a seção Webhooks na página de desenvolvedor da Paxful. Cole o endereço no campo URL de solicitação e clique em Salvar.

Atenção: nossos webhooks são compatíveis apenas com endereços HTTPS. Endereços HTTP não funcionarão para esse fim.


ClickSave.png

Será enviado um cabeçalho de solicitação a seu aplicativo.

Obs.: temos um tempo limite de 10 segundos. Se não recebermos uma resposta de seu aplicativo, o URL não será salvo, e o webhook não será criado.

5. Se tudo der certo, será exibida abaixo uma lista de eventos disponíveis para assinatura. Marque uma caixa para selecionar um evento na lista Assinar eventos.
Events.png

Obs.:

  • Quando selecionados, os eventos são salvos automaticamente.
  • Se ocorrerem três tentativas malsucedidas para enviar informações de eventos a seu aplicativo, o webhook (URL) será desativado.
  • Para inserir um novo link, substitua o URL atual pelo novo e clique em Alterar
  • Para desativar completamente seus webhooks, clique em Excluir.
  • Se quiser reativar um URL desativado, clique em Tentar novamente.
    ClickRetry.png
     

Se o URL de solicitação for salvo corretamente, nossos eventos aparecerão assim em seu aplicativo:

WebhookexampleEvent.png

Verificar as solicitações da Paxful

A Paxful cria e lhe envia um comando único para o seu aplicativo. Veja as solicitações da Paxful de forma segura verificando assinaturas com seu segredo de assinatura.

A cada solicitação HTTPS enviada, adicionamos um cabeçalho HTTPS “X-Paxful-Signature. A assinatura é criada combinando o segredo de assinatura com o corpo da solicitação que estamos enviando com um hash chaveado HMAC-SHA256.

Obs.: a assinatura resultante é única para cada solicitação e não contém diretamente nenhuma informação de segredo. Isso mantém seu aplicativo seguro, evitando que atores prejudiciais provoquem danos.

Exemplo em JavaScript


const crypto = require('crypto');
const express = require('express');
const app = express();
const port = 3000;
const bodyParser = require('body-parser');

Seu segredo de API da página https://paxful.com/account/developer:


const apiSecret = 'maE5KV16FV0nDyh7XPm2F8f8FZTdtb5p';

app.use(bodyParser.json());

Quando receber uma solicitação de verificação de endereço, você deve extrair o cabeçalho “X-Paxful-Request-Challenge” da solicitação e colocá-lo na resposta.


app.use((req, res, next) => {

A solicitação de verificação de endereço não contém o payload e a assinatura de solicitação.


  if (!Object.keys(req.body).length && !req.get('X-Paxful-Signature')) {
        console.log('Address verification request received.');
        const challengeHeader = 'X-Paxful-Request-Challenge';
        res.set(challengeHeader, req.get(challengeHeader));
        res.end();
    } else {
        next();
    }
});

Quando receber notificação de evento, você deve verificar o cabeçalho “X-Paxful-Signature”. Se a solicitação contiver a assinatura errada, não a processe.


  app.use((req, res, next) => {
    const providedSignature = req.get('X-Paxful-Signature');
    const calculatedSignature = crypto.createHmac('sha256', apiSecret).update(JSON.stringify(req.body)).digest('hex');
    if (providedSignature !== calculatedSignature) {
        console.log('Request signature verification failed.');
        res.status(403).end();
    } else {
        next();
    }
});

Agora, você pode processar um evento.


  app.post('*', async (req, res) => {
    console.log('New event received:');
    console.log(req.body);
    res.end();
});

app.listen(port, () => console.log(`Example app listening at http://localhost:${port}`));

Entre em contato com nossa equipe de suporte se tiver alguma dúvida. Você também pode saber mais sobre nossos serviços de API em nossa documentação para desenvolvedores.

Artigos nessa seção