> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sphinxhq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Case Model

> A Case is a container for all checks and documents related to a single customer investigation.

A Case is the central hub for a specific investigation. It acts as a container that groups together all the `Checks` and `Documents` related to a single screening workflow for a `Customer`.

Think of a Case as a folder for a particular compliance event, such as onboarding a new user, conducting a periodic review, or investigating a suspicious transaction. You create a case, attach checks to it (either at creation time or later), and all processing and results are tracked within its scope.

<ResponseField name="id" type="integer" required>
  A unique identifier for the case.
</ResponseField>

<ResponseField name="external_id" type="string">
  External ID for the case. Auto-generated UUID if not provided on creation. Stable across reruns. Must be unique per org among non-archived cases.
</ResponseField>

<ResponseField name="customer" type="object" required>
  The customer object associated with this case.
</ResponseField>

<ResponseField name="webhook_url" type="string">
  An optional URL to receive notifications upon case completion.
</ResponseField>

<ResponseField name="note" type="string">
  Internal note about the case.
</ResponseField>

<ResponseField name="risk_score" type="number">
  An overall risk score for the case, often aggregated from individual checks.
</ResponseField>

<ResponseField name="assignee" type="string">
  Email of the user assigned to this case. Must be a member of the organization. Set at creation time.
</ResponseField>

<ResponseField name="outcome" type="string">
  The final decision for the case, which can be `ACCEPTED`, `REJECTED`, or `PENDING`.
</ResponseField>

<ResponseField name="delete_after" type="integer">
  Number of days until the case is automatically deleted. Use `0` for immediate deletion, or `-1` for indefinite retention (never delete). Max `365`. Defaults to `-1` (indefinite).
</ResponseField>

<ResponseField name="metadata" type="object">
  Case-specific metadata. Flexible JSON object.
</ResponseField>

<ResponseField name="sync_platforms" type="array">
  External platform references for outbound sync. When configured, case updates (metadata, outcome, etc.) are automatically synced to the external platform (e.g. Salesforce). List of objects, e.g. `[{"domain": "bofi--dev.sandbox.my.salesforce.com", "id": "500WA..."}]`.
</ResponseField>

<ResponseField name="checks" type="array">
  A list of check objects associated with this case.
</ResponseField>
