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

# Documents

> Collect and verify corporate documents — incorporation certificates, articles, financials — with OCR and registry cross-referencing. Pay-per-call $2.00 KYB.

Business verification includes structured document collection to validate company information beyond what's available in registries.

## Document groups

Documents are organized into four structured groups, each representing a category of evidence needed for business verification:

| Group                             | Description                                                 | Examples                                                    |
| --------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- |
| **Legal presence**                | Documents proving the company legally exists                | Certificate of incorporation, business registration         |
| **Company details**               | Documents describing the company's operations               | Articles of association, memorandum of association          |
| **Ownership structure**           | Documents proving the ownership chain                       | Shareholder register, share certificates, UBO declarations  |
| **Representatives authorization** | Documents proving authority to act on behalf of the company | Power of attorney, board resolutions, authorization letters |

Each group tracks its own progress with per-group summaries: total documents expected, approved, pending review, and missing. The business session's overall documents status aggregates across all groups.

## Document types

| Category                 | Examples                                                                         |
| ------------------------ | -------------------------------------------------------------------------------- |
| **Formation documents**  | Certificate of incorporation, articles of association, memorandum of association |
| **Ownership documents**  | Shareholder register, share certificates, UBO declarations                       |
| **Address documents**    | Utility bills, bank statements, or lease agreements for the registered address   |
| **Financial documents**  | Annual accounts, audit reports, financial statements                             |
| **Tax documents**        | Tax registration certificates, tax compliance certificates                       |
| **Regulatory documents** | Licenses, permits, regulatory approvals                                          |
| **Custom documents**     | Any additional documents required by your compliance process                     |

## Document workflow

<Steps>
  <Step title="Automatic requests" icon="file-circle-plus">
    Based on your workflow configuration, Didit automatically identifies which documents are needed for the business verification. Required document types are presented to the business for upload.
  </Step>

  <Step title="Upload" icon="upload">
    Documents are uploaded through the hosted verification flow or via the Business Console. Supported formats include PDF, JPG, PNG, and WebP.
  </Step>

  <Step title="OCR extraction" icon="microchip-ai">
    Didit extracts structured data from uploaded documents using OCR:

    * Company name and registration number from certificates
    * Address data from utility bills
    * Financial figures from statements
    * Names and roles from shareholder registers
  </Step>

  <Step title="Cross-referencing" icon="code-compare">
    Extracted data is cross-referenced against:

    * Registry data from the company lookup
    * Information provided at session creation
    * Data from other uploaded documents

    Inconsistencies are flagged for analyst review.
  </Step>

  <Step title="Review" icon="magnifying-glass">
    Analysts review uploaded documents in the console, verify their authenticity, and approve or reject each document individually.
  </Step>
</Steps>

## Analyst document requests

During the review process, analysts can request additional documents:

1. Navigate to the business session in the console
2. Click **Request document** and specify the document type and description
3. The business is notified and can upload the requested document
4. The document appears in the session with a **Requested** status until uploaded

This allows analysts to gather additional evidence without rejecting the entire business session.

## Document statuses

Each document and the aggregate `document_verifications[]` check use the standard KYB feature status set:

| Status            | Description                                                                                                   |
| ----------------- | ------------------------------------------------------------------------------------------------------------- |
| `NOT_FINISHED`    | Document is still being processed (upload in progress, OCR running, or cross-check pending).                  |
| `APPROVED`        | Document was reviewed and accepted.                                                                           |
| `DECLINED`        | Document was reviewed and rejected.                                                                           |
| `IN_REVIEW`       | Document requires manual analyst attention.                                                                   |
| `RESUB_REQUESTED` | Analyst requested a resubmission — the business must re-upload this document before the session can progress. |

## Cross-check results

When a document is processed, Didit cross-references the OCR-extracted data against the **user-provided data** submitted in the Key People flow (and any data confirmed during registry review) plus other uploaded documents. The cross-check produces structured results:

| Category                | Description                                                                                                                                                                                  |
| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Critical fields**     | Fields where the document data and the user-provided data do not match — these require analyst review. Each field shows the document value, the user-provided value, and a confidence score. |
| **Non-critical fields** | Fields with minor discrepancies or formatting differences that may not require action (e.g. abbreviation differences in company name).                                                       |
| **People overlap**      | Analysis of people mentioned in the document vs. people submitted by the user — highlights missing or additional individuals.                                                                |

Cross-check results are displayed in the [Business Console](/business-verification/console) alongside the document preview, giving analysts a clear view of what matches and what needs attention.

## Retrieving documents via API

Documents are attached to the Business Verification (KYB) session. Fetch them via the session decision:

```bash theme={null}
curl https://verification.didit.me/v3/session/{session_id}/decision/ \
  -H "x-api-key: YOUR_API_KEY"
```

The response includes a `document_verifications[]` array — each item has a `status`, `node_id`, `items[]` (each with a signed `file_url` and OCR extract), `groups`, and `required_groups`. See [response schema](/business-verification/response-schema#document_verifications) for the full structure.

## Next steps

<CardGroup cols={2}>
  <Card title="Response schema" icon="file-lines" href="/business-verification/response-schema">
    Where documents appear in the payload.
  </Card>

  <Card title="Business console" icon="desktop" href="/business-verification/console">
    Reviewing documents as an analyst.
  </Card>
</CardGroup>
