Skip to main content
PATCH
Update case status, resolution, assignee, or read state
In the manual-case workflow, set status to in_review here. To dismiss the case, use Dismiss cases with resolution: dismissed. See Triage a manual case.

Authorizations

X-API-KEY
string
header
required

Authorization method required to allow user to access the api endpoints.

Path Parameters

id
string
required

The case id (uuid).

Example:

"550e8400-e29b-41d4-a716-446655440000"

Body

application/json
read
boolean

Mark this case read or unread for the caller only, without a timeline entry. Session-only; API-key callers receive 403.

status
enum<string>
Available options:
open,
in_review,
resolved
resolution
enum<string>

Only "dismissed" is settable here, except an agreement_break case, which also accepts "explained" with a note. "escalated" is only set via POST /escalate.

Available options:
dismissed,
explained
assignee
string<email> | null
Example:

"compliance@example.com"

note
string

Why the status changes, recorded on the timeline. Required to dismiss a screening case (transaction_screening, counterparty_screening).

Maximum string length: 2000
Example:

"Known desk; verified with the client."

Response

id
string
required
workspace_id
string
required
title
string
required
status
enum<string>
required
Available options:
open,
in_review,
resolved
severity
enum<string>
required
Available options:
severe,
high,
medium,
low
source_type
enum<string>
required
Available options:
risk_screen,
sanctions_screen,
alert_event,
manual,
regulatory_filing,
tie_out_break,
corridor_discrepancy,
agreement_break,
redemption,
transaction_screening,
counterparty_screening
subject
object
required
created_at
string
required
updated_at
string
required
viewed
boolean
required

In list responses, whether this case is read for the caller.

autopilot_status
enum<string> | null
required

Status of the latest Autopilot run on this case, or null when Autopilot has not touched it.

Available options:
queued,
running,
completed,
failed,
skipped
autopilot_recommendation
enum<string> | null
required

Recommendation of the latest Autopilot run, or null when it has none yet.

Available options:
escalate,
dismiss,
review
available_actions
object[]
required

Actions supported by this source and status. Existing write permissions still apply. Resolving via set_status requires resolution=dismissed.

comments
object[]
required
autopilot
object | null
required

The latest Autopilot run on this case, or null. Its report is model output: render it as text, never as HTML.

resolution
enum<string> | null
Available options:
dismissed,
escalated,
paid,
explained
source_id
string | null
client_entity_id
string | null

The client entity the case concerns (screening cases).

Example:

"550e8400-e29b-41d4-a716-446655440000"

assignee
string | null
created_by
string | null
resolved_at
string | null
counterparty_deleted
boolean

Counterparty screening cases on one counterparty address or wallet: true when that counterparty entity or wallet account has since been deleted from the register. The case stays open. Absent on other cases.

evidence_summary
object | null

What the case was opened on. A redemption case carries redemption_id, burn_time and deadline, linking it to GET /v2/redemptions/{id}. An agreement_break case carries declared_gap ({ tape, reason }, or null): when its cause is source_missing, it can be explained only if declared_gap is set. It also carries unverified_by_custodian (boolean): true when the custodian marked the asset unverified, which is information only and never the cause (absent on cases filed before it existed).

Last modified on November 10, 2026