Ein Webhook-Signatur-Secret ist ein gemeinsamer Schlüssel, mit dem Provedly bestätigen kann, dass ein Kaufereignis wirklich von Stripe oder Shopify stammt und unterwegs nicht verändert wurde. Es ist der Grund, warum Provedly eine Benachrichtigung mit der Kennzeichnung „Verifizierter Kauf“ versehen kann: Die Kennzeichnung bedeutet, dass die Signatur gestimmt hat. Dieser Beitrag erklärt, was ein Webhook ist, was die Signatur leistet, wie du jede Plattform verbindest und was das Secret kann und was nicht, falls es leakt.
Webhooks in einem Absatz. Passiert etwas auf deiner Zahlungsplattform, etwa eine abgeschlossene Bestellung, kann die Plattform eine HTTP-Anfrage an eine von dir angegebene URL senden, mit den Details im Body. Diese Anfrage ist ein Webhook. Die Plattform schickt Provedly die Neuigkeit, statt dass Provedly ständig nachfragt. Bei Shopify ist das relevante Ereignis orders/create. Bei Stripe ist es typischerweise checkout.session.completed oder payment_intent.succeeded.
Das Problem mit jeder URL, die einen POST annimmt: Jeder kann einen POST an sie senden. Ohne Prüfung könnte jemand Provedly eine falsche „Bestellung“ schicken und sie als echt anzeigen lassen. Die Signatur ist diese Prüfung.
Was die Signatur leistet
Stripe und Shopify signieren jeden Webhook mit HMAC-SHA256. Die Plattform nimmt den rohen Request-Body, berechnet mit einem Secret, das nur sie und du kennen, einen Hash und sendet ihn in einem Header mit. Provedly berechnet den Hash mit demselben Secret neu und vergleicht. Stimmen beide überein, steht zweierlei fest: Die Anfrage kam von jemandem, der das Secret besitzt, und der Body wurde unterwegs nicht verändert.
Stimmen sie nicht überein, wird die Anfrage verworfen. Sie wird nicht angezeigt, nicht als Kauf gespeichert und nicht gezählt. Es gibt keinen Topf für „unverifizierte Käufe“. Es gibt verifizierte Käufe, die durch diese Prüfung kamen, und es gibt Einträge, die der Händler auf anderem Weg hinzugefügt hat, und die sind immer gekennzeichnet: „Sample“ für von Hand hinzugefügte Zeilen, „Imported“ für Zeilen aus einer CSV oder der Records-API. Dazwischen gibt es nichts.
Das ist die gesamte Grundlage der Kennzeichnung „Verifizierter Kauf“, und deshalb können wir auf der öffentlichen Verifizierungsseite angeben, welche Quellen verbunden sind und wann der letzte verifizierte Kauf einging. /de/blog/reading-the-verification-page erklärt, wie eine Käuferin diese Seite liest.
Shopify verbinden
Hast du Provedly aus dem Shopify App Store installiert, hast du mit dem Secret gar nichts zu tun. Shopify registriert die Webhooks bei der Installation der App und signiert sie mit einem Secret, das an die App gebunden ist. Provedly verifiziert sie automatisch. Die Einrichtung wird in /de/blog/shopify-setup-guide beschrieben.
Eins solltest du wissen: Wegen Shopifys Protected Customer Data Program kommen frühe Webhooks möglicherweise ohne den Namen des Käufers an. Sie sind trotzdem signiert und verifiziert; der Toast sagt einfach „Someone“, bis der Zugriff genehmigt ist. /de/blog/shopify-someone-protected-customer-data hat die Details.
Stripe verbinden
Für Websites außerhalb von Shopify legst du in deinem Stripe-Dashboard einen Webhook-Endpoint an, der auf die URL zeigt, die Provedly dir gibt, wählst die Ereignisse aus, und Stripe zeigt dir ein Signatur-Secret für diesen Endpoint. Es beginnt mit whsec_. Du fügst es einmal in die Quelleneinstellungen von Provedly ein.
Ein paar Punkte, damit es gut läuft.
- Nutze einen eigenen Endpoint. Leg für Provedly einen neuen Endpoint an, statt einen wiederzuverwenden, auf den deine eigene Anwendung hört. Jeder Endpoint hat sein eigenes Secret, ein Problem mit einem betrifft also den anderen nicht.
- Wähl nur die Ereignisse, die du brauchst. Provedly braucht abgeschlossene Zahlungen. Es braucht keine Kundenänderungen, Zahlungsanfechtungen oder Auszahlungen.
- Live-Modus, nicht Testmodus. Ereignisse im Testmodus werden mit einem anderen Secret signiert und beschreiben Zahlungen, die nie stattgefunden haben. Verbinde einen Endpoint im Live-Modus mit deiner Produktivseite, damit Testzahlungen nie als echte präsentiert werden.
- Einmal einfügen. Nach dem Speichern gilt das Secret als hinterlegt. Verlierst du es aus den Augen, rotiere es in Stripe und füge das neue ein.
Wovor das Secret schützt
| Bedrohung | Stoppt die Signatur das? |
|---|---|
| Jemand sendet per POST eine falsche Bestellung an deine Provedly-URL | Ja |
| Ein Proxy verändert Betrag oder Produkt unterwegs | Ja |
| Ein echtes altes Ereignis wird erneut abgespielt | Weitgehend; beide Plattformen enthalten Zeitstempel und Ereignis-IDs, mit denen ein Empfänger veraltete oder doppelte Ereignisse ablehnen kann |
| Jemand mit deinem Stripe-Login erstellt echte Erstattungen oder Zahlungen | Nein; das ist Kontosicherheit, keine Webhook-Sicherheit |
Die letzte Zeile ist wichtig. Das Signatur-Secret bestätigt, dass Ereignisse von der Plattform kamen. Es macht die Plattform selbst nicht vertrauenswürdig und ersetzt keine Zwei-Faktor-Authentifizierung für dein Stripe- oder Shopify-Konto.
Wenn das Secret leakt
Mit einem geleakten Stripe-Signatur-Secret kann jemand Webhook-Ereignisse an den zugehörigen Endpoint fälschen. Bei Provedly hieße das falsche verifizierte Käufe, also genau das Ergebnis, das das ganze System verhindern soll. Die Behebung geht schnell: Rotiere in Stripe das Secret dieses Endpoints, was das alte sofort ungültig macht, und füge den neuen Wert in Provedly ein.
Mit dem Secret lassen sich keine Karten belasten, keine Kundendaten lesen und keine Logins bei Stripe durchführen. Es ist auf das Signieren von Ereignissen für einen Endpoint beschränkt. Deshalb kann ein Shopbetreiber sicher damit umgehen, und deshalb fragen wir danach statt nach weitergehendem API-Zugriff.
Bei Shopify liegt das Secret der App bei Provedly und Shopify, nicht beim Händler, es gibt für einen Händler also nichts zu leaken oder zu rotieren.
Warum das für die Branche wichtig ist
Die meisten Tools dieser Kategorie akzeptieren, Stand Oktober 2026 und laut ihren Listings, vom Händler eingetippte Daten für Benachrichtigungen und Besucherzahlen und unterscheiden sie optisch nicht von Daten aus der Plattform. Manche verifizieren zwar Webhooks, zeigen importierte CSV-Zeilen dann aber im selben Stil an. Die Signatur ist nur nützlich, wenn das Produkt sie als Grenze behandelt: signiert auf der einen Seite, als Imported oder Sample gekennzeichnet auf der anderen, und kein Weg, eine Zeile hinüberzuschieben.
Genau diese Grenze ist das, was die seit Ende 2024 geltende FTC-Regel zu gefälschten Testimonials implizit von Händlern verlangt: es belegen zu können. Ein signierter Webhook ist das, was einem Beleg am nächsten kommt, den eine Social-Proof-Benachrichtigung tragen kann.
Häufige Fragen
Kann ich Shopify und Stripe mit einer Website verbinden?
Ja. Ein Shopify-Shop, der zusätzlich über einen Stripe-Checkout außerhalb von Shopify verkauft, kann beides verbinden. Die Verifizierungsseite listet beide als Quellen auf, und Käufe aus jeder werden unabhängig verifiziert.
Enthält der Webhook Kartennummern?
Nein. Weder Stripe noch Shopify fügen Kartendaten in Bestell- oder Zahlungs-Webhooks ein. Was Provedly für eine Benachrichtigung braucht, sind das Produkt, ein Vorname, sofern vorhanden, ein grober Ort und die Uhrzeit.
Was, wenn mein Stripe-Konto im Testmodus ist, während ich die Website baue?
Halte Ereignisse aus dem Testmodus von deiner Produktivseite fern. Gehst du live, leg in Stripe einen Endpoint im Live-Modus an und verbinde diesen, damit nur echte Zahlungen zu verifizierten Käufen werden können.
Verbinde noch heute eine signierte Quelle und lass die Kennzeichnung „Verifizierter Kauf“ ihre Arbeit tun; die Pläne findest du unter /de/pricing.