API
-
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 seinen Kryptowährungskauf bezahlt
- Handel abgebrochen oder abgelaufen
- Krypto-Verkauf erfolgreich
- Krypto-Kauf
- Krypto-Einzahlung bestätigt
- Eingehende Krypto-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):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.
Die Seite Einstellungen öffnet sich.
2. Im Menü auf der linken Seite klicken Sie auf Entwickler.
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.
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.
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.
Anmerkung:
- Durch Anklicken eines Kästchens werden die ausgewählten Ereignisse automatisch gespeichert.
- 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.
Bei erfolgreicher Speicherung der Anforderungs-URL werden unsere Ereignisse in Ihrer App wie folgt angezeigt:
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.