Webhooks einrichten und nutzen
Lass dein System automatisch reagieren, wenn eine Batch-Analyse abgeschlossen ist. Resell Scan sendet signierte POST-Requests an deine Webhook-URL.
In diesem Guide
Aktuelles Event: analysis.completed
Webhooks werden ausgelöst, wenn ein kompletter Batch fertig ist. Dein Endpoint erhält Batch-ID, Sammlungs-ID, Status, Produktzahlen und Detailergebnisse pro Produkt.
Eigenen Endpoint vorbereiten
Stelle eine öffentlich erreichbare HTTPS-URL bereit, die POST-Requests mit JSON akzeptiert.
import { NextRequest, NextResponse } from 'next/server';
export async function POST(request: NextRequest) {
const signature = request.headers.get('x-webhook-signature');
const payload = await request.text();
// Signatur vor der Verarbeitung prüfen.
// Danach payload per JSON.parse(payload) verarbeiten.
return NextResponse.json({ received: true });
}Webhook im Dashboard erstellen
Öffne „Entwickler“ -> „Webhooks“, klicke auf „Webhook hinzufügen“ und trage URL, Beschreibung und Event ein.
Webhook URL
Dein HTTPS-Endpoint, z. B. https://example.com/webhooks/resell-scan.
Beschreibung
Optionaler Text, damit du später erkennst, wofür der Webhook genutzt wird.
Ereignis
Aktuell verfügbar: analysis.completed, also „Analyse abgeschlossen“.
Aktiv
Beim Bearbeiten kannst du einen Webhook aktiv oder inaktiv setzen.
Secret nur einmal sichtbar
Payload verstehen
Das Event enthält eine ID, den Eventnamen, einen Zeitstempel und die Batch-Daten.
{
"id": "evt_550e8400-e29b-41d4-a716-446655440000",
"event": "analysis.completed",
"created_at": "2026-05-25T10:30:00.000Z",
"data": {
"batch_id": "550e8400-e29b-41d4-a716-446655440001",
"collection_id": "550e8400-e29b-41d4-a716-446655440002",
"status": "completed",
"total_products": 10,
"successful_products": 9,
"failed_products": 1,
"success_rate": 90,
"started_at": "2026-05-25T10:00:00.000Z",
"completed_at": "2026-05-25T10:30:00.000Z",
"products": [
{
"product_id": "550e8400-e29b-41d4-a716-446655440003",
"product_data": {},
"status": "completed",
"progress": 100,
"result": {},
"error": null
}
]
}
}Batch statt Einzelprodukt
X-Webhook-Signature prüfen
Resell Scan signiert den Body mit HMAC-SHA256. Der Header hat das Format t=[timestamp],v1=[signature].
import crypto from 'crypto';
function verifyWebhookSignature(payload: string, header: string, secret: string) {
const parts = Object.fromEntries(
header.split(',').map((part) => {
const [key, value] = part.split('=');
return [key, value];
})
);
const signedPayload = `${parts.t}.${payload}`;
const expected = crypto
.createHmac('sha256', secret)
.update(signedPayload)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(expected),
Buffer.from(parts.v1)
);
}Raw Body verwenden
Logs und Retries kontrollieren
In der Webhook-Liste kannst du Webhooks bearbeiten, löschen und Logs anzeigen.