Event Subscription Types

Webhooks allow RiskOS™ to notify your application in real-time when specific events occur. This page provides a comprehensive guide to configuring and understanding all available webhook event types.

Overview

A webhook is a REST API endpoint that you provide and configure to receive event notifications from RiskOS™. When events like decision updates or case assignments occur, RiskOS™ will send an HTTP POST request to your registered webhook endpoint with the event data.


Related topics


Quick reference

Event TypeDescriptionTrigger
EVALUATION EVENTS
evaluation_completedEvaluation processing completed.Asynchronous evaluation or manual case completion.
evaluation_pausedEvaluation processing paused.Asynchronous evaluation paused.
reevaluationCase reevaluated.Case rerun in Case Management.
workflow_execution_failedEvaluation execution failed.Server errors, payload issues, or similar failures.
CASE MANAGEMENT EVENTS
decision_updateDecision updated in Case Management.Manual reviewer decision (for example, approve, decline, or review).
fraud_confirmingCase marked as fraud or non-fraud.Fraud confirmation in Case Management.
review_case_assignedCase assigned to a reviewer.Case assignment in Case Management.
review_case_unassignedCase unassigned from a reviewer.Case unassignment in Case Management.
case_status_updatedCase status updated.Status update (for example, “Awaiting documentation”).
case_notes_addedNotes added to a case.New note added in Case Management.
case_attachment_addedAttachments added to a case.New files uploaded to a case.

Common fields

FieldTypeDescription
event_idStringUnique identifier for the webhook event.
event_atString <Date-Time>RFC 3339 timestamp when the event was created.
event_typeStringType of event (see table above).
dataObjectEvent-specific payload data included in the webhook body.

Evaluation events

📘

Note:

This evaluation events are only sent for asynchronous workflows. If you haven't been explicitly told your workflows are asynchronous, assume they are synchronous.


evaluation_completed

This event can be triggered when any of the following occur:

  • An asynchronous evaluation finishes processing.
  • A manually created case completes processing.
  • Document verification (DocV) completes.
  • Any paused evaluation resumes and completes.

Payload schema

FieldTypeAlways PresentExplanation
idStringYesCustomer-provided identifier for the evaluation event (for example, user_123, application_456).
workflowStringYesWorkflow name corresponding to the evaluation use case as configured in RiskOS™.
workflow_idStringYesUnique identifier (UUID) for the workflow.
workflow_versionStringYesVersion number of the executed workflow.
eval_idStringYesRiskOS™-generated unique ID for the evaluation.
eval_start_timeString <Date-Time>YesRFC 3339 timestamp indicating when the evaluation started.
eval_end_timeString <Date-Time>YesRFC 3339 timestamp indicating when the evaluation completed.
decisionStringYesFinal decision outcome (for example, APPROVE, DECLINE, or REVIEW).
decision_atString <Date-Time>YesRFC 3339 timestamp when the decision was finalized.
statusStringYesCurrent case status (for example, OPEN, CLOSED).
sub_statusStringYesCurrent case sub-status (for example, Surveillance, Approved).
scoreNumberNoRisk score associated with the evaluation (0–100, if available).
eval_sourceStringYesSource of the evaluation (for example, API, Manual, Rerun).
evaluation_statusStringYesAlways "evaluation_completed" for this event.
environment_nameStringYesEnvironment in which the evaluation was performed (for example, Sandbox, Production).
reason_codesArray of StringsYesCodes explaining the evaluation decision.
tagsArray of StringsYesTags associated with the evaluation.
notesStringNoAdditional notes related to the evaluation.
review_queuesArray of StringsYesNames of the review queues assigned to the evaluation.
data_enrichmentsArray of ObjectsYesThird-party data enrichment results linked to the evaluation.

Example payload

{
  "event_id": "336ccd2a-b3a8-49a8-b2cc-89a4ae90feeb",
  "event_at": "2025-08-27T16:16:23.104744158Z",
  "event_type": "evaluation_completed",
  "data": {
    "id": "test-1245",
    "workflow": "consumer_onboarding",
    "workflow_id": "673dd085-3daf-4c6c-be67-d399933a9fec",
    "workflow_version": "1.0.0",
    "eval_end_time": "2025-08-27T16:16:23.098709942Z",
    "eval_id": "8770e076-f568-48a9-8201-dca13087e592",
    "eval_start_time": "2025-08-27T16:16:17.969951775Z",
    "decision": "REVIEW",
    "decision_at": "2025-08-27T16:16:23.096676037Z",
    "status": "OPEN",
    "sub_status": "Surveillance",
    "score": 39,
    "environment_name": "Sandbox",
    "tags": [
      "test"
    ],
    "eval_source": "API",
    "evaluation_status": "evaluation_completed",
    "notes": "Test Notes",
    "review_queues": [
      "Default Queue"
    ],
    "data_enrichments": [
      {
        "enrichment_endpoint": "https://example-endpoint",
        "enrichment_name": "ExampleThirdParty",
        "enrichment_provider": "ExampleProvider",
        "status_code": 200,
        "is_source_cache": false,
        "total_attempts": 1,
        "error_message": "",
        "request": {
          "example_email": "[email protected]",
          "example_name": "John Doe",
          "example_number": 21,
          "example_string": "string"
        },
        "response": {
          "example_boolean": true,
          "example_list": [
            {
              "example_number": 99,
              "example_string": "Email"
            },
            {
              "example_number": 78,
              "example_string": "SSN"
            }
          ],
          "example_string": "string"
        }
      }
    ]
  }
}

evaluation_paused

This event can be triggered when any of the following occur:

  • An asynchronous evaluation needs additional input (e.g., One-Time Passcode verification).
  • Document verification is waiting for user to upload documents.
  • Workflow requires manual intervention before proceeding.

Payload Schema

Similar to evaluation_completed, but with eval_status: "evaluation_paused" and limited data.

FieldTypeAlways PresentExplanation
idStringYesCustomer-provided identifier for the evaluation event.
workflowStringYesWorkflow name corresponding to the evaluation use case as configured in RiskOS™.
workflow_idStringYesUnique identifier (UUID) for the workflow.
workflow_versionStringYesVersion number of the executed workflow.
eval_idStringYesRiskOS™-generated unique ID for the evaluation.
eval_start_timeString <Date-Time>YesRFC 3339 timestamp indicating when the evaluation started.
eval_end_timeString <Date-Time>YesRFC 3339 timestamp indicating when the evaluation was paused.
decisionStringYesCurrent decision state for the evaluation.
decision_atString <Date-Time>YesRFC 3339 timestamp when the current decision was made.
statusStringYesCurrent case status.
sub_statusStringYesCurrent case sub-status.
eval_sourceStringYesSource of the evaluation (for example, API, Manual, Rerun).
eval_statusStringYesAlways "evaluation_paused".
environment_nameStringYesEnvironment in which the evaluation was performed (for example, Sandbox, Production).
tagsArray of StringsYesTags associated with the evaluation.
notesStringNoAdditional notes related to the evaluation.
review_queuesArray of StringsYesNames of the review queues assigned to the evaluation.
data_enrichmentsArray of ObjectsYesData enrichment results available for the evaluation.

Example payload

{
  "event_id": "336ccd2a-b3a8-49a8-b2cc-89a4ae90feeb",
  "event_at": "2025-10-22T13:04:11.468831296Z",
  "event_type": "evaluation_paused",
  "data": {
    "id": "test-1245",
    "workflow": "consumer_onboarding",
    "workflow_id": "673dd085-3daf-4c6c-be67-d399933a9fec",
    "workflow_version": "1.0.0",
    "environment_name": "Sandbox",
    "eval_end_time": "2025-10-22T12:18:35.89984723Z",
    "eval_id": "8770e076-f568-48a9-8201-dca13087e592",
    "eval_start_time": "2025-10-22T12:18:32.054994008Z",
    "decision": "REVIEW",
    "decision_at": "2023-09-14T07:46:55.956247Z",
    "status": "OPEN",
    "sub_status": "Surveillance",
    "tags": [
      "test"
    ],
    "eval_source": "API",
    "eval_status": "evaluation_paused",
    "notes": "Test Notes",
    "review_queues": [
      "Default Queue"
    ],
    "data_enrichments": [
      {
        "..."
      }
    ]
  }
}

reevaluation

This event can be triggered when any of the following occur:

  • A case is manually rerun from Case Management.
  • Workflow rules are updated and cases need re-processing.
  • Additional data becomes available and case needs fresh evaluation.

Payload schema

The payload structure is identical to [evaluation_completed](https://help.socure.com/riskosdocs/webhook-events#evaluation_completed) but with eval_source: "Rerun".


Example payload

{
  "event_id": "336ccd2a-b3a8-49a8-b2cc-89a4ae90feeb",
  "event_at": "2023-09-14T07:46:55.956522Z",
  "event_type": "reevaluation",
  "data": {
    "id": "test-1245",
    "workflow": "consumer_onboarding",
    "workflow_id": "673dd085-3daf-4c6c-be67-d399933a9fec",
    "workflow_version": "1.0.0",
    "eval_id": "8770e076-f568-48a9-8201-dca13087e592",
    "eval_at": "2023-09-14T07:46:55.956247Z",
    "decision": "REVIEW",
    "decision_at": "2023-09-14T07:46:55.956247Z",
    "status": "OPEN",
    "sub_status": "Surveillance",
    "reason_codes": [
      "test"
    ],
    "tags": [
      "test"
    ],
    "eval_source": "Rerun",
    "evaluation_status": "evaluation_completed",
    "notes": "Test Notes",
    "review_queues": [
      "Default Queue"
    ],
    "data_enrichments": [
      {
        "..."
      }
    ]
  }
}

workflow_execution_failed

Triggered when an evaluation fails to execute due to errors (for example, server errors, payload issues, etc.).


Payload schema

FieldTypeAlways PresentExplanation
idStringYesCustomer provided identifier for the evaluation event like application_id.
workflowStringYesWorkflow name corresponding to the evaluation use-case as configured in the RiskOS™ Dashboard.
eval_idStringYesRiskOS™ generated unique ID for the evaluation.
workflow_versionStringYesVersion number associated with the executed workflow.
timestampString <Date-Time>YesRFC 3339 date-time string received in the request payload.
hostStringYesInternal host that handled the evaluation.
error_messageStringYesError message describing the reason for the failure.

Example payload

{
  "event_id": "d18f58ef-1be3-4c8d-baf6-7f6ba3517514",
  "event_at": "2023-09-14T07:46:55.955755Z",
  "event_type": "workflow_execution_failed",
  "data": {
    "id": "d2931d8e-6093-449a-9d9c-90db12acc2bb",
    "workflow": "consumer_onboarding",
    "eval_id": "577fad68-90e7-462f-8e47-8c8e015beca8",
    "workflow_version": "1.0.0",
    "timestamp": "2023-09-14T07:46:55.956194Z",
    "host": "10.12.0.1",
    "error_message": "binding failed for payload"
  }
}

Case Management events

decision_update

Triggered when a reviewer makes a decision change in Case Management (for example, approving a case that was in manual review).


Payload schema

FieldTypeAlways PresentExplanation
idStringYesCustomer-provided identifier for the evaluation event (for example, application_id).
workflowStringYesWorkflow name corresponding to the evaluation use case as configured in the RiskOS™ Dashboard.
eval_idStringYesRiskOS™-generated unique ID for the evaluation.
reviewer_idStringYesEmail address of the reviewer.
decisionStringYesDecision outcome (for example, APPROVE, DECLINE, or REVIEW).
decision_atString <Date-Time>YesRFC 3339 timestamp when the decision was made.
statusStringYesNew case status.
sub_statusStringYesNew case sub-status.
decision_queueStringYesName of the review queue from which the decision was made.
reason_codesArray of StringsYesReason codes associated with the decision.
tagsArray of StringsYesTags associated with the decision.
notesStringNoNotes associated with the decision update.
attachmentsArray of StringsNoNames of the attachments added with the decision update.

Example payload

{
  "event_id": "7141da2d-7c41-4330-b1e0-905a2119e2fa",
  "event_at": "2023-09-14T07:46:55.956011Z",
  "event_type": "decision_update",
  "data": {
    "id": "787d4df8-7d17-47fe-bbce-668ba19b7b1d",
    "workflow": "consumer_onboarding",
    "eval_id": "d3a15e54-ed6b-43f5-8fea-8f6370cc89d9",
    "reviewer_id": "[email protected]",
    "decision": "DECLINE",
    "decision_at": "2023-09-14T07:46:55.955937Z",
    "status": "CLOSED",
    "sub_status": "Decline",
    "decision_queue": "Default Queue",
    "environment_name": "Sandbox",
    "reason_codes": [
      "test"
    ],
    "tags": [
      "test"
    ],
    "notes": "Test notes",
    "attachments": [
      "test_webhook.txt"
    ]
  }
}

review_case_assigned

Triggered when a case is assigned to a reviewer in Case Management (for example, a reviewer assigned a case to themselves or to a peer reviewer).


Payload schema

FieldTypeAlways PresentExplanation
idStringYesCustomer provided identifier for the evaluation event like application_id.
workflowStringYesWorkflow name corresponding to the evaluation use-case as configured in RiskOS™ Dashboard.
eval_idStringYesRiskOS™ generated unique ID for the evaluation.
reviewer_idStringYesEmail ID of the reviewer to whom the case is assigned.
queue_nameStringYesName of the review queue from which the case assignment is performed.
updated_byStringYesEmail ID of the reviewer by whom the case assignment is performed.
updated_atString <Date-Time>YesRFC 3339 date-time string at which the case assignment is performed.

Example payload

{
  "event_id": "794cdb80-7aa4-4263-9001-89a8ed40805c",
  "event_at": "2023-09-14T07:46:55.955656Z",
  "event_type": "review_case_assigned",
  "data": {
    "id": "abc-test-123",
    "workflow": "consumer_onboarding",
    "eval_id": "a21a6886-aad0-46aa-992b-32d790f553b8",
    "reviewer_id": "[email protected]",
    "queue_name": "Default Queue",
    "updated_at": "2023-09-14T07:46:55.955506Z",
    "updated_by": "[email protected]",
    "environment_name": "Sandbox"
  }
}

review_case_unassigned

Triggered when a case is unassigned from a reviewer in Case Management (for example, a reviewer un-assigned from a peer reviewer).


Payload schema

FieldTypeAlways PresentExplanation
idStringYesCustomer provided identifier for the evaluation event like application_id.
workflowStringYesWorkflow name corresponding to the evaluation use-case as configured in RiskOS™ Dashboard.
eval_idStringYesRiskOS™ generated unique ID for the evaluation.
reviewer_idStringYesEmail ID of the reviewer from whom the case is unassigned.
queue_nameStringYesName of the review queue from which the case unassignment is performed.
updated_byStringYesEmail ID of the reviewer by whom the case unassignment is performed.
updated_atString <Date-Time>YesRFC 3339 date-time string at which the case unassignment is performed.

Example payload

{
  "event_id": "794cdb80-7aa4-4263-9001-89a8ed40805c",
  "event_at": "2023-09-14T07:46:55.955656Z",
  "event_type": "review_case_unassigned",
  "data": {
    "id": "abc-test-123",
    "workflow": "consumer_onboarding",
    "eval_id": "a21a6886-aad0-46aa-992b-32d790f553b8",
    "reviewer_id": "[email protected]",
    "queue_name": "Default Queue",
    "updated_at": "2023-09-14T07:46:55.955506Z",
    "updated_by": "[email protected]",
    "environment_name": "Sandbox"
  }
}


case_status_updated

Triggered when a case status is updated in Case Management (for example, a reviewer makes a manual decision and moves a case into another status, such as "Awaiting documentation").


Payload schema

FieldTypeAlways PresentExplanation
idStringYesCustomer provided identifier for the evaluation event like application_id.
workflowStringYesWorkflow name corresponding to the evaluation use-case as configured in RiskOS™ Dashboard.
eval_idStringYesRiskOS™ generated unique ID for the evaluation.
reviewer_idStringYesEmail ID of the reviewer of the case.
decisionStringYesDecision.
decision_atString <Date-Time>YesRFC 3339 date-time string at which the decision was taken.
statusStringYesThe new status of the case.
sub_statusStringYesThe new sub-status of the case.
updated_atString <Date-Time>YesRFC 3339 date-time string at which the status update occurred. Same as decision_at in a Case Status Update.
decision_queueStringYesName of the review queue from which the decision was taken.
reason_codesArray of StringsYesReason codes for the status update.
tagsArray of StringsYesTags for the status update.
notesStringNoNotes associated with the status update.
attachmentsArray of StringsNoNames of the attachments added with the status update.

Example payload

{
  "event_id": "82ef8e08-24b4-42c6-9e27-f7b9aa892c58",
  "event_at": "2023-09-14T07:46:55.956104Z",
  "event_type": "case_status_updated",
  "data": {
    "id": "abc-test-123",
    "workflow": "consumer_onboarding",
    "eval_id": "d3a15e54-ed6b-43f5-8fea-8f6370cc89d9",
    "reviewer_id": "[email protected]",
    "decision": "REVIEW",
    "decision_at": "2023-09-14T07:46:55.956018Z",
    "status": "OPEN",
    "sub_status": "Awaiting Documentation",
    "updated_at": "2023-09-14T07:46:55.956018Z",
    "decision_queue": "Default Queue",
    "environment_name": "Sandbox",
    "reason_codes": [
      "test"
    ],
    "tags": [
      "test"
    ],
    "notes": "test webhook",
    "attachments": [
      "test_webhook.txt"
    ]
  }
}

case_notes_added

Triggered when notes are added to a case in Case Management (for example, a reviewer adds a new note to a case. Reviewer may also add attachments along with the case notes). A reviewer may also add attachments along with the case notes.


Payload schema

FieldTypeAlways PresentExplanation
idStringYesCustomer provided identifier for the evaluation event like application_id.
workflowStringYesWorkflow name corresponding to the evaluation use-case as configured in RiskOS™ Dashboard.
eval_idStringYesRiskOS™ generated unique ID for the evaluation.
reviewer_idStringYesEmail ID of the reviewer of the case.
updated_atString <Date-Time>YesRFC 3339 date-time string at which the status update was performed. Same as decision_at in a Case Status Update.
notesStringYesNotes associated with the status update.
attachmentsArray of StringsNoNames of the attachments added with the status update.

Example payload

{
  "event_id": "17152e9c-609f-4dd3-b516-1cf094464b1c",
  "event_at": "2023-09-14T07:46:55.955929Z",
  "event_type": "case_notes_added",
  "data": {
    "id": "abc-test-123",
    "workflow": "consumer_onboarding",
    "eval_id": "449edcec-9423-4725-8e5f-c7dfd6a9b827",
    "reviewer_id": "[email protected]",
    "updated_at": "2023-09-14T07:46:55.955872Z",
    "notes": "test webhook",
    "environment_name": "Sandbox",
    "attachments": [
      "test_webhook.txt"
    ]
  }
}

case_attachment_added

Triggered when attachments are added to a case in case management (for example, a reviewer adds new attachments to a case).


Payload schema

FieldTypeAlways PresentExplanation
idStringYesCustomer provided identifier for the evaluation event like application_id.
workflowStringYesWorkflow name corresponding to the evaluation use-case as configured in RiskOS™ Dashboard.
eval_idStringYesRiskOS™ generated unique ID for the evaluation.
reviewer_idStringYesEmail ID of the reviewer of the case.
updated_atString <Date-Time>YesRFC 3339 date-time string at which the status update was performed. Same as decision_at in a Case Status Update.
attachmentsArray of StringsYesNames of the attachments added with the status update.

Example payload

{
  "event_id": "d18f58ef-1be3-4c8d-baf6-7f6ba3517514",
  "event_at": "2023-09-14T07:46:55.955755Z",
  "event_type": "case_attachment_added",
  "data": {
    "id": "abc-test-123",
    "workflow": "consumer_onboarding",
    "eval_id": "aafe72aa-2921-40f4-a72c-7eedc9d62c4b",
    "reviewer_id": "[email protected]",
    "updated_at": "2023-09-14T07:46:55.955699Z",
    "environment_name": "Sandbox",
    "attachments": [
      "test_webhook.txt"
    ]
  }
}

fraud_confirming

Triggered when a case is marked as fraud or non-fraud in case management (for example, a reviewer marks a case fraud or non-fraud).


Payload schema

FieldTypeAlways PresentExplanation
idStringYesCustomer provided identifier for the evaluation event like application_id.
workflowStringYesWorkflow name corresponding to the evaluation use-case as configured in RiskOS™ Dashboard.
fraud_labelStringYesFraud label: either fraud or non-fraud.
fraud_typeStringNoUser-defined fraud types.
notesStringNoAdditional notes to be added when marking a case as fraud or non-fraud.
tagsArray of StringsNoTags associated with the fraud confirmation.
recorded_byStringNoFraud response team member who recorded the fraud at the customer end.
recorded_atString <Date-Time>NoRFC 3339 date-time string when the fraud feedback was recorded at the customer end.
created_byStringYesFraud response team member who recorded the fraud in RiskOS™.
created_atString <Date-Time>YesRFC 3339 date-time string when the fraud feedback was created in RiskOS™.

Example payload

{
  "event_id": "624102b9-603a-4505-8bd3-121aafb2bd60",
  "event_at": "2023-09-14T07:46:55.956183Z",
  "event_type": "fraud_confirming",
  "data": {
    "id": "547ff93f-43d4-46dc-bc10-39d3011f62e9",
    "workflow": "consumer_onboarding",
    "fraud_label": "fraud",
    "fraud_type": "synthetic",
    "notes": "Dummy confirmed fraud for testing",
    "tags": [
      "test"
    ],
    "recorded_by": "[email protected]",
    "environment_name": "Sandbox",
    "recorded_at": "2023-09-14T07:46:55.956111Z",
    "created_by": "[email protected]",
    "created_at": "2023-09-14T07:46:55.956111Z"
  }
}