---
updatedAt: 2026-09-11T15:40:32.000Z
agentTools:
  projectIndex: https://docs.moderntreasury.com/platform/llms.txt
---

# Compliance Cases

A `case` represents a compliance issue Modern Treasury needs you to resolve before verification of a [Legal Entity](https://docs.moderntreasury.com/platform/reference/legal-entities) can finish. When an automated compliance check fails during onboarding, Modern Treasury opens a Case on the Legal Entity and records one or more `requested_actions` describing the information you must provide.

Cases are read-only. You resolve a Case by supplying the requested information on the Legal Entity: by [updating the Legal Entity](https://docs.moderntreasury.com/platform/reference/update-legal-entity), by correcting an identification with [Create Identification](https://docs.moderntreasury.com/platform/reference/create-identification) or [Update Identification](https://docs.moderntreasury.com/platform/reference/update-identification), or by uploading a [Document](https://docs.moderntreasury.com/platform/reference/document-object). Each submission re-runs the failed compliance checks; when every requested action has been resolved the Case status becomes `resolved`.

You can also view a Legal Entity's Cases and their requested actions in the Cases tab of the Legal Entity page in the Modern Treasury dashboard.

Subscribe to [Case webhooks](https://docs.moderntreasury.com/platform/reference/cases) to be notified when a Case is opened, updated, or resolved.

## The Case object

<Table align={["left","left"]}>
  <thead>
    <tr>
      <th>
        Attribute
      </th>

      <th>
        Description
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        **id**<br />_string_
      </td>

      <td>
        Unique identifier for the Case.
      </td>
    </tr>

    <tr>
      <td>
        **object**<br />_string_
      </td>

      <td>
        Always `case`.
      </td>
    </tr>

    <tr>
      <td>
        **live_mode**<br />_boolean_
      </td>

      <td>
        This field will be `true` if this object exists in the live environment, or `false` if it exists in the test environment.
      </td>
    </tr>

    <tr>
      <td>
        **status**<br />_string_
      </td>

      <td>
        The status of the Case.

        One of: `open` or `resolved`.
      </td>
    </tr>

    <tr>
      <td>
        **subject_type**<br />_string_
      </td>

      <td>
        The type of the object the Case is about.

        Currently always `legal_entity`.
      </td>
    </tr>

    <tr>
      <td>
        **subject_id**<br />_string_
      </td>

      <td>
        The ID of the object the Case is about.
      </td>
    </tr>

    <tr>
      <td>
        **requested_actions**<br />_array_
      </td>

      <td>
        The pending Requested Actions on the Case. These are the actions you still need to take to resolve the Case.
      </td>
    </tr>

    <tr>
      <td>
        **resolved_actions**<br />_array_
      </td>

      <td>
        The Requested Actions on the Case that have already been resolved.
      </td>
    </tr>

    <tr>
      <td>
        **created_at**<br />_string_
      </td>

      <td>
        The time at which the Case was created.
      </td>
    </tr>

    <tr>
      <td>
        **updated_at**<br />_string_
      </td>

      <td>
        The time at which the Case was last updated.
      </td>
    </tr>
  </tbody>
</Table>

## The Requested Action object

<Table align={["left","left"]}>
  <thead>
    <tr>
      <th>
        Attribute
      </th>

      <th>
        Description
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        **id**<br />_string_
      </td>

      <td>
        Unique identifier for the Requested Action.
      </td>
    </tr>

    <tr>
      <td>
        **object**<br />_string_
      </td>

      <td>
        Always `requested_action`.
      </td>
    </tr>

    <tr>
      <td>
        **live_mode**<br />_boolean_
      </td>

      <td>
        This field will be `true` if this object exists in the live environment, or `false` if it exists in the test environment.
      </td>
    </tr>

    <tr>
      <td>
        **category**<br />_string_
      </td>

      <td>
        The category of the Requested Action. See [Requested Action categories](#requested-action-categories) below.
      </td>
    </tr>

    <tr>
      <td>
        **field**<br />_string_
      </td>

      <td>
        The field that needs to be corrected or provided, if any.

        One of: `articles_of_incorporation`, `ein_letter`, `legal_entity_details`, or `proof_of_address`.
      </td>
    </tr>

    <tr>
      <td>
        **instructions**<br />_string_
      </td>

      <td>
        Human-readable instructions on how to resolve the Requested Action.
      </td>
    </tr>

    <tr>
      <td>
        **reasons**<br />_array_
      </td>

      <td>
        The reasons the action was requested. See [Requested Action reasons](#requested-action-reasons) below.
      </td>
    </tr>

    <tr>
      <td>
        **created_at**<br />_string_
      </td>

      <td>
        The time at which the Requested Action was created.
      </td>
    </tr>

    <tr>
      <td>
        **updated_at**<br />_string_
      </td>

      <td>
        The time at which the Requested Action was last updated.
      </td>
    </tr>
  </tbody>
</Table>

## Requested Action categories

| Category                                            | Field                       | How to resolve                                                                                                                                      |
| :-------------------------------------------------- | :-------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- |
| `onboarding_proof_of_address_failure`               | `proof_of_address`          | Upload a `proof_of_address` document dated within the last 90 days to the Legal Entity.                                                             |
| `onboarding_business_registry_verification_failure` | `articles_of_incorporation` | Upload an `articles_of_incorporation` document showing the business name, registration number, and address to the Legal Entity.                     |
| `onboarding_tin_check_failure`                      | `ein_letter`                | Upload an `ein_letter` document showing the legal name and taxpayer identification number, or correct the EIN on the Legal Entity's identification. |
| `onboarding_ssn_check_failure`                      | `legal_entity_details`      | Confirm and, if needed, correct the individual's legal name and social security number on the Legal Entity.                                         |

## Requested Action reasons

| Reason                    | Description                                                                                         |
| :------------------------ | :-------------------------------------------------------------------------------------------------- |
| `document_out_of_date`    | The document is too old, or no issue date could be read from it.                                    |
| `document_incorrect_type` | The document is not of the type required for this check.                                            |
| `malformed_content_type`  | The document could not be trusted, for example because it appears to have been edited or annotated. |
| `identity_unverified`     | The submitted details could not be matched against an authoritative source.                         |

## Example Case

```json Case
{
  "id": "b7d0a9f4-1f2c-4c2e-9b3a-5f1d1c6e0f21",
  "object": "case",
  "live_mode": true,
  "status": "open",
  "subject_type": "legal_entity",
  "subject_id": "7d885cb7-6cad-42ab-ae01-d61bb90b4780",
  "requested_actions": [
    {
      "id": "42e79631-195e-40d4-963f-e86b2facbc19",
      "object": "requested_action",
      "live_mode": true,
      "category": "onboarding_proof_of_address_failure",
      "field": "proof_of_address",
      "instructions": "Upload a proof_of_address document dated within the last 90 days to the legal entity using the documents endpoint.",
      "reasons": ["document_out_of_date"],
      "created_at": "2026-08-20T20:13:46Z",
      "updated_at": "2026-08-20T20:13:46Z"
    }
  ],
  "resolved_actions": [],
  "created_at": "2026-08-20T20:13:46Z",
  "updated_at": "2026-08-20T20:13:46Z"
}
```