On this page
For a minimal integration, subscribe to monitoring.delta.detected.
Add monitoring.run.failed when your operations team must react to an incomplete check.
Do not subscribe to high-volume monitoring.run.completed unless your system needs every successful run.
Events
| Event | When it fires |
|---|---|
monitoring.subscription.started | Monitoring becomes active for an Entity. |
monitoring.subscription.paused | Scheduled monitoring is paused. |
monitoring.subscription.resumed | A paused subscription becomes active. |
monitoring.subscription.ended | A subscription is permanently turned off. |
monitoring.subscription.updated | An Entity's policy or frequency changes. |
monitoring.run.completed | One monitoring run completed. |
monitoring.run.failed | One monitoring run could not complete. |
monitoring.delta.detected | Monitoring found one or more material changes. |
monitoring.failed is not a public event name.
Exact V2 delta envelope
json
{
"version": "2026-08-11",
"id": "evt_monitoring_delta_01",
"type": "monitoring.delta.detected",
"createdAt": "2026-08-26T17:00:00.000Z",
"deliveryId": "del_monitoring_delta_01",
"data": {
"subscriptionId": "sub_01",
"entityId": "ent_01",
"externalUserId": "customer_42",
"subject": {
"entityId": "ent_01",
"externalUserId": "customer_42",
"identityId": "identity_01",
"type": "individual"
},
"detectedAt": "2026-08-26T17:00:00.000Z",
"deltas": [
{ "type": "SANCTIONS_MATCH", "direction": "ADDED", "severity": "HIGH" }
]
}
}This is the complete V2 envelope. Product fields live directly inside data.
Run failure example
json
{
"version": "2026-08-11",
"id": "evt_monitoring_failed_01",
"type": "monitoring.run.failed",
"createdAt": "2026-08-26T17:04:00.000Z",
"deliveryId": "del_monitoring_failed_01",
"data": {
"subscriptionId": "sub_01",
"entityId": "ent_01",
"externalUserId": "customer_42",
"failureCode": "provider_unavailable",
"failedAt": "2026-08-26T17:04:00.000Z"
}
}Public data contract
| Field | Events | Meaning |
|---|---|---|
subscriptionId | All | Customer-addressable monitoring subscription. |
entityId, externalUserId, subject | Entity-related events | Customer correlation without internal source data. |
status | Subscription lifecycle | active, paused or ended. |
frequency | Subscription updated | Effective frequency, policy default, Entity override and source. |
materialChange, completedAt | Run completed | Whether the successful run found a material change and when it completed. |
failureCode, failedAt | Run failed | Stable failure classification and time. |
deltas, detectedAt | Delta detected | Customer-visible material changes and detection time. |
Internal policyVersionId, monitoringRunId and assessmentId fields are not included.
Read current state and history from GET /api/v1/monitoring/subscriptions/{subscriptionId}.
Verify the raw request body, deduplicate by envelope id, return 2xx quickly, and use the read API whenever current state matters.