Skip to main content
Each event delivery is a POST with a JSON body shaped per event_type. All bodies are wrapped in a stable envelope; the event-specific fields live under payload.

Envelope

Same envelope mirrored in headers: delivery_id is stable across retries — use it as your idempotency key.

tx.policy.alert.triggered

Fires from the KYT pipeline when /check-transfer (x402) or /v1/aegis/tx (internal) finds at least one alert above your configured alert_min_level (default Medium).

Alert fields

Synthetic test payload

When fired by POST /v1/webhooks/{id}/test, the body has the same shape with an additional top-level synthetic: true and sentinel ids:
Receivers MAY short-circuit on synthetic === true to avoid flooding case-review queues with test rows.

aegis.bfs.completed

Fires when an async Tier-4 exposure job (POST /explore) completes successfully. Used for batch / pre-screening flows that can’t tie up a synchronous HTTP request.

aegis.bfs.failed

Same shape minus report_id + categories, plus an error string. Fires after the job exhausts its retry budget.

aegis.check.high_risk

Fires from /v1/aegis/check when the verdict is risk_level: high or severe (Tier 0/1/2/3/4 — any tier can trigger).