Webhooks
Empfangen Sie ein HTTP-Ereignis auf Ihrer eigenen URL, anstatt die API abzufragen.
Einen Webhook erstellen
http
POST /v1/webhooksjson
{
"url": "https://votre-app.exemple.com/webhooks/emini",
"events": ["job.completed", "job.failed"]
}json
{
"webhook": { "id": "...", "url": "https://votre-app.exemple.com/webhooks/emini", "events": ["job.completed", "job.failed"], "status": "active" },
"secret": "whsec_..."
}secret wird nur einmal bei der Erstellung zurückgegeben. Bewahren Sie es auf, um die Signatur der Zustellungen zu überprüfen.Verfügbare Ereignisse
job.completed— ein asynchroner Job (Video) wurde erfolgreich abgeschlossenjob.failed— ein asynchroner Job ist fehlgeschlagenbudget.alert— ein Budget-Warnschwellenwert des Projekts wurde überschritten
Die Signatur überprüfen
Jede Zustellung enthält einen Header X-Emini-Signature: ein HMAC-SHA256 des rohen Anfragetexts, berechnet mit Ihrem secret.
Node.jstypescript
import crypto from "node:crypto";
function isValid(rawBody: string, signature: string, secret: string): boolean {
const expected = crypto.createHmac("sha256", secret).update(rawBody).digest("hex");
return crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected));
}Webhooks verwalten
bash
GET /v1/webhooks # lister
DELETE /v1/webhooks/{webhook_id} # desactiver
GET /v1/webhooks/{webhook_id}/deliveries # historique des livraisonsAlternative: Abfragen
Webhooks sind optional — GET /v1/jobs/{job_id} steht immer zur Verfügung, um den Status eines Jobs aktiv abzufragen (siehe den Leitfaden Video).