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

# Supporting Documents Review

> Learn how to incorporate manual review of supporting documents into your automated KYC workflows.

## What is Supporting Documents Review?

Supporting Documents Review is a feature that allows your compliance team to manually review and verify documents that fall outside of standard IDV or eKYC checks. This is useful for verifying proof of address, source of funds, or other supplementary evidence required by your compliance policies.

The process bridges manual verification with automated workflows. A compliance officer can approve or reject a document, and that decision is then automatically consumed by a workflow step to determine the outcome of the KYC process, ensuring a complete and auditable trail.

## How It Works

The process involves uploading a supporting document, having an operator review it via an API call, and then executing a workflow that checks for the review outcome.

<Steps>
  <Step title="1. Upload a Supporting Document">
    You upload a document using the standard documents endpoint, but with the `class` set to `SUPPORTING`. When you do this, FrankieOne automatically creates a corresponding check for this document with an initial status of `PENDING_REVIEW`.
  </Step>

  <Step title="2. A Compliance Officer Reviews the Document">
    Your internal compliance team reviews the document. Once they make a decision, your system calls the `PATCH /v2/individuals/{entityId}/documents/{documentId}/status` endpoint to update the document's status to either `APPROVED` or `REJECTED`.
  </Step>

  <Step title="3. Execute a Workflow with the 'Supporting Documents' Step">
    Your workflow must contain the `SUPPORTING_DOCUMENTS_REVIEW` step. When executed, this step checks if at least one supporting document for the entity has been `APPROVED`.
  </Step>

  <Step title="4. Receive the Workflow Outcome">
    The workflow step will return `SUCCESS` if an approved document is found. If no documents are approved, it will return `FAILURE`. This result can then be used to automate the decisioning for the entity's profile.
  </Step>
</Steps>

***

## API Integration Guide

Integrating the Supporting Documents Review feature involves two main API calls: uploading the document and submitting the review decision.

### 1. Uploading a Supporting Document

To begin the process, create a document with the `class` specified as `SUPPORTING`. This is done by making a `POST` request to the `/v2/individuals/{individualId}/documents` endpoint.

The `type` field should specify the kind of supporting document being uploaded. See the table below for supported types.

**Example Request: Uploading a Utility Bill**

```json theme={null}
{
  "document": {
    "class": "SUPPORTING",
    "documentId": "doc-supp-12345-utility-bill",
    "type": "UTILITY_BILL",
    "country": "AUS"
  }
}
```

<Callout icon="thumbtack" color="#1A6CFF" iconType="regular">
  When this call is successful, a `Process-Result-Object` (PRO) with the class `SUPPORTING_DOC` is automatically created with a `result` of `PENDING_REVIEW`.
</Callout>

<Callout icon="bell" color="#FFCA16" iconType="regular">
  **Maximum File Size** Each document attached to an entity can be up to 20MB. Files exceeding this size will be rejected by the system.

  **Supported File Types** When uploading supporting documents, the following file types are supported: `jpeg`, `png`, `gif`, `webp`, `tiff`, `bmp`, `pdf`.
</Callout>

### 2. Submitting a Review Decision

After an internal review, you must submit the decision using the `PATCH /v2/individuals/{entityId}/documents/{documentId}/status` endpoint. This call updates the status of the document's corresponding check.

You must provide the `entityId` and `documentId` in the URL path, and a request body containing a `status` of either `APPROVED` or `REJECTED`, and an optional `reason`.

**Example Request: Approving a Document**

Call `PATCH /v2/individuals/ind-abc-123/documents/doc-supp-12345-utility-bill/status` with the following body:

```json theme={null}
{
  "status": "APPROVED",
  "reason": "Document is clear and details match entity profile."
}
```

***

## Workflow Step Configuration

To use the review decision in your automated checks, you must add the `SUPPORTING_DOCUMENTS_REVIEW` step to your workflow.

* **Logic**: This step checks for any `SUPPORTING_DOC` checks associated with the entity.
* **Success Condition**: The step will return `SUCCESS` if **at least one** supporting document has been `APPROVED`.
* **Failure Condition**: If no documents have been approved (i.e., they are all `PENDING_REVIEW` or `REJECTED`), the step will return `FAILURE`.
* **Skipped Condition**: If no supporting documents have been uploaded for the entity, the step will be `SKIPPED`.

### Example Workflow Result

Here is an example of the `workflowStepResult` object you would receive after a workflow containing the `SUPPORTING_DOCUMENTS_REVIEW` step has been executed for an entity with an approved document.

```json theme={null}
{
  "workflowStepResults": [
    {
      "stepName": "SUPPORTING_DOCUMENTS_REVIEW",
      "result": "SUCCESS",
      "processResults": [
        {
          "provider": "MANUAL",
          "objectType": "SUPPORTING_DOC",
          "class": "KYC",
          "result": "APPROVED",
          "checkDate": "2025-10-15T08:15:30.000Z",
          "data": {
            "documentId": "doc-supp-12345-utility-bill",
            "reason": "Document is clear and details match entity profile."
          }
        }
      ]
    }
  ]
}
```

### Supported Document Types

The `type` field for `SUPPORTING` class documents can be one of the following values:

| Document Type      | Code                 |
| ------------------ | -------------------- |
| Utility Bill       | `UTILITY_BILL`       |
| Bank Statement     | `BANK_STATEMENT`     |
| Tenancy Agreement  | `TENANCY_AGREEMENT`  |
| Correspondence     | `CORRESPONDENCE`     |
| Certified Document | `CERTIFIED_DOCUMENT` |
| Other              | `OTHER`              |

<Callout icon="bell" color="#FFCA16" iconType="regular">
  ##### Workflow Issues

  * If a document is `REJECTED`, an issue with the code `SUPPORTING_DOCUMENT_REJECTED` is raised on the entity profile.
  * If documents have been uploaded but are awaiting review when the workflow is run, an issue with the code `SUPPORTING_DOCUMENT_PENDING` is raised.
</Callout>
