A generation failed (data.error says why; data.credits_charged is 0 when it was refunded).
POSTed as JSON to every endpoint registered with POST /v1/webhook-endpoints, for every generation on the account (web, API, MCP, CLI; data.origin says which) started after the endpoint was created. Endpoints are managed with an API key only: an app connected through sign-in (OAuth) gets 403 api_key_required. Headers: Lumeta-Event-Id (evt_..., also body.id), Lumeta-Event-Type, Lumeta-Signature: t=<unix seconds>,v1=<hex>, where the hex is the HMAC-SHA256 of "<t>.<raw body>" keyed with the endpoint secret. Verify the signature over the raw bytes and refuse a t older than 5 minutes. Answer any 2xx within 5 seconds; anything else (a redirect, a timeout, a 4xx or 5xx) is retried after 1 min, 5 min, 30 min, 2 h and 12 h, with the same event id. An event goes out a few seconds after its generation finishes (within about a minute for one that ran longer than two hours), not necessarily in order; a retry carries the generation as it is then.
Payload
Response
Received. The body is ignored (only the first 4 KB are read).
Changes
Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.