• Was ist API?

    API ist eine für Entwickler oder Unternehmen bereitgestellte Programmierschnittstelle, mit deren Hilfe eigene Anwendungen mit Paxful verbunden werden können.


    Mit Programmierschnittstellen wird eine noch bessere Anbindung an Paxul ermöglicht. Für weitere Informationen klicken Sie hier.

  • Einrichtung von Webhooks

    Mithilfe von Webhooks können Sie in Echtzeit HTTPS-Benachrichtigungen von Ereignissen im Zusammenhang mit dem Paxful-Marktplatz empfangen. So können wir Sie beispielsweise benachrichtigen, wenn ein neuer Handel eröffnet wird oder wenn Ihnen Ihr Handelspartner eine Nachricht im Handels-Chat sendet. Auf diese Weise müssen Sie nicht fortlaufend API-Abrufe zu einer möglichen Statusänderung von Objekten vornehmen, wodurch Sie vermeiden, dass Ihr Kontingent für die Anzahl der API-Abrufe überschritten wird. In dieser Anleitung zeigen wir Ihnen detailliert, wie Sie Webhooks mit Paxful einrichten können.

    Wir unterstützen Webhooks für folgende Ereignisse:

    • Neu eingehender Handel auf Paxful
    • Eingehende Nachricht im Handels-Chat
    • Eingehender Anhang (Upload) im Handels-Chat
    • Jemand hat sich Ihr Paxful-Profil angesehen
    • Jemand hat sich Ihr Angebot angesehen
    • Handelspartner hat seine Bitcoins bezahlt
    • Handel abgebrochen oder abgelaufen
    • Bitcoin-Verkauf erfolgreich
    • Bitcoins gekauft
    • Bitcoin-Einzahlung bestätigt
    • Eingehende Bitcoin-Einzahlung ausstehend
    • Feedback von einem Handelspartner erhalten
    • Neue Feedback-Antwort erhalten

    Einrichtung von Webhooks

    Anmerkung: Vergewissern Sie sich, dass Ihr Dienst die Voraussetzungen für den Einsatz von Webhooks erfüllt. Während der Speicherung von URLs muss Ihr Dienst den Anforderungsheader "X-Paxful-Request-Challenge" unverändert (“as is”) als Antwort zurücksenden.

    So sollte unser Anforderungsheader in Ihrem Payload erscheinen (hier am Beispiel eines Webhooks-Dienstes in Node.js):

    RequestHeader.png

    1. Melden Sie sich bei Ihrem Paxful-Konto an, fahren Sie mit dem Mauszeiger über Ihren Benutzernamen in der oberen rechten Ecke der Seite und klicken Sie in dem erscheinenden Kontextmenü auf Einstellungen.
    ClickSettings.png

    Die Seite Einstellungen öffnet sich.

    2. Im Menü auf der linken Seite klicken Sie auf Entwickler.
    Click_Developer.png

    Die Entwickler-Seite öffnet sich.

    3. Wenn Sie noch keinen API-Schlüssel besitzen, geben Sie den Zwei-Faktor-Code in das darunter liegende Feld ein und klicken Sie auf Neuen API-Key hinzufügen. Wenn Sie bereits einen API-Schlüssel besitzen, können Sie diesen Schritt überspringen.
    AddAPIKey.png

    Ihr neuer API-Schlüssel erscheint auf der Entwickler-Seite.

    4. Kopieren Sie die URL von Ihrer App.
    Wechseln Sie zum Bereich Webhooks auf der Paxful-Entwickler-Seite. Fügen Sie den Link in das Feld Anforderungs-URL ein und klicken Sie auf Speichern.

    Achtung: Unsere Webhooks werden nur von HTTPS-Adressen unterstützt. HTTP-Adressen sind für diesen Zweck nicht nutzbar.


    ClickSave.png

    Ein Anforderungsheader wird an Ihre App gesendet.

    Anmerkung: Der Timeout beträgt 10 Sekunden. Wenn wir von Ihrer App innerhalb dieses Zeitfensters keine Antwort erhalten, wird die URL nicht gespeichert und kein Webhook erstellt.

    5. Ist der Vorgang erfolgreich, wird eine Liste angezeigt, in der Sie die gewünschten Ereignisse abonnieren können. Klicken Sie hierzu in der Liste Ereignisse abonnieren auf das jeweilige Kästchen.
    Events.png

    Anmerkung:

    • Durch Anklicken eines Kästchens werden die ausgewählten Ereignisse automatisch gespeichert.
    • Wenn die Zusendung von Ereignisdaten an Ihre App drei Mal scheitert, wird der Webhook (die Webhook-URL) deaktiviert.
    • Um einen neuen Link einzufügen, ersetzen Sie die bisherige URL durch die neue und klicken Sie auf Ändern.
    • Um Ihre Webhooks vollständig zu deaktivieren, klicken Sie auf Löschen.
    • Um eine deaktivierte URL erneut zu aktivieren, klicken Sie auf Erneut versuchen.
      ClickRetry.png
       

    Bei erfolgreicher Speicherung der Anforderungs-URL werden unsere Ereignisse in Ihrer App wie folgt angezeigt:

    WebhookexampleEvent.png

    Verifizierung der Anforderungen von Paxful

    Paxful übermittelt Ihnen einen individuell für Ihre App erzeugten String. Erhöhen Sie das Vertrauensniveau für die Verifizierung der Anforderungen von Paxful, indem Sie Signaturen mit Ihrem Signaturgeheimnis verifizieren.

    Wir fügen jeder gesendeten HTTPS-Anforderung einen "X-Paxful-Signatur"-HTTPS-Header hinzu. Bei der Erzeugung der Signatur kombinieren wir das Signaturgeheimnis mit Daten im Body der von uns gesendeten Anforderung mithilfe des Standard-Hash-Algorithmus HMAC-SHA256.

    Anmerkung: Die hieraus resultierende Signatur ist für jene Anforderung einzigartig und enthält keine direkten geheimen Daten. Dies trägt zur Sicherheit Ihrer App bei und beugt dem Missbrauch durch Unbefugte vor.

    Beispiel in JavaScript

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

    Ihr API-Geheimnis von der Seite https://paxful.com/account/developer:

    
    const apiSecret = 'maE5KV16FV0nDyh7XPm2F8f8FZTdtb5p';
    
    app.use(bodyParser.json());

    Wenn Sie eine Verifizierungsanforderung einer Serviceadresse erhalten, dann müssen Sie den Anforderungsheader "X-Paxful-Request-Challenge" der Anforderung als Antwort zurücksenden.

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

    Die Adressverifizierungsanforderung enthält weder Payload noch Anforderungssignatur.

    
      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();
        }
    });

    Bei Erhalt von Ereignisbenachrichtigungen müssen Sie den "X-Paxful-Signatur"-Header verifizieren. Brechen Sie die Verarbeitung ab, wenn die Anforderung die falsche Signatur aufweist.

    
      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();
        }
    });

    Nun können Sie ein Ereignis verarbeiten.

    
      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}`));

    Wenn Sie weitere Fragen haben oder zusätzliche Informationen benötigen, wenden Sie sich bitte an unseren Support. Weitergehende Informationen zu unseren API-Diensten erhalten Sie in unserer Entwickler-Dokumentation.