Case management webhooks
Monitor AML and transaction cases in real-time with webhooks.
This section lists a collection of webhooks related to the legacy case management workflow only.
ImportantCurrently, we provide two distinct workflows for AML case management — the new workflow and the legacy one. To learn more about these flows, refer to this article.
| Webhook | Description |
|---|---|
| kytCaseCreated | New case has been created in the Sumsub system. |
| kytCaseReviewed | Case has been reviewed. |
| kytCaseStatusChanged | Case status has been changed in the Sumsub system. |
| amlCaseApproved | AML case associated with the transaction was approved. No suspicious matches were found in the Sumsub databases. |
| amlCaseRejected | AML case associated with the transaction was rejected due to the true positive matches found in the Sumsub database. |
| amlCaseOnHold | Based on the rules you applied, the AML case was put on hold and queued for a manual review by the dedicated expert. |
| kytCaseV2Created | New case has been created in the Sumsub system for Case Management 2.0. |
| kytCaseV2BlueprintChanged | Case blueprint has been changed in the Sumsub system for Case Management 2.0. |
| kytCaseV2StatusChanged | Case status has been changed in the Sumsub system for Case Management 2.0. |
| kytCaseV2PriorityChanged | Case priority has been changed in the Sumsub system for Case Management 2.0. |
NotePersonal applicant information is not available in the webhook payload. To get this information, use this API method.
TipIf you are not receiving webhooks, try to check your endpoints using SSL Labs or Docker.
kytCaseCreated
The following example indicates that a new case has been created in the Sumsub system.
{
"applicantId" : "670f85df0578a72bf1131856",
"correlationId" : "da9564f4437c9fcd059f99e0b94fa04d",
"sandboxMode" : true,
"type" : "kytCaseCreated",
"reviewStatus" : "init",
"createdAt" : "2024-11-18 10:49:47+0000",
"createdAtMs" : "2024-11-18 10:49:47.918",
"kytCaseId" : "670f85e00578a72bf113189d"
}| Field | Type | Description |
|---|---|---|
applicantId | String | Unique identifier of the applicant. |
correlationId | String | A shared identifier assigned to the originating request and propagated across all related events. Multiple events may share the same correlationId when triggered by the same operation. |
sandboxMode | Boolean | Set to true if the webhook was sent from Sandbox . |
type | String | Webhook type. In this context, it is kytCaseCreated. |
reviewStatus | String | Current status of the case (e.g., init, queued, completed, onHold). |
createdAt | Date | Date and time when the webhook was created (format yyyy-MM-dd HH:mm:ss+0000, e.g. 2021-05-14 16:00:25+0000) in UTC. |
createdAtMs | Date | Date and time when the webhook was created, considering milliseconds (format yyyy-MM-dd HH:mm:ss.fff, e.g. 2021-05-14 16:00:25.032) in UTC. |
kytCaseId | String | Unique identifier of the case on the Sumsub side. |
kytCaseReviewed
The following example indicates that the case has been reviewed.
{
"applicantId" : "670f85e10578a72bf1131906",
"correlationId" : "da9564f4437c9fcd059f99e0b94fa04d",
"sandboxMode" : true,
"type" : "kytCaseReviewed",
"reviewResult" : {
"reviewAnswer" : "RED",
"reviewRejectType" : "FINAL"
},
"reviewStatus" : "completed",
"createdAt" : "2024-11-18 10:43:45+0000",
"createdAtMs" : "2024-11-18 10:43:45.068",
"kytCaseId" : "670f85e20578a72bf1131950"
}| Field | Type | Description |
|---|---|---|
applicantId | String | Unique identifier of the applicant. |
correlationId | String | A shared identifier assigned to the originating request and propagated across all related events. Multiple events may share the same correlationId when triggered by the same operation. |
sandboxMode | Boolean | Set to true if the webhook was sent from Sandbox . |
type | String | Webhook type. In this context, it is kytCaseReviewed. |
reviewResult | Object | Contains extra information on the case verification result, such as reviewAnswer indicating the result and reviewRejectType if the case was rejected. |
reviewAnswer | String | Explains the review result:
|
reviewRejectType | String | Indicates the type of rejection:
For more details, see Temporary rejection and Final rejection clarification. |
reviewStatus | String | Current status of the case (e.g., init, queued, completed, onHold). |
createdAt | Date | Date and time when the webhook was created (format yyyy-MM-dd HH:mm:ss+0000, e.g. 2021-05-14 16:00:25+0000) in UTC. |
createdAtMs | Date | Date and time when the webhook was created, considering milliseconds (format yyyy-MM-dd HH:mm:ss.fff, e.g. 2021-05-14 16:00:25.032) in UTC. |
kytCaseId | String | Unique identifier of the case on the Sumsub side. |
kytCaseStatusChanged
The following example indicates that the status of the case has been changed.
{
"applicantId" : "670f85e10578a72bf1131906",
"correlationId" : "da9564f4437c9fcd059f99e0b94fa04d",
"sandboxMode" : true,
"type" : "kytCaseStatusChanged",
"reviewResult" : {
"reviewAnswer" : "RED",
"reviewRejectType" : "FINAL"
},
"reviewStatus" : "completed",
"createdAt" : "2024-11-18 10:42:42+0000",
"createdAtMs" : "2024-11-18 10:42:42.720",
"kytCaseId" : "670f85e20578a72bf1131950"
}| Field | Type | Description |
|---|---|---|
applicantId | String | Unique identifier of the applicant. |
correlationId | String | A shared identifier assigned to the originating request and propagated across all related events. Multiple events may share the same correlationId when triggered by the same operation. |
sandboxMode | Boolean | Set to true if the webhook was sent from Sandbox . |
type | String | Webhook type. In this context, it is kytCaseStatusChanged. |
reviewResult | Object | Contains extra information on the case verification result, such as reviewAnswer indicating the result and reviewRejectType if the case was rejected. |
reviewAnswer | String | Explains the review result:
|
reviewRejectType | String | Indicates the type of rejection:
For more details, see Temporary rejection and Final rejection clarification. |
reviewStatus | String | Current status of the case (e.g., init, queued, completed, onHold). |
createdAt | Date | Date and time when the webhook was created (format yyyy-MM-dd HH:mm:ss+0000, e.g. 2021-05-14 16:00:25+0000) in UTC. |
createdAtMs | Date | Date and time when the webhook was created, considering milliseconds (format yyyy-MM-dd HH:mm:ss.fff, e.g. 2021-05-14 16:00:25.032) in UTC. |
kytCaseId | String | Unique identifier of the case on the Sumsub side. |
amlCaseApproved
{
"correlationId": "26e4b45a9a0e3e8715de1b8dba0851fa",
"sandboxMode": false,
"type": "amlCaseApproved",
"reviewResult": {
"reviewAnswer": "GREEN"
},
"reviewStatus": "completed",
"createdAtMs": "2023-08-30 10:03:20.907",
"amlCaseId": "64baa015ebc52e736d147e8c"
}| Field | Type | Description |
|---|---|---|
correlationId | String | A shared identifier assigned to the originating request and propagated across all related events. Multiple events may share the same correlationId when triggered by the same operation. |
sandboxMode | Boolean | Set to true if the webhook was sent from Sandbox. |
type | String | Webhook type. In this context, it is amlCaseApproved. |
reviewResult | Object | Contains extra information on the transaction verification results. |
reviewStatus | String | Indicates the current transaction status (init, onHold, completed). |
createdAtMs | Date | Date and time when the webhook was created, considering milliseconds (format yyyy-MM-dd HH:mm:ss.fff, e.g. 2021-05-14 16:00:25.032) in UTC. |
amlCaseId | String | Unique identifier of the AML case. |
amlCaseRejected
{
"correlationId": "f1510d9aee2f7d30c7eb33cb59f24c3c",
"sandboxMode": false,
"type": "amlCaseRejected",
"reviewResult": {
"reviewAnswer": "RED"
},
"reviewStatus": "completed",
"createdAtMs": "2023-08-30 10:02:36.496",
"amlCaseId": "63652066f11034000121a52b"
}| Field | Type | Description |
|---|---|---|
correlationId | String | A shared identifier assigned to the originating request and propagated across all related events. Multiple events may share the same correlationId when triggered by the same operation. |
sandboxMode | Boolean | Set to true if the webhook was sent from Sandbox. |
type | String | Webhook type. In this context, it is amlCaseRejected. |
reviewResult | Object | Contains extra information on the transaction verification results. |
reviewStatus | String | Indicates the current transaction status (init, onHold, completed). |
createdAtMs | Date | Date and time when the webhook was created, considering milliseconds (format yyyy-MM-dd HH:mm:ss.fff, e.g. 2021-05-14 16:00:25.032) in UTC. |
amlCaseId | String | Unique identifier of the AML case. |
amlCaseOnHold
{
"correlationId":"da9564f4437c9fcd059f99e0b94fa04d",
"sandboxMode":false,
"type":"amlCaseOnHold",
"reviewResult":{
"reviewAnswer":"YELLOW"
},
"reviewStatus":"onHold",
"createdAtMs":"2023-08-30 09:59:52.864",
"amlCaseId":"63d7d1bac92045720c5e354a"
}| Field | Type | Description |
|---|---|---|
correlationId | String | A shared identifier assigned to the originating request and propagated across all related events. Multiple events may share the same correlationId when triggered by the same operation. |
sandboxMode | Boolean | Set to true if the webhook was sent from Sandbox. |
type | String | Webhook type. In this context, it is amlCaseOnHold. |
reviewResult | Object | Contains extra information on the transaction verification results. |
reviewStatus | String | Indicates the current transaction status (init, onHold, completed). |
createdAtMs | Date | Date and time when the webhook was created, considering milliseconds (format yyyy-MM-dd HH:mm:ss.fff, e.g. 2021-05-14 16:00:25.032) in UTC. |
amlCaseId | String | Unique identifier of the AML case. |
kytCaseV2Created
The following example indicates that a new case has been created in the Sumsub system.
{
"applicantId": "670f85df0578a72bf1131856",
"correlationId": "da9564f4437c9fcd059f99e0b94fa04d",
"sandboxMode": true,
"type": "kytCaseV2Created",
"reviewStatus": "open",
"kytCaseStage": "review",
"kytCaseBlueprintId": "6717a1b20578a72bf11340bb",
"kytCasePriority": "medium",
"createdAt": "2024-11-18 10:49:47+0000",
"createdAtMs": "2024-11-18 10:49:47.918",
"kytCaseId": "670f85e00578a72bf113189d"
}| Field | Type | Description |
|---|---|---|
applicantId | String | Unique identifier of the applicant. |
correlationId | String | A shared identifier assigned to the originating request and propagated across all related events. Multiple events may share the same correlationId when triggered by the same operation. |
sandboxMode | Boolean | Set to true if the webhook was sent from Sandbox. |
type | String | Webhook type. In this context, it is kytCaseV2Created. |
reviewStatus | String | Indicates the current transaction status (open, awaitingUser, resolvedFalsePositive, resolvedPotentialThreat). |
kytCaseStage | String | [Configurable] Current stage of the case. |
kytCaseBlueprintId | String | Unique identifier of the case blueprint. |
kytCasePriority | String | Current priority of the KYT case, for example, low, medium, or high. |
createdAt | Date | Date and time when the webhook was created (format yyyy-MM-dd HH:mm:ss+0000, e.g. 2021-05-14 16:00:25+0000) in UTC. |
createdAtMs | Date | Date and time when the webhook was created, considering milliseconds (format yyyy-MM-dd HH:mm:ss.fff, e.g. 2021-05-14 16:00:25.032) in UTC. |
kytCaseId | String | Unique identifier of the case on the Sumsub side. |
kytCaseV2BlueprintChanged
The following example indicates that a case blueprint has been changed in the Sumsub system.
{
"applicantId": "670f85df0578a72bf1131856",
"correlationId": "da9564f4437c9fcd059f99e0b94fa04d",
"sandboxMode": true,
"type": "kytCaseV2BlueprintChanged",
"reviewStatus": "open",
"kytCaseStage": "review",
"kytCaseBlueprintId": "6717a1b20578a72bf11340bb",
"kytCasePriority": "medium",
"createdAt": "2024-11-18 10:49:47+0000",
"createdAtMs": "2024-11-18 10:49:47.918",
"kytCaseId": "670f85e00578a72bf113189d"
}| Field | Type | Description |
|---|---|---|
applicantId | String | Unique identifier of the applicant. |
correlationId | String | A shared identifier assigned to the originating request and propagated across all related events. Multiple events may share the same correlationId when triggered by the same operation. |
sandboxMode | Boolean | Set to true if the webhook was sent from Sandbox. |
type | String | Webhook type. In this context, it is kytCaseV2BlueprintChanged. |
reviewStatus | String | Indicates the current transaction status (open, awaitingUser, resolvedFalsePositive, resolvedPotentialThreat). |
kytCaseStage | String | [Configurable] Current stage of the case. |
kytCaseBlueprintId | String | Unique identifier of the case blueprint. |
kytCasePriority | String | Current priority of the KYT case, for example, low, medium, or high. |
createdAt | Date | Date and time when the webhook was created (format yyyy-MM-dd HH:mm:ss+0000, e.g. 2021-05-14 16:00:25+0000) in UTC. |
createdAtMs | Date | Date and time when the webhook was created, considering milliseconds (format yyyy-MM-dd HH:mm:ss.fff, e.g. 2021-05-14 16:00:25.032) in UTC. |
kytCaseId | String | Unique identifier of the case on the Sumsub side. |
kytCaseV2StatusChanged
The following example indicates that a case status has been changed in the Sumsub system.
{
"applicantId": "670f85df0578a72bf1131856",
"correlationId": "da9564f4437c9fcd059f99e0b94fa04d",
"sandboxMode": true,
"type": "kytCaseV2StatusChanged",
"reviewStatus": "awaitingUser",
"kytCaseStage": "review",
"kytCaseBlueprintId": "6717a1b20578a72bf11340aa",
"kytCasePriority": "medium",
"createdAt": "2024-11-18 10:49:47+0000",
"createdAtMs": "2024-11-18 10:49:47.918",
"kytCaseId": "670f85e00578a72bf113189d"
}{
"applicantId": "670f85df0578a72bf1131856",
"correlationId": "da9564f4437c9fcd059f99e0b94fa04d",
"sandboxMode": true,
"type": "kytCaseV2StatusChanged",
"reviewStatus": "resolvedFalsePositive",
"kytCaseStage": "review",
"kytCaseBlueprintId": "6717a1b20578a72bf11340aa",
"kytCasePriority": "medium",
"createdAt": "2024-11-18 10:49:47+0000",
"createdAtMs": "2024-11-18 10:49:47.918",
"kytCaseId": "670f85e00578a72bf113189d"
}{
"applicantId": "670f85df0578a72bf1131856",
"correlationId": "da9564f4437c9fcd059f99e0b94fa04d",
"sandboxMode": true,
"type": "kytCaseV2StatusChanged",
"reviewStatus": "resolvedPotentialThreat",
"kytCaseStage": "review",
"kytCaseBlueprintId": "6717a1b20578a72bf11340aa",
"kytCasePriority": "medium",
"createdAt": "2024-11-18 10:49:47+0000",
"createdAtMs": "2024-11-18 10:49:47.918",
"kytCaseId": "670f85e00578a72bf113189d"
}{
"applicantId": "670f85df0578a72bf1131856",
"correlationId": "da9564f4437c9fcd059f99e0b94fa04d",
"sandboxMode": true,
"type": "kytCaseV2StatusChanged",
"reviewStatus": "open",
"kytCaseStage": "review",
"kytCaseBlueprintId": "6717a1b20578a72bf11340aa",
"kytCasePriority": "medium",
"createdAt": "2024-11-18 10:49:47+0000",
"createdAtMs": "2024-11-18 10:49:47.918",
"kytCaseId": "670f85e00578a72bf113189d"
}| Field | Type | Description |
|---|---|---|
applicantId | String | Unique identifier of the applicant. |
correlationId | String | A shared identifier assigned to the originating request and propagated across all related events. Multiple events may share the same correlationId when triggered by the same operation. |
sandboxMode | Boolean | Set to true if the webhook was sent from Sandbox. |
type | String | Webhook type. In this context, it is kytCaseV2StatusChanged. |
reviewStatus | String | Indicates the current transaction status (open, awaitingUser, resolvedFalsePositive, resolvedPotentialThreat).Note that webhook payload does not indicate whether a case was reopened from resolved or newly opened. In both cases, the payload contains the same reviewStatus: "open" value. |
kytCaseStage | String | [Configurable] Current stage of the case. |
kytCaseBlueprintId | String | Unique identifier of the case blueprint. |
kytCasePriority | String | Current priority of the KYT case, for example, low, medium, or high. |
createdAt | Date | Date and time when the webhook was created (format yyyy-MM-dd HH:mm:ss+0000, e.g. 2021-05-14 16:00:25+0000) in UTC. |
createdAtMs | Date | Date and time when the webhook was created, considering milliseconds (format yyyy-MM-dd HH:mm:ss.fff, e.g. 2021-05-14 16:00:25.032) in UTC. |
kytCaseId | String | Unique identifier of the case on the Sumsub side. |
kytCaseV2PriorityChanged
The following example indicates that a case priority has been changed in the Sumsub system.
{
"applicantId": "670f85df0578a72bf1131856",
"correlationId": "da9564f4437c9fcd059f99e0b94fa04d",
"sandboxMode": true,
"type": "kytCaseV2PriorityChanged",
"reviewStatus": "open",
"kytCaseStage": "review",
"kytCaseBlueprintId": "6717a1b20578a72bf11340aa",
"kytCasePriority": "high",
"createdAt": "2024-11-18 10:49:47+0000",
"createdAtMs": "2024-11-18 10:49:47.918",
"kytCaseId": "670f85e00578a72bf113189d"
}| Field | Type | Description |
|---|---|---|
applicantId | String | Unique identifier of the applicant. |
correlationId | String | A shared identifier assigned to the originating request and propagated across all related events. Multiple events may share the same correlationId when triggered by the same operation. |
sandboxMode | Boolean | Set to true if the webhook was sent from Sandbox. |
type | String | Webhook type. In this context, it is kytCaseV2PriorityChanged. |
reviewStatus | String | Indicates the current transaction status (open, awaitingUser, resolvedFalsePositive, resolvedPotentialThreat). |
kytCaseStage | String | [Configurable] Current stage of the case. |
kytCaseBlueprintId | String | Unique identifier of the case blueprint. |
kytCasePriority | String | Current priority of the KYT case, for example, low, medium, or high. |
createdAt | Date | Date and time when the webhook was created (format yyyy-MM-dd HH:mm:ss+0000, e.g. 2021-05-14 16:00:25+0000) in UTC. |
createdAtMs | Date | Date and time when the webhook was created, considering milliseconds (format yyyy-MM-dd HH:mm:ss.fff, e.g. 2021-05-14 16:00:25.032) in UTC. |
kytCaseId | String | Unique identifier of the case on the Sumsub side. |
Updated 14 days ago