Skip to main content

Case Lifecycle

Cases are the primary unit of work in the Zenoo AML platform. Each case represents an investigation into an entity (company or person) and aggregates alerts, risk assessments, checks, and reviewer workflows.

Case types

TypePurposeTypical SLA
OnboardingInitial customer due diligence during onboarding14 days
ReviewPeriodic re-review of existing customers30 days
PerpetualOngoing monitoring and continuous screeningRolling
Use Onboarding for new customers, Review for scheduled periodic re-assessments, and Perpetual for continuous monitoring triggered by screening alerts.

Status transitions

Cases follow a defined state machine. Only valid transitions are permitted.
StatusDescription
NewCase created, not yet assigned or started
In ProgressAnalyst actively working on the case
In ReviewSubmitted for peer or senior review
Internal ReviewUnder internal compliance review or escalation
Client InputWaiting for the client to provide documents or information
ClosedInvestigation complete, all alerts resolved
EscalatedEscalated to a manager due to complexity or SLA breach

Invalid transitions

The API returns a 422 Unprocessable Entity error for invalid transitions:
{
  "error": "invalid_transition",
  "message": "Cannot transition from 'Closed' to 'In Progress'. Closed is a terminal state.",
  "current_status": "Closed",
  "requested_status": "In Progress"
}

SLA calculation

SLA due dates are automatically calculated from custom metadata based on case type and priority:
Type / PriorityDue DaysWarning DaysAuto-Escalate
Onboarding / Critical31Yes
Onboarding / High72Yes
Onboarding / Medium143No
Onboarding / Low215No
Review / Critical51Yes
Review / High143Yes
Review / Medium307No
Review / Low4510No

SLA status

StatusCondition
On TrackMore than warning days remaining
WarningWithin warning threshold but before due date
CriticalDue date is today
BreachedPast due date

Auto-escalation

A nightly batch job checks for SLA breaches. Cases with auto-escalation enabled are automatically:
  1. Set to Internal Review status
  2. Assigned to the current analyst’s manager
  3. Flagged with an escalation reason (“SLA breach”)
  4. Logged in the audit trail

Closure requirements

A case can only be closed when:
  1. All alerts are resolved — open alert count must be zero
  2. Resolution notes provided — a summary of the investigation outcome
curl -X POST https://api.zenoo.com/v1/cases/cas_xyz789/close \
  -H "Authorization: Bearer your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "resolution_notes": "All checks passed. PEP match on UBO reviewed and cleared."
  }'
If open alerts remain, the API returns:
{
  "error": "closure_blocked",
  "message": "Cannot close case with 2 open alerts. Resolve all alerts first.",
  "open_alerts_count": 2
}

Escalation

Cases can be escalated manually or automatically.

Manual escalation

curl -X POST https://api.zenoo.com/v1/cases/cas_xyz789/escalate \
  -H "Authorization: Bearer your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "reason": "Complex corporate structure requires senior review.",
    "escalate_to": "user_manager01"
  }'

What happens on escalation

  1. Case status changes to Internal Review
  2. Case is assigned to the specified manager
  3. Email notification sent to the manager
  4. Audit trail entry created (CASE_ESCALATION)
  5. Escalation date and reason are recorded

Risk score recalculation

Case risk scores are automatically recalculated when:
  • An alert is resolved or created
  • A risk assessment is approved
  • An analyst applies a risk override
The system uses approved risk assessments as the primary source. If none exist, it falls back to an alert-based scoring algorithm.

Next steps