Skip to main content

Case Management

When a screening returns REVIEW_REQUIRED, create a case for your compliance team to investigate.

Case Lifecycle

  ┌──────┐     ┌───────────┐     ┌──────────────────┐     ┌────────┐
│ OPEN │────▶│ IN_REVIEW │────▶│ PENDING_APPROVAL │────▶│ CLOSED │
└──────┘ └─────┬─────┘ └──────────────────┘ └────────┘


┌───────────┐
│ ESCALATED │
└───────────┘

Create a Case

Create a case linked to a screening result:

curl -X POST https://api.korastratum.com/api/v1/cases \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID" \
-H "Content-Type: application/json" \
-d '{
"screening_id": "scr_abc123",
"subject_id": "subj_def456",
"priority": "HIGH",
"notes": "PEP match found — requires senior analyst review"
}'

Response:

{
"case_id": "cas_abc123",
"screening_id": "scr_abc123",
"subject_id": "subj_def456",
"status": "OPEN",
"priority": "HIGH",
"notes": "PEP match found — requires senior analyst review",
"created_at": "2025-06-01T12:00:00Z"
}

Assign a Case

Assign the case to a compliance analyst:

curl -X PUT https://api.korastratum.com/api/v1/cases/cas_abc123/assign \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID" \
-H "Content-Type: application/json" \
-d '{
"assigned_to": "analyst@yourcompany.com"
}'

Add Case Events

Log investigation activity on a case:

curl -X POST https://api.korastratum.com/api/v1/cases/cas_abc123/activities \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID" \
-H "Content-Type: application/json" \
-d '{
"type": "NOTE",
"content": "Contacted customer to verify identity. Awaiting response."
}'

Add Attachments

Attach supporting documents to a case:

curl -X POST https://api.korastratum.com/api/v1/cases/cas_abc123/attachments \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID" \
-H "Content-Type: application/json" \
-d '{
"name": "customer_passport.pdf",
"type": "DOCUMENT",
"url": "https://your-storage.com/docs/passport.pdf"
}'

Escalate a Case

Escalate to a senior reviewer when needed:

curl -X PUT https://api.korastratum.com/api/v1/cases/cas_abc123/escalate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID" \
-H "Content-Type: application/json" \
-d '{
"reason": "Potential sanctions match requires MLRO review",
"escalated_to": "mlro@yourcompany.com"
}'

Dispose a Case

Set the final disposition when the investigation is complete:

curl -X PUT https://api.korastratum.com/api/v1/cases/cas_abc123/disposition \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID" \
-H "Content-Type: application/json" \
-d '{
"disposition": "FALSE_POSITIVE",
"reason": "Name similarity but different date of birth and nationality confirmed"
}'

Disposition types:

DispositionDescription
TRUE_POSITIVEConfirmed match — take action (block, report)
FALSE_POSITIVENot a real match — safe to proceed
ESCALATEDRequires further investigation at a higher level
NO_ACTION_REQUIREDReviewed and determined no action needed

Record a Decision Override

Override the automated decision with a manual decision and audit trail:

curl -X POST https://api.korastratum.com/api/v1/cases/cas_abc123/override \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID" \
-H "Content-Type: application/json" \
-d '{
"original_decision": "BLOCK",
"new_decision": "APPROVE_WITH_MONITORING",
"reason": "False positive confirmed by senior analyst. Customer cleared with enhanced monitoring.",
"approved_by": "mlro@yourcompany.com"
}'

List and Filter Cases

# List all open cases
curl "https://api.korastratum.com/api/v1/cases?status=OPEN" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID"

# List escalated high-priority cases
curl "https://api.korastratum.com/api/v1/cases?status=ESCALATED&priority=HIGH" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "X-Tenant-ID: YOUR_TENANT_ID"

Webhook Events

Case lifecycle events are delivered via webhook:

EventTrigger
case.createdNew case created
case.updatedCase details changed
case.assignedCase assigned to analyst
case.escalatedCase escalated
case.closedCase disposed and closed
case.reopenedClosed case reopened