Cases

Available webhook types: case.created, case.updated

Here's a JSON Schema that describes the available cases webhooks

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Case Audit Event Schemas",
  "description": "JSON schemas for Case audit events (Created and Updated)",
  "definitions": {
    "CasePriority": {
      "type": "string",
      "enum": ["LOW", "MEDIUM", "HIGH"],
      "description": "Priority level of the case"
    },
    "CaseCategory": {
      "type": "string",
      "enum": [
        "KYC",
        "KYB", 
        "TRANSACTION_MONITORING",
        "ONCHAIN_TRANSACTION_MONITORING",
        "SCREENING",
        "FRAUD",
        "PERIODIC_REVIEW",
        "EDD",
        "OTHER"
      ],
      "description": "Category or type of the case"
    },
    "CaseStatus": {
      "type": "string",
      "enum": [
        "NEW",
        "UNDER_INVESTIGATION",
        "PENDING_EDD",
        "PENDING_RFI",
        "PENDING_REVIEW",
        "CLOSED_DISMISSED",
        "CLOSED_ESCALATION_TO_SAR"
      ],
      "description": "Current status of the case"
    },
    "AssociatedAlertDto": {
      "type": "object",
      "description": "Alert associated with the case",
      "required": ["id"],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "The ID of the alert",
          "example": "123e4567-e89b-12d3-a456-426614174000"
        },
        "referenceId": {
          "type": "string",
          "description": "The reference ID of the alert",
          "example": "AL-123"
        }
      }
    },
    "AssociatedClientDto": {
      "type": "object", 
      "description": "Client associated with the case",
      "required": ["id"],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "The ID of the client",
          "example": "123e4567-e89b-12d3-a456-426614174000"
        },
        "referenceId": {
          "type": "string",
          "description": "The reference ID of the client",
          "example": "CLI-2024-9012"
        }
      }
    },
    "AssociatedTransactionDto": {
      "type": "object",
      "description": "Transaction associated with the case", 
      "required": ["id"],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "The ID of the transaction",
          "example": "123e4567-e89b-12d3-a456-426614174000"
        },
        "referenceId": {
          "type": "string",
          "description": "The reference ID of the transaction",
          "example": "TXN-2024-5678"
        }
      }
    },
    "CaseStatusData": {
      "type": "object",
      "description": "Case status history entry",
      "required": ["status", "evaluatedAt"],
      "properties": {
        "status": {
          "$ref": "#/definitions/CaseStatus"
        },
        "reason": {
          "type": "string",
          "description": "Reason for the status change",
          "example": "Additional documentation required from client"
        },
        "subStatus": {
          "type": "string",
          "description": "Sub-status providing additional context",
          "example": "AWAITING_DOCUMENTS"
        },
        "evaluatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "Timestamp when the status was evaluated",
          "example": "2024-01-15T10:30:00.000Z"
        },
        "evaluatedBy": {
          "type": "string",
          "description": "ID of the user who evaluated the status",
          "example": "user_12345"
        }
      }
    },
    "CaseInvestigationData": {
      "type": "object",
      "description": "Investigation data and notes for the case",
      "required": ["lastEditedAt", "lastEditorId"],
      "properties": {
        "content": {
          "type": "string",
          "description": "Investigation content and notes",
          "example": "Client provided additional KYC documents. Verified identity through passport and utility bill. No adverse findings in background check."
        },
        "nickname": {
          "type": "string", 
          "description": "Nickname or alias for the investigation",
          "example": "High-Risk Client Review"
        },
        "lastEditedAt": {
          "type": "string",
          "format": "date-time",
          "description": "Timestamp of the last edit",
          "example": "2024-01-15T14:22:30.000Z"
        },
        "lastEditorId": {
          "type": "string",
          "description": "ID of the user who last edited the investigation",
          "example": "analyst_67890"
        }
      }
    },
    "UpdateCaseStatusDto": {
      "type": "object",
      "description": "Status update data for cases",
      "required": ["status"],
      "properties": {
        "status": {
          "$ref": "#/definitions/CaseStatus"
        },
        "reason": {
          "type": "string",
          "description": "Reason for the status change",
          "example": "Investigation completed successfully"
        },
        "subStatus": {
          "type": "string",
          "description": "Sub-status providing additional context",
          "example": "CLEARED"
        }
      }
    },
    "UpdateCaseInvestigationDto": {
      "type": "object",
      "description": "Investigation update data for cases",
      "properties": {
        "content": {
          "type": "string",
          "description": "Investigation content and notes",
          "example": "Updated investigation notes after client interview"
        },
        "nickname": {
          "type": "string",
          "description": "Nickname or alias for the investigation", 
          "example": "Enhanced Review Phase 2"
        }
      }
    },
    "CaseDto": {
      "type": "object",
      "description": "Complete Case entity",
      "required": [
        "id",
        "createdAt",
        "updatedAt",
        "priority",
        "category", 
        "reviewersIds",
        "statusHistory",
        "alerts",
        "transactions",
        "clients"
      ],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "Unique identifier for the case",
          "example": "123e4567-e89b-12d3-a456-426614174000"
        },
        "referenceId": {
          "type": "string",
          "description": "External reference ID for the case",
          "example": "REF-2024-001234"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "Timestamp when the case was created",
          "example": "2024-01-10T09:15:00.000Z"
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "Timestamp when the case was last updated",
          "example": "2024-01-15T16:45:30.000Z"
        },
        "attachmentIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Array of attachment IDs associated with the case",
          "example": ["att_file1234", "att_file5678", "att_file9012"]
        },
        "priority": {
          "$ref": "#/definitions/CasePriority"
        },
        "category": {
          "$ref": "#/definitions/CaseCategory"
        },
        "assigneeId": {
          "type": "string",
          "description": "ID of the user assigned to the case",
          "example": "analyst_12345"
        },
        "reviewersIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Array of reviewer user IDs",
          "example": ["reviewer_111", "reviewer_222", "supervisor_333"]
        },
        "description": {
          "type": "string",
          "description": "Description or summary of the case",
          "example": "KYC review required for high-value client due to inconsistencies in provided documentation and elevated risk score."
        },
        "statusHistory": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/CaseStatusData"
          },
          "description": "Historical record of case status changes"
        },
        "alerts": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AssociatedAlertDto"
          },
          "description": "Alerts associated with this case"
        },
        "transactions": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AssociatedTransactionDto"
          },
          "description": "Transactions associated with this case"
        },
        "clients": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/AssociatedClientDto"
          },
          "description": "Clients associated with this case"
        },
        "investigation": {
          "$ref": "#/definitions/CaseInvestigationData"
        }
      }
    },
    "UpdateCaseDto": {
      "type": "object",
      "description": "Fields that can be updated in a case",
      "properties": {
        "referenceId": {
          "type": "string",
          "description": "External reference ID for the case",
          "example": "REF-2024-001234"
        },
        "attachmentIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Array of attachment IDs associated with the case",
          "example": ["att_file1234", "att_file5678"]
        },
        "priority": {
          "$ref": "#/definitions/CasePriority"
        },
        "category": {
          "$ref": "#/definitions/CaseCategory"
        },
        "reviewersIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Array of reviewer user IDs",
          "example": ["user_12345", "user_67890"]
        },
        "description": {
          "type": "string",
          "description": "Description or summary of the case",
          "example": "Updated case description with new findings"
        },
        "assigneeId": {
          "type": "string",
          "description": "ID of the user assigned to the case",
          "example": "user_12345"
        },
        "alertsIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "IDs or Reference IDs of the alerts associated with the case",
          "example": ["alert_12345", "alert_67890"]
        },
        "transactionsIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "IDs or Reference IDs of the transactions associated with the case",
          "example": ["transaction_12345", "transaction_67890"]
        },
        "clientsIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "IDs or Reference IDs of the clients associated with the case",
          "example": ["client_12345", "client_67890"]
        },
        "status": {
          "$ref": "#/definitions/UpdateCaseStatusDto"
        },
        "investigation": {
          "$ref": "#/definitions/UpdateCaseInvestigationDto"
        }
      }
    }
  },
  "oneOf": [
    {
      "title": "Case Created Audit Event",
      "description": "Audit event payload for when a case is created",
      "type": "object",
      "required": ["id", "entity"],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "The ID of the case",
          "example": "123e4567-e89b-12d3-a456-426614174000"
        },
        "referenceId": {
          "type": "string",
          "description": "The reference ID of the case",
          "example": "REF-2024-001234"
        },
        "entity": {
          "$ref": "#/definitions/CaseDto",
          "description": "The complete case entity that was created"
        }
      },
      "additionalProperties": false,
      "examples": [
        {
          "id": "123e4567-e89b-12d3-a456-426614174000",
          "referenceId": "REF-2024-001234",
          "entity": {
            "id": "123e4567-e89b-12d3-a456-426614174000",
            "referenceId": "REF-2024-001234",
            "createdAt": "2024-01-10T09:15:00.000Z",
            "updatedAt": "2024-01-10T09:15:00.000Z",
            "attachmentIds": ["att_file1234", "att_file5678"],
            "priority": "HIGH",
            "category": "KYC",
            "assigneeId": "analyst_12345",
            "reviewersIds": ["reviewer_111", "reviewer_222"],
            "description": "KYC review required for high-value client due to inconsistencies in provided documentation and elevated risk score.",
            "statusHistory": [
              {
                "status": "NEW",
                "reason": "Case created from alert",
                "evaluatedAt": "2024-01-10T09:15:00.000Z",
                "evaluatedBy": "system_auto"
              }
            ],
            "alerts": [
              {
                "id": "alert_xyz789",
                "referenceId": "ALT-2024-001"
              }
            ],
            "transactions": [
              {
                "id": "txn_abc123",
                "referenceId": "TXN-2024-5678"
              }
            ],
            "clients": [
              {
                "id": "client_def456",
                "referenceId": "CLI-2024-9012"
              }
            ],
            "investigation": {
              "content": "Initial investigation notes created upon case creation.",
              "nickname": "KYC Investigation",
              "lastEditedAt": "2024-01-10T09:15:00.000Z",
              "lastEditorId": "analyst_12345"
            }
          }
        }
      ]
    },
    {
      "title": "Case Updated Audit Event",
      "description": "Audit event payload for when a case is updated",
      "type": "object",
      "required": ["id", "updated"],
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "The ID of the case",
          "example": "123e4567-e89b-12d3-a456-426614174000"
        },
        "referenceId": {
          "type": "string",
          "description": "The reference ID of the case",
          "example": "REF-2024-001234"
        },
        "updated": {
          "$ref": "#/definitions/UpdateCaseDto",
          "description": "The fields that were updated in the case"
        },
        "previousValues": {
          "type": "object",
          "description": "The previous values of the updated fields",
          "additionalProperties": true
        }
      },
      "additionalProperties": false,
      "examples": [
        {
          "id": "123e4567-e89b-12d3-a456-426614174000",
          "referenceId": "REF-2024-001234",
          "updated": {
            "assigneeId": "analyst_67890",
            "status": {
              "status": "UNDER_INVESTIGATION",
              "reason": "Assigned to senior analyst for detailed review",
              "subStatus": "DOCUMENTS_REVIEWED"
            },
            "description": "Updated case description after initial review - additional due diligence required."
          },
          "previousValues": {
            "assigneeId": "analyst_12345",
            "description": "KYC review required for high-value client due to inconsistencies in provided documentation and elevated risk score."
          }
        },
        {
          "id": "123e4567-e89b-12d3-a456-426614174000",
          "referenceId": "REF-2024-001234",
          "updated": {
            "investigation": {
              "content": "Updated investigation after client interview. All documentation verified and concerns addressed.",
              "nickname": "KYC Investigation - Phase 2"
            },
            "status": {
              "status": "PENDING_REVIEW",
              "reason": "Investigation completed, awaiting supervisor review",
              "subStatus": "READY_FOR_CLOSURE"
            }
          },
          "previousValues": {
            "investigation": {
              "content": "Initial investigation notes created upon case creation.",
              "nickname": "KYC Investigation"
            }
          }
        },
        {
          "id": "123e4567-e89b-12d3-a456-426614174000",
          "referenceId": "REF-2024-001234",
          "updated": {
            "alertsIds": ["alert_xyz789", "alert_new123"],
            "transactionsIds": ["txn_abc123", "txn_def456", "txn_ghi789"],
            "attachmentIds": ["att_file1234", "att_file5678", "att_newdoc001"]
          },
          "previousValues": {
            "alertsIds": ["alert_xyz789"],
            "transactionsIds": ["txn_abc123"],
            "attachmentIds": ["att_file1234", "att_file5678"]
          }
        }
      ]
    }
  ]
}