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

# Company Verification

> Company verification results from registry lookups including the verified legal entity, directors, and beneficial owners.

# Company Verification

Company verification results come from registry lookups and include the verified legal entity, extracted directors, and discovered beneficial owners. These fields appear in the `company`, `directors[]`, and `beneficial_owners[]` sections of the [compliance report](/data-model/compliance-report).

## Company Object

The `company` object contains registry-verified data about the legal entity.

| Field                 | Type              | Description                                                      |
| --------------------- | ----------------- | ---------------------------------------------------------------- |
| `legal_name`          | string            | Verified legal name from the company registry                    |
| `registration_number` | string            | Verified registration number                                     |
| `jurisdiction`        | string            | Country of incorporation (ISO 3166-1 alpha-2)                    |
| `company_status`      | string            | Current status: `Active`, `Dissolved`, `Struck Off`              |
| `company_type`        | string            | Legal entity type: `Private Limited Company`, `PLC`, `LLP`, etc. |
| `incorporation_date`  | string (date)     | Date of formation, ISO 8601                                      |
| `registered_address`  | string            | Official registered address as a single formatted string         |
| `sic_codes`           | string            | Industry classification codes, comma-separated                   |
| `verification_status` | string            | `Verified`, `Failed`, or `Pending`                               |
| `verified_at`         | string (datetime) | ISO 8601 timestamp of when registry verification completed       |

### Example

```json theme={null}
{
  "company": {
    "legal_name": "Acme Holdings Limited",
    "registration_number": "12345678",
    "jurisdiction": "GB",
    "company_status": "Active",
    "company_type": "Private Limited Company",
    "incorporation_date": "2015-03-15",
    "registered_address": "123 High Street, London, EC1A 1BB",
    "sic_codes": "64110,64191",
    "verification_status": "Verified",
    "verified_at": "2026-01-15T14:30:15Z"
  }
}
```

## Director Results

The `directors[]` array contains individuals extracted from the company registry and screened for PEP/sanctions exposure. Directors may include those you submitted in the request plus additional directors discovered from the registry.

| Field                    | Type              | Description                                        |
| ------------------------ | ----------------- | -------------------------------------------------- |
| `name`                   | string            | Full name                                          |
| `date_of_birth`          | string (date)     | Date of birth, if available from registry or input |
| `role`                   | string            | Role: `Director`, `Secretary`, `Chair`, etc.       |
| `pep_status`             | string            | `No Hit` or `Hit`                                  |
| `sanctions_status`       | string            | `No Hit` or `Hit`                                  |
| `screening_completed_at` | string (datetime) | Timestamp of when screening finished               |

### Example

```json theme={null}
{
  "directors": [
    {
      "name": "Jane Smith",
      "date_of_birth": "1980-05-20",
      "role": "Director",
      "pep_status": "No Hit",
      "sanctions_status": "No Hit",
      "screening_completed_at": "2026-01-15T14:30:25Z"
    },
    {
      "name": "Robert Williams",
      "date_of_birth": "1972-08-03",
      "role": "Secretary",
      "pep_status": "Hit",
      "sanctions_status": "No Hit",
      "screening_completed_at": "2026-01-15T14:30:26Z"
    }
  ]
}
```

<Note>A `pep_status` of `Hit` means the individual matched a PEP record in the screening database. Check the [screening results](/data-model/screening-results) for match details including score, category, and positions held.</Note>

## Beneficial Owner Results

The `beneficial_owners[]` array contains UBOs extracted from the company registry or provided in your request. Each UBO is screened for PEP/sanctions exposure.

| Field                  | Type              | Description                                                                                |
| ---------------------- | ----------------- | ------------------------------------------------------------------------------------------ |
| `name`                 | string            | Full name                                                                                  |
| `date_of_birth`        | string (date)     | Date of birth, if available                                                                |
| `nationality`          | string            | ISO 3166-1 alpha-2 country code                                                            |
| `ownership_percentage` | number            | Ownership stake as a percentage (0-100)                                                    |
| `pep_status`           | string            | `No Hit` or `Hit`                                                                          |
| `sanctions_status`     | string            | `No Hit` or `Hit`                                                                          |
| `identity_verified`    | boolean           | Whether identity verification (Person Verification) has been completed for this individual |
| `verification_date`    | string (datetime) | Timestamp of identity verification, if completed                                           |

### Example

```json theme={null}
{
  "beneficial_owners": [
    {
      "name": "John Doe",
      "date_of_birth": "1975-11-10",
      "nationality": "GB",
      "ownership_percentage": 75,
      "pep_status": "No Hit",
      "sanctions_status": "No Hit",
      "identity_verified": false
    },
    {
      "name": "Maria Garcia",
      "date_of_birth": "1983-02-28",
      "nationality": "ES",
      "ownership_percentage": 25,
      "pep_status": "No Hit",
      "sanctions_status": "No Hit",
      "identity_verified": true,
      "verification_date": "2026-01-10T09:15:00Z"
    }
  ]
}
```

## Registry Source

Company data is sourced from official government company registries via the provider configured for your project. Coverage includes:

* United Kingdom (Companies House)
* Ireland (CRO)
* EU member states
* United States (state-level registries)
* 120+ additional jurisdictions

<Info>Registry data reflects the latest filing at the time of the check. If a company's registry record has not been updated recently, some fields (like director appointments or address changes) may be outdated.</Info>

## Data Reconciliation

When you provide company data in the request and Zenoo retrieves data from the registry, both versions are available. The `company` object in the response always contains the **registry-verified** data. If there are discrepancies between your input and the registry (e.g., different address, mismatched company name), these are flagged as risk factors in the [risk assessment](/data-model/risk-assessment).

## Person Verification for Directors and UBOs

Company Verification automatically screens all directors and beneficial owners for PEP/sanctions/adverse media. However, if your compliance policy requires **identity verification** (document check + biometric liveness) for specific individuals — typically UBOs above a certain ownership threshold — you must initiate separate Person Verification flows.

### When to trigger Person Verification

| Individual                        | Trigger Condition  | Verification Type                |
| --------------------------------- | ------------------ | -------------------------------- |
| UBO ≥25% ownership                | Always recommended | `/kyc/init` (async, user-facing) |
| UBO with PEP/sanctions hit        | Required           | `/kyc/init` (async, user-facing) |
| Director (high-risk jurisdiction) | Policy-dependent   | `/kyc/init` or `/kyc/api`        |
| Director (standard)               | Optional           | `/kyc/api` (sync, database only) |

### Example flow

```bash theme={null}
# 1. Company Verification returns UBO needing identity check
# beneficial_owners[0].identity_verified = false

# 2. Initiate Person Verification for that UBO
curl -X POST \
  "https://instance.prod.onboardapp.io/api/gateway/execute/{project_hash}/kyc/init" \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: your-api-key" \
  -d '{
    "first_name": "John",
    "last_name": "Doe",
    "date_of_birth": "1975-11-10",
    "country": "GB",
    "external_reference": "ONBOARD-2026-0042-UBO-001"
  }'

# 3. Send the verification URL to the UBO
# https://instance.prod.onboardapp.io/{project_hash}/?t={start_token}
```

<Tip>Use the `external_reference` field to link the Person Verification back to the original Company Verification. A recommended pattern: `{company_external_ref}-UBO-{index}` or `{company_external_ref}-DIR-{index}`.</Tip>

See [Company-to-Person Verification Flow](/data-model/entities#company-to-person-verification-flow) for the full end-to-end flow.
