DevOps

Webhooks verstehen und einrichten

Echtzeit-Events zwischen Services

Webhooks sind wie Benachrichtigungen für deinen Server. Statt ständig nachzufragen ob etwas passiert ist, sagt dir der andere Service einfach Bescheid.

Pro-Tip — Der schnelle Weg
Nutze webhook.site zum Testen. Dort bekommst du eine temporäre URL und kannst genau sehen welche Daten ankommen, bevor du deinen eigenen Endpoint baust.
Seite 1
1

Webhook-Konzept verstehen

Ein Webhook ist ein HTTP-POST den ein Service an deine URL schickt, wenn ein Event passiert.

// Polling (schlecht): Du fragst alle 5 Sekunden nach
setInterval(() => fetch('/api/check-payment'), 5000);


// Webhook (gut): Stripe ruft DICH an wenn bezahlt wird
// POST https://deine-app.de/api/webhooks/stripe
// Body: { type: 'payment_intent.succeeded', data: {...} }
2

Webhook-Endpoint bauen

Erstelle eine API-Route die POST-Requests empfängt und verarbeitet.

// app/api/webhooks/stripe/route.ts
export async function POST(req: Request) {
const body = await req.json();

if (body.type === 'payment_intent.succeeded') {
await activateSubscription(body.data.object.customer);
}

return new Response('OK', { status: 200 });
}
3

Webhook verifizieren

Prüfe die Signatur damit niemand gefälschte Events an deine URL schicken kann.

import Stripe from 'stripe';


const sig = req.headers.get('stripe-signature')!;
const rawBody = await req.text();


try {
const event = stripe.webhooks.constructEvent(
rawBody, sig, process.env.STRIPE_WEBHOOK_SECRET!
);
// Event ist verifiziert
} catch (err) {
return new Response('Invalid signature', { status: 400 });
}
4

Lokal testen

Mit der Stripe CLI oder ngrok kannst du Webhooks lokal empfangen.

# Stripe CLI — leitet Webhooks an localhost weiter
stripe listen --forward-to localhost:3000/api/webhooks/stripe


# ngrok — macht deinen Localhost öffentlich erreichbar
ngrok http 3000
5

Fehlerbehandlung einbauen

Antworte immer mit 200 OK wenn du den Webhook empfangen hast. Verarbeitung kann asynchron passieren.

export async function POST(req: Request) {
const event = await verifyWebhook(req);

// Sofort bestätigen
// Verarbeitung im Hintergrund
processEvent(event).catch(console.error);

return new Response('OK', { status: 200 });
}
Seite 2
Warum das funktioniert
  • Webhooks sind effizienter als Polling — kein ständiges Nachfragen nötig
  • Echtzeit-Reaktion auf Events wie Zahlungen, Registrierungen oder Deployments
  • Jeder große Service bietet Webhooks an: Stripe, GitHub, Supabase, Vercel
Tipps
  • Immer Signatur prüfen — sonst kann jeder gefälschte Events senden
  • Webhook-Verarbeitung idempotent machen — Events können doppelt ankommen
  • Bei Fehler sendet der Anbieter den Webhook nochmal (Retry-Logik)
  • Events in eine Queue schreiben für zuverlässige Verarbeitung
Seite 3
Bereit für den nächsten Schritt?

KIWorld VibeCoding Masterclass

Du willst nicht nur einzelne Tools einrichten, sondern wirklich lernen wie du mit KI komplette Apps, Websites und SaaS-Produkte baust? Über 700 Videos — von Anfänger bis Fortgeschritten — in jedem Bereich. Von der Idee bis zum fertigen Produkt, ohne eine Zeile Code selbst zu schreiben.

Jetzt Masterclass ansehen