> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mnemom.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhook Event Catalog

> All 53 webhook event types Mnemom emits, with JSON Schema and example payload links. Operator-actionable surface only.

The full catalog of webhook events Mnemom emits — **53 events as of 2026-05-09**, grouped by family. Every entry has a versioned JSON Schema, an example payload, and an emission-site reference.

The schemas are the source of truth (canonical home: `mnemom-api/schemas/webhooks/`). This page is generated by `scripts/generate-webhook-catalog.mjs` from `mnemom-api/schemas/webhooks/index.json`; CI ensures the page stays in sync with the catalog.

Every event in this catalog satisfies the [seven contractual invariants](/concepts/webhook-contract) — stable name, versioned JSON Schema, example payload, idempotency key, HMAC signature, retry policy, replay path. All entries are classified `operator-actionable`.

**Catalog version:** `2026-05-09`. Subscription to a new endpoint defaults to `event_types: []` (none) — explicit per-event opt-in is required.

***

## Aegis family

### `advisory.published`

Fired when an advisory row transitions from status='draft' (or never-published) to status='published'. Emitted exactly once per transition by the PUT /v1/admin/security/advisories/{id} handler. Carries the slug + severity so subscribers can route on severity without re-fetching the body. The `synthetic` flag is the calm-at-GA transparency indicator.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/advisory.published.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/advisory.published.example.json)

### `ioc.added`

Fired when a new row is inserted into the iocs table. The public STIX feed at GET /v1/trust/iocs surfaces the same rows; subscribers wire this webhook for real-time fan-out. Carries the indicator value + type + Traffic Light Protocol class so consumers can ingest without re-fetching the feed. `last_seen_at` updates on existing rows do NOT fire — only fresh insertions.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/ioc.added.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/ioc.added.example.json)

### `recipe.candidate.created`

Fired when a new detection-recipe candidate is recorded for review. Candidates come from several sources — customer false-positive/false-negative reports, internal observation, researcher submissions, and manual admin proposals. A new candidate starts in `pending` state and awaits review before it can be promoted (or is auto-promoted when the source qualifies).

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/recipe.candidate.created.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/recipe.candidate.created.example.json)

### `recipe.promoted`

Fired at two lifecycle moments, disambiguated by the optional `transition` field: (1) **initial promotion** — a newly composed, signed recipe set is published; and (2) **observe-to-active** — a recipe that has passed its 24-hour observation soak within false-positive thresholds transitions from `observe` to `active`. Carries the ids of both signing keys so subscribers can correlate the event with the gateway's served, signed envelope.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/recipe.promoted.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/recipe.promoted.example.json)

### `recipe.retired`

Fired when a detection recipe is archived. Three reasons cover the lifecycle: `zero_hits_window` (nightly retirement sweep — no hits in the configured window and the recipe is older than that window), `fp_rate_exceeded` (nightly — cumulative false-positive rate above threshold, with a minimum-evaluations guard), and `observe_soak_fp` (false-positive rate at or above threshold during the 24-hour observe soak — auto-rollback before the rule ever serves in `enforce`).

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/recipe.retired.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/recipe.retired.example.json)

### `reviewer-mode.changed`

Fired when a platform admin updates platform\_settings.reviewer\_mode or the high-confidence threshold via PUT /v1/admin/settings/reviewer-mode. Auto-approval modes (`auto-approve-trusted-sources`, `auto-approve-high-confidence`) only accelerate tier-3 (severity\_p=p2) promotions; tier 1-2 (p0/p1) recipes always require dual-control human approval. The dual-control invariant is enforced structurally by the `recipes_active_requires_quorum` CHECK constraint on detection\_recipes + the promoter handler's distinct-approver count — auto-mode cannot bypass it.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/reviewer-mode.changed.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/reviewer-mode.changed.example.json)

## Agent family

Lifecycle and exemption events for individual agents.

### `agent.exemption.granted`

Fired when an exemption is granted to an agent — temporarily relaxes a specific safe-house section for the agent. Operator-actionable: any exemption in the corpus warrants audit review.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/agent.exemption.granted.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/agent.exemption.granted.example.json)

### `agent.exemption.revoked`

Fired when a previously-granted agent exemption is revoked. Tightens the safe-house surface for the agent.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/agent.exemption.revoked.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/agent.exemption.revoked.example.json)

### `agent.killed`

Fired when an agent is killed — a stronger containment than `paused`. Gateway requests targeting the agent are rejected; reactivation requires explicit operator action.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/agent.killed.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/agent.killed.example.json)

### `agent.paused`

Fired when an org owner/admin pauses an agent. The agent's containment\_status flips active → paused; gateway requests targeting the agent will be intercepted until resumed.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/agent.paused.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/agent.paused.example.json)

### `agent.resumed`

Fired when a paused or killed agent is resumed. Containment\_status transitions to active; gateway requests resume normal handling.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/agent.resumed.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/agent.resumed.example.json)

## Billing family

Stripe-driven billing state and AAP transaction outcomes.

### `subscription.status_changed`

Fired when a billing subscription transitions state (e.g. trialing → active, active → past\_due, active → cancelled). Surfaces customer-facing billing changes that may require operator action.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/subscription.status_changed.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/subscription.status_changed.example.json)

### `transaction.completed`

Fired when an autonomous-operation transaction completes (CLPI policy evaluation pipeline finishes a billed operation).

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/transaction.completed.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/transaction.completed.example.json)

## Conscience family

Conscience escalations from AIP analysis and org-level values updates.

### `conscience.escalation`

Fired when AIP integrity-mode analysis detects conscience-level conflicts in agent reasoning that warrant operator attention beyond a routine boundary check. Companion to `integrity.checkpoint`/`integrity.violation`.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/conscience.escalation.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/conscience.escalation.example.json)

### `conscience.values_updated`

Fired when an org owner/admin creates, updates, or removes a conscience value at the org level. Used by operator dashboards + audit pipelines to track governance-config drift.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/conscience.values_updated.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/conscience.values_updated.example.json)

## Governance family

Card and template updates that flow through the composer to affect future agent turns.

### `alignment_card.updated`

Fired when an agent's alignment card is updated. Operator-actionable: governance-config drift surfaces here.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/alignment_card.updated.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/alignment_card.updated.example.json)

### `org_alignment_template.deleted`

Fired when an org-scope alignment template is cleared. Triggers recompose fan-out.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/org_alignment_template.deleted.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/org_alignment_template.deleted.example.json)

### `org_alignment_template.updated`

Fired when an org-scope alignment template is set or updated. Triggers recompose fan-out.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/org_alignment_template.updated.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/org_alignment_template.updated.example.json)

### `org_protection_template.deleted`

Fired when an org-scope protection template is cleared.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/org_protection_template.deleted.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/org_protection_template.deleted.example.json)

### `org_protection_template.updated`

Fired when an org-scope protection template is set or updated.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/org_protection_template.updated.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/org_protection_template.updated.example.json)

### `protection_card.updated`

Fired when an agent's protection card is updated.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/protection_card.updated.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/protection_card.updated.example.json)

## Integrity family

AIP integrity-checkpoint events fired after every analyze pass.

### `integrity.checkpoint`

Fired on every AIP integrity-mode analyzer run regardless of verdict. Operators wanting a complete audit trail of integrity-mode evaluation subscribe to this; operators wanting paging-only on violations subscribe to `integrity.violation` instead.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/integrity.checkpoint.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/integrity.checkpoint.example.json)

### `integrity.violation`

Fired when AIP analysis returns a `boundary_violation` verdict on agent reasoning. The agent's response was either replaced (in enforce mode) or annotated (in nudge/observe mode) per the agent's integrity\_mode configuration. A companion `integrity.checkpoint` event always fires for the same checkpoint regardless of verdict — the violation event is a strict subset that lets operators page on boundary violations only.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/integrity.violation.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/integrity.violation.example.json)

## Quota family

Org-level quota and risk-budget threshold crossings.

### `quota.exceeded`

Fired when integrity-check usage crosses the plan ceiling. This is operator-actionable — the customer should upgrade or expect overage billing per their plan terms.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/quota.exceeded.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/quota.exceeded.example.json)

### `quota.risk_exceeded`

Fired when risk-assessment usage crosses plan ceiling.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/quota.risk_exceeded.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/quota.risk_exceeded.example.json)

### `quota.risk_warning`

Fired once per period when risk-assessment usage crosses 80% of plan ceiling.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/quota.risk_warning.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/quota.risk_warning.example.json)

### `quota.sh_warning`

Fired when Safe House usage cost-per-period crosses the customer-configured budget alert threshold.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/quota.sh_warning.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/quota.sh_warning.example.json)

### `quota.team_reputation_exceeded`

Fired when team-reputation usage crosses plan ceiling.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/quota.team_reputation_exceeded.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/quota.team_reputation_exceeded.example.json)

### `quota.team_reputation_warning`

Fired once per period when team-reputation usage crosses 80%.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/quota.team_reputation_warning.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/quota.team_reputation_warning.example.json)

### `quota.warning`

Fired once per billing period when integrity-check usage crosses 80% of the plan ceiling. Operators are expected to upgrade plan or reduce usage before the `quota.exceeded` event fires.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/quota.warning.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/quota.warning.example.json)

## Reputation family

Per-agent reputation evolution. (Catalog-only as of 2026-05-09 — emitter wiring pending.)

### `reputation.grade_changed`

Fired when an agent crosses a reputation-grade boundary (e.g. A → B → C). Coarser-grained companion to `reputation.score_changed`. (Declared, emitter currently absent.)

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/reputation.grade_changed.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/reputation.grade_changed.example.json)

### `reputation.score_changed`

Fired when an agent's reputation score crosses a meaningful threshold. Operator-actionable signal for fleet-quality monitoring. (Declared in WEBHOOK\_EVENT\_TYPES; emitter currently absent — future producer in `mnemom-api/src/reclassification/` or `mnemom-api/src/intelligence/`.)

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/reputation.score_changed.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/reputation.score_changed.example.json)

## Safe House family

Front-door evaluation outcomes and security tripwires. (Catalog-only as of 2026-05-09 — emitter wiring pending.)

### `sh.campaign.detected`

Fired when cross-session correlation detects a coordinated adversarial campaign targeting the agent or org. Strongest fleet-level operator signal.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/sh.campaign.detected.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/sh.campaign.detected.example.json)

### `sh.canary.triggered`

Fired when a canary token (synthetic credential or sentinel string) appears in agent output — strong adversarial-behavior signal.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/sh.canary.triggered.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/sh.canary.triggered.example.json)

### `sh.evaluation.block`

Fired when a Safe House evaluation blocks a request — strongest legacy verdict; the request was rejected.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/sh.evaluation.block.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/sh.evaluation.block.example.json)

### `sh.evaluation.quarantine`

Fired when a Safe House evaluation quarantines a request — the request was set aside for operator inspection rather than passed through.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/sh.evaluation.quarantine.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/sh.evaluation.quarantine.example.json)

### `sh.evaluation.warn`

Fired when a Safe House evaluation completes with a `warn` verdict — request was permitted but flagged for operator review. (Legacy shape; coexists with `integrity.checkpoint`/`integrity.violation`.)

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/sh.evaluation.warn.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/sh.evaluation.warn.example.json)

### `sh.session.escalated`

Fired when a session's accumulated risk score crosses an escalation threshold — multiple borderline events in a session may not each warrant action, but the cumulative pattern does.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/sh.session.escalated.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/sh.session.escalated.example.json)

## Sideband family

Cross-turn detector firings (drift, coherence, fault-line, fleet) and operator-marked drift resolutions.

### `drift.resolved`

Fired when an org owner/admin acknowledges a previously-fired drift alert. Closes the operator-side incident; companion event to `sideband.drift.fired`.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/drift.resolved.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/drift.resolved.example.json)

### `sideband.coherence.fired`

Fired when team-coherence cron sweep detects a coherence regression for a team — pairwise governance floor below threshold, conflict edges above threshold, or specific outlier agents whose declared values diverge from the rest of the team. Coherence is operator-actionable; the agent receives no signal in its prompt. Operators are expected to inspect the team's alignment cards and decide whether to reconcile.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/sideband.coherence.fired.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/sideband.coherence.fired.example.json)

### `sideband.drift.fired`

Fired when N consecutive non-clear AIP verdicts in a session cross the configured drift-detection threshold. The agent's behavior is drifting from its declared values across multiple turns. Operators are expected to investigate; the agent itself receives no signal (drift is operator-actionable, not agent-actionable). Replaces the legacy `drift.detected` event name (dropped 2026-05-09).

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/sideband.drift.fired.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/sideband.drift.fired.example.json)

### `sideband.fault_line.fired`

Fired when team fault-line analysis detects a declared-values misalignment across a team — minority agents whose alignment cards diverge from the majority. Operator-actionable; the agents themselves receive no signal.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/sideband.fault_line.fired.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/sideband.fault_line.fired.example.json)

### `sideband.fleet.fired`

Fired when team-fleet-topology analysis detects a pattern: outliers (agents >1σ below fleet mean), cluster\_partition (BFS components in the coherence graph), or min\_pair\_score below threshold.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/sideband.fleet.fired.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/sideband.fleet.fired.example.json)

## Team family

Team lifecycle and membership events.

### `team.archived`

Fired when a team is archived. Member agents stay on their own alignment cards; team-scope composition no longer applies.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/team.archived.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/team.archived.example.json)

### `team.card_updated`

Fired when a team's alignment-template or protection-template card is set, updated, or cleared. Triggers `mark_agents_for_recompose_for_team` fan-out.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/team.card_updated.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/team.card_updated.example.json)

### `team.created`

Fired when a new team is created within an org.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/team.created.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/team.created.example.json)

### `team.member_added`

Fired once per agent added to a team. Triggers team-scope composition for the agent on next gateway request.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/team.member_added.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/team.member_added.example.json)

### `team.member_removed`

Fired when an agent is removed from a team. Team-scope composition no longer contributes to the agent's effective card.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/team.member_removed.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/team.member_removed.example.json)

## Trace family

AAP alignment-trace verification and policy-violation events. (Emitted via the parallel AAP webhook rail.)

### `policy.violation`

Fired when CLPI policy evaluation flags a violation in agent behavior. Companion to `integrity.violation` for autonomy-checkpoint patterns.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/policy.violation.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/policy.violation.example.json)

### `trace.created`

Fired when an AAP alignment trace is created. (Declared in WEBHOOK\_EVENT\_TYPES; emitter wiring follows AAP SDK integration.)

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/trace.created.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/trace.created.example.json)

### `trace.escalation_required`

Fired when AAP trace analysis identifies a pattern that warrants operator escalation beyond a routine `trace.failed`.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/trace.escalation_required.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/trace.escalation_required.example.json)

### `trace.failed`

Fired when an AAP trace fails verification — signature mismatch, chain break, or boundary violation detected.

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/trace.failed.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/trace.failed.example.json)

### `trace.verified`

Fired when an AAP trace passes verification (signature + chain check + boundary analysis).

* [Schema](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/trace.verified.schema.json)
* [Example payload](https://github.com/mnemom/mnemom-api/blob/main/schemas/webhooks/trace.verified.example.json)

***

## See also

* [Webhook Contract](/concepts/webhook-contract) — the seven contractual invariants.
* [Headers reference](/api-reference/headers) — `X-Webhook-Signature` + `X-Webhook-Timestamp` + `X-Webhook-Id` delivery headers.
