Les Webhooks vous permettent de recevoir des notifications HTTPS d'événements en temps réel sur la place de marché Paxful. Par exemple, nous pouvons vous envoyer une notification lors du démarrage d'une nouvelle transaction ou lorsque votre partenaire de transaction envoie un message dans le chat de transaction. Cela vous évite de faire des requêtes d'API pour vérifier des modifications d'objets éventuelles, ce qui vous évite d'atteindre votre taux limite. Ce guide décrit précisément comment configurer les webhooks avec Paxful.
Nous prenons en charge les webhooks pour les événements suivants :
- Nouvelle transaction entrante sur Paxful
- Message reçu dans le chat de transaction
- Pièce jointe reçue dans le chat de transaction
- Quelqu'un a consulté votre profil Paxful
- Quelqu'un a consulté votre offre
- Le partenaire de transaction a payé pour ses cryptos
- La transaction a été annulée ou a expiré
- Les cryptos ont bien été vendues
- Cryptos achetées
- Dépôt de crypto confirmé
- Le dépôt de crypto entrant est en attente
- Commentaire reçu d'un partenaire de transaction
- Nouvelle réponse de commentaire reçue
Paramétrer Webhooks
Note : Vérifiez que votre service est prêt à recevoir des webhooks. Lors de l'enregistrement de l'URL, votre service doit récupérer l'en-tête de requête « X-Paxful-Request-Challenge » et le placer tel quel dans la réponse.
Votre en-tête de requête doit s'afficher comme suit dans votre charge utile (il s'agit d'un exemple de service webhooks en Node.js) :

1. Connectez-vous à votre compte Paxful, survolez avec le curseur votre nom d'utilisateur en haut à droite de la page et cliquez sur Paramètres dans le menu contextuel qui s'affiche.

La page Paramètres s'affiche.
2. Dans le menu du côté gauche de la page, cliquez sur Développeur.

La page Développeur s'affiche.
3. Au cas où vous n'ayez pas de clé API, insérez le code 2FA dans le champ suivant et cliquez sur Ajouter une nouvelle clé API. Si vous avez déjà une clé API, vous pouvez ignorer cette étape.

Votre nouvelle clé API s'affiche dans la page Développeur, ainsi que des sections supplémentaires.
4. Copiez l'URL dans votre application.
Allez à la section Webhooks de la page Développeur de Paxful. Collez le lien dans le champ Demander l'URL et cliquez sur Enregistrer.
Avertissement : Nos webhooks sont uniquement pris en charge par les types d'adresse HTTPS. Les adresses HTTP ne fonctionneront pas à cette fin.

Un en-tête de requête est envoyé à votre application.
Note : Nous avons un délai d'expiration de 10 secondes. Au cas où nous ne recevons pas de réponse de votre application, l'URL ne sera pas enregistrée et le webhook ne sera pas créé.
5. En cas de réussite, une liste des événements disponibles pour l'abonnement s'affiche en dessous. Cochez une case pour sélectionner un événement dans la liste Inscrivez-vous pour recevoir les événements.

Note :
- Une fois sélectionnés, les événements sont automatiquement enregistrés.
-
Après trois échecs à l'envoi des informations d'événement vers votre application, le Webhook (URL) sera désactivé. Le délai d'expiration d'appel d'un Webhook est de 3 secondes.
-
Pour insérer un nouveau lien, remplacez l'URL actuelle par une nouvelle URL et cliquez sur Modifier.
-
Pour désactiver complètement vos webhooks, cliquez sur Supprimer.
- Pour réactiver une URL désactivée, cliquez sur Essayer à nouveau.
Au cas où une URL est enregistrée avec succès, nos événements s'afficheront comme ceci dans votre application :

Vérification des requêtes en provenance de Paxful
Paxful crée une chaîne unique pour votre application et la partage avec vous. Vérifiez en toute confiance les requêtes en provenance de Paxful en vérifiant les signatures avec votre secret de signature.
Nous ajoutons un en-tête HTTPS « X-Paxful-Signature » à chaque requête HTTPS envoyée. La signature est créée en combinant le secret de signature et le corps de la requête que nous envoyons à l'aide d'un hachage chiffré HMAC-SHA256 standard.
Note : La signature qui en résulte est unique à chaque requête et ne contient directement aucune information secrète. Cela permet de sécuriser votre application en empêchant des personnes mal intentionnées de causer des méfaits.
Exemple en JavaScript
const crypto = require('crypto');
const express = require('express');
const app = express();
const port = 3000;
const bodyParser = require('body-parser');
Votre secret d'API sur la page https://paxful.com/account/developer :
const apiSecret = 'maE5KV16FV0nDyh7XPm2F8f8FZTdtb5p';
app.use(bodyParser.json());
Lorsque vous recevez une demande de vérification d'adresse de service, vous devez prendre l'en-tête « X-Paxful-Request-Challenge » de la demande, puis le placer dans la réponse.
app.use((req, res, next) => {
La demande de vérification d'adresse ne contient pas la charge utile et la signature de la demande.
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();
}
});
Lorsque vous recevez une notification d'événement, vous devez vérifier l'en-tête « X-Paxful-Signature ». Si la demande contient la mauvaise signature, ne la traitez pas.
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();
}
});
Vous pouvez maintenant traiter un événement.
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}`));
Contactez notre Assistance pour toute autre question. Vous pouvez également en savoir plus sur nos services API en consultant la documentation du développeur.