## Case management webhook events

When a member of your compliance team closes a case in the RiskOS™ Dashboard—either **as a match** or **no match**—you’ll receive a webhook notification containing the case details, including the review status of each entity.

## `case_management_notification_case_closure`

### Webhook response fields

| **Field Name** | **Type** | **Always Present** | **Explanation** |
| --- | --- | --- | --- |
| `event_id` | String | Yes | Unique identifier for this webhook event. Useful for deduplication or tracing. |
| `event_at` | String (ISO 8601 datetime) | Yes | Timestamp when the case closure event was created. |
| `event_type` | String | Yes | Type of event. For this webhook, it will always be `case_management_notification_case_closure`. |
| `data.id` | String | No | Your internal ID you passed when creating the original [screening evaluation request](https://help.socure.com/riskos/docs/integrate-watchlist-screening). |
| `data.workflow` | String | Yes | Workflow associated with the case (e.g., `consumer_onboarding`). |
| `data.eval_id` | String | Yes | Evaluation ID generated in the original screening [evaluation response](https://help.socure.com/riskos/docs/integrate-watchlist-screening). |
| `data.reviewer_id` | String (email) | Yes | Email of the reviewer or system account that performed the case closure. |
| `data.environment_name` | String | Yes | Indicates whether the webhook originated from `Production` or `Sandbox`. |
| `data.globalWatchlist.caseReviewStatus` | String | Yes | Final case review status — either `match` or `no match`. |
| `data.globalWatchlist.caseDetails[n].entityId` | String | Yes | Unique identifier for each matched entity found on a list. |
| `data.globalWatchlist.caseDetails[n].entityReviewStatus` | String | Yes | Indicates whether the individual entity was reviewed as a `match` or `no match`. |
| `data.globalWatchlist.caseDetails[n].sourceList[]` | Array of Strings | Yes | Lists the data sources where the entity was matched (e.g., “Mexico Michoacan Municipalities Leadership”). |
| `data.globalWatchlist.caseDetails[n].associatedCategories[]` | Array of Strings | Yes | Lists associated categories or classifications for the entity (e.g., “Pep Class 4”). |

### Sample webhook response with no match

```json
{
  "event_id": "91150283-fd64-4786-9e56-af96e9c8fef2",
  "event_at": "2025-08-22T20:07:15.820Z",
  "event_type": "case_management_notification_case_closure",
  "data": {
    "id": "",
    "workflow": "consumer_onboarding",
    "eval_id": "63c22805-6462-445c-b48d-dfca656baaa9",
    "reviewer_id": "sosha.mathew+watchlist@socure.com",
    "environment_name": "Production",
    "globalWatchlist": {
      "caseReviewStatus": "no match"
    }
  }
}
```

### Sample webhook response with match

```json
{
  "event_id": "88888888-8888-8888-8888-888888888888",
  "event_at": "2026-04-01T14:30:00.000Z",
  "event_type": "case_management_notification_case_closure",
  "data": {
    "id": "Effectiv-Test-combined-hits_abc123",
    "workflow": "individual_onboarding",
    "eval_id": "f1234567-abcd-4567-89ef-0123456789ab",
    "reviewer_id": "analyst@company.com",
    "environment_name": "Production",
    "globalWatchlist": {
      "caseReviewStatus": "match",
      "caseDetails": [
        {
          "entityId": "ZaP+/U4Q8ZQsYGxKZVMIsFKF",
          "entityReviewStatus": "match",
          "sourceList": [
            "OFAC SDN List",
            "United Nations Consolidated List",
            "PEP Data",
            "adverseMedia"
          ],
          "associatedCategories": [
            "Sanction",
            "Pep Class 1",
            "V2 Financial Aml Cft"
          ]
        },
        {
          "entityId": "XbQ+/V5RS2u/h4CiZFYstAd/6Q4GDlS",
          "entityReviewStatus": "match",
          "sourceList": [
            "adverseMedia"
          ],
          "associatedCategories": [
            "V2 Violence Aml Cft"
          ]
        }
      ]
    }
  },
  "watchlist_case_id": "combined-hits-case-001"
}
```
