> ## 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.

# Business Verification

> Verify companies and legal entities with automated registry lookups, UBO identification, officer screening, and AML — pay-per-call $2.00, no contracts.

Didit's Business Verification (KYB) lets you verify companies and legal entities before onboarding them to your platform. The system automates company registry lookups, identifies beneficial owners and officers, screens all parties against AML watchlists, and collects supporting documents — all within a single workflow. Each verified company is tracked as a [business profile](/business-verification/business-profiles), aggregating results across sessions.

New to Didit KYB? Start with the [quickstart](/business-verification/quickstart) for a 10-minute end-to-end walkthrough, then read the [integration guide](/business-verification/integration-guide) for production patterns. For the underlying Business entity model (linking to Users, blocklists, import/export), see [Businesses](/entities/businesses/overview).

## How it works

<Steps>
  <Step title="Create a business session" icon="building">
    Start a business verification by creating a session with a **KYB workflow**. When the workflow type is KYB, Didit automatically creates a business session:

    ```bash theme={null}
    curl -X POST https://verification.didit.me/v3/session/ \
      -H "x-api-key: YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "workflow_id": "your-kyb-workflow-id",
        "vendor_data": "company-123"
      }'
    ```

    The session type is determined by the workflow — no extra fields needed. KYB workflows automatically create business sessions with business-specific features enabled.
  </Step>

  <Step title="Company registry lookup" icon="magnifying-glass">
    Didit queries official company registries to retrieve:

    | Data                    | Description                                 |
    | ----------------------- | ------------------------------------------- |
    | **Company name**        | Legal name as registered                    |
    | **Registration number** | Official company registration number        |
    | **Country**             | Country of incorporation                    |
    | **Status**              | Active, dissolved, struck off, etc.         |
    | **Company type**        | Ltd, LLC, PLC, SA, GmbH, etc.               |
    | **Incorporation date**  | Date the company was registered             |
    | **Registered address**  | Official registered office address          |
    | **Tax number**          | Tax identification number (where available) |

    Registry data is cross-referenced with the information provided to detect inconsistencies.
  </Step>

  <Step title="Key people — UBOs, shareholders, directors & representatives" icon="users">
    The system identifies every person and corporate entity tied to the business under the unified **Key People** model:

    * **UBOs** — individuals who ultimately own or control the company, with ownership and voting percentages
    * **Shareholders** (individual and corporate) — each with their ownership percentage
    * **Directors, representatives, secretaries, authorized signatories, and other officer roles** — with their specific role tag
    * **Corporate ownership layers** — parent companies in the ownership chain, with optional nested KYB

    A single person can carry multiple role tags (for example, director **and** shareholder). Each role is individually configured in the workflow — which roles require KYC, which KYC workflow to use, and whether the end user can skip verification. Learn more in [Key People](/business-verification/key-people) and [Ownership](/business-verification/ownership).
  </Step>

  <Step title="AML screening" icon="shield-check">
    All identified parties are automatically screened against global AML watchlists:

    * **Company AML** — screens the company entity against sanctions, adverse media, and regulatory enforcement lists
    * **Person AML** — screens each key person (UBO, shareholder, director, representative, etc.) individually
    * Uses the same [two-score risk system](/core-technology/aml-screening/overview) (match score + risk score) as user verification
  </Step>

  <Step title="Document collection" icon="file-lines">
    Collect and verify supporting documents:

    | Document type                    | Examples                                                     |
    | -------------------------------- | ------------------------------------------------------------ |
    | **Certificate of incorporation** | Company formation certificate                                |
    | **Articles of association**      | Bylaws, memorandum of association                            |
    | **Proof of address**             | Utility bills, bank statements for the registered address    |
    | **Shareholder register**         | Official register of shareholders                            |
    | **Financial statements**         | Annual accounts, audit reports                               |
    | **Tax certificates**             | Tax registration or compliance certificates                  |
    | **Custom documents**             | Any additional documents required by your compliance process |

    Analysts can request additional documents from the business during the review process.
  </Step>

  <Step title="Review and decide" icon="gavel">
    The business session receives an overall status based on all checks:

    | Status        | Meaning                                                              |
    | ------------- | -------------------------------------------------------------------- |
    | **Approved**  | All checks passed — company is verified                              |
    | **In Review** | One or more checks require manual review                             |
    | **Declined**  | A critical check failed (e.g., dissolved company, sanctioned entity) |

    Analysts can review all collected data in the Business Console, add comments, request additional documents, and make a final decision.
  </Step>
</Steps>

## Business session lifecycle

Each business verification runs within a **business session** that tracks progress through the following statuses:

| Status        | Description                                                                                    |
| ------------- | ---------------------------------------------------------------------------------------------- |
| `NOT_STARTED` | Session created but verification has not begun                                                 |
| `IN_PROGRESS` | Verification is underway — registry lookups, AML screening, or document collection in progress |
| `APPROVED`    | All checks passed — company is verified                                                        |
| `DECLINED`    | A critical check failed (e.g., dissolved company, sanctioned entity)                           |
| `IN_REVIEW`   | One or more checks require manual analyst review                                               |
| `RESUBMITTED` | Previously declined session resubmitted with updated data                                      |

Each session has a unique `session_id`, a sequential `session_number`, and a `session_token` for the hosted verification link. When a session is created with a `vendor_data` identifier, Didit automatically links it to the corresponding [business profile](/business-verification/business-profiles).

## Feature statuses

Business verification tracks the status of each component independently:

| Feature            | Description                                                  |
| ------------------ | ------------------------------------------------------------ |
| **Registry check** | Company registry lookup and data extraction                  |
| **Company AML**    | Company-level AML screening against sanctions and watchlists |
| **Documents**      | Document collection, OCR, and cross-referencing              |
| **Key people**     | Beneficial owner and officer identification, AML, and KYC    |

Each feature can be: `NOT_FINISHED`, `APPROVED`, `DECLINED`, `IN_REVIEW`, or `RESUB_REQUESTED`. The overall session status aggregates the individual feature statuses — the session is only `APPROVED` when all required features pass.

## Webhook events

Business sessions generate the following webhook events:

| Event                     | Trigger                                                                                                          |
| ------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| `status.updated`          | Session status changed. Payload carries `session_kind: "business"` for KYB sessions.                             |
| `data.updated`            | Session data changed (registry, key people, documents, AML). Payload carries `session_kind: "business"`.         |
| `business.status.updated` | The linked [Business entity](/entities/businesses/overview)'s status changed (`ACTIVE` / `FLAGGED` / `BLOCKED`). |
| `business.data.updated`   | The linked Business entity's profile fields or aggregate counters changed.                                       |

Webhook payloads include `session_kind: "business"` and the `business_session_id` to distinguish them from user verification events. See [Webhooks](/integration/webhooks) for signature verification and delivery details.

## Key capabilities

| Capability                     | Description                                                                                         |
| ------------------------------ | --------------------------------------------------------------------------------------------------- |
| **Automated registry lookups** | Query official company registries in supported countries                                            |
| **UBO identification**         | Automatically extract beneficial ownership structures with percentages                              |
| **Officer screening**          | Identify and verify directors, secretaries, and other officers                                      |
| **Company AML**                | Screen the company entity against sanctions and watchlists                                          |
| **Person AML**                 | Screen all identified UBOs and officers individually                                                |
| **KYC linking**                | Link each identified person to a User Verification (KYC) session for identity verification          |
| **Document collection**        | Structured document requests with upload tracking                                                   |
| **OCR cross-checking**         | Extract data from uploaded documents and cross-reference with registry data                         |
| **Business profiles**          | Automatic profile creation and session aggregation for each verified company                        |
| **Feature-level statuses**     | Independent status tracking for registry, AML, documents, and key people                            |
| **Risk assessment**            | Overall risk level based on company status, AML results, and ownership complexity                   |
| **Webhooks**                   | Receive session lifecycle and data update events in real time via [webhooks](/integration/webhooks) |

## Business sessions vs. user sessions

| Feature               | User session                        | Business session                                             |
| --------------------- | ----------------------------------- | ------------------------------------------------------------ |
| **Target**            | Individual person                   | Company or legal entity                                      |
| **Session kind**      | `user` (default)                    | `business`                                                   |
| **Core checks**       | ID, liveness, face match, AML       | Registry lookup, UBO, officers, company AML                  |
| **Additional checks** | Phone, email, proof of address, NFC | Document collection, person AML, KYC linking                 |
| **Webhook payloads**  | Standard session events             | Include `session_kind: "business"` and `business_session_id` |

## Next steps

<CardGroup cols={3}>
  <Card title="Business profiles" icon="address-card" href="/business-verification/business-profiles">
    Track companies across sessions with profiles, tags, and bulk operations.
  </Card>

  <Card title="Company data" icon="building" href="/business-verification/company-data">
    Registry lookups, company status, and data cross-referencing.
  </Card>

  <Card title="Ownership structure" icon="sitemap" href="/business-verification/ownership">
    UBO identification, corporate shareholders, and ownership chains.
  </Card>

  <Card title="Officers & directors" icon="user-tie" href="/business-verification/officers">
    Director identification, roles, and KYC linking.
  </Card>

  <Card title="AML screening" icon="shield-check" href="/business-verification/aml">
    Company and person-level AML checks.
  </Card>

  <Card title="Documents" icon="file-lines" href="/business-verification/documents">
    Document collection, requests, and OCR verification.
  </Card>
</CardGroup>
