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

# Business Owners Research Check

> Identify and verify business owners and beneficial ownership through online research

The Business Owners Research check identifies individuals associated with business ownership through online research and cross-references them with self-attested ownership data. This check helps verify ownership structure and identify ultimate beneficial owners (UBOs).

## Overview

The check examines:

* Online mentions of business owners and leadership
* LinkedIn profiles and professional networks
* Corporate registry data
* News articles and press releases
* Company websites and about pages
* Social media profiles

## Running the Check

### API Endpoint

```bash theme={null}
POST https://api.parcha.ai/api/v1/startKYBAgentJob
```

### Request Parameters

<Warning>
  **Important**: You must use your own agent key, not a default or public agent key. Your agent key can be found in the Parcha dashboard under your agent's settings, or in the "Test API Integration" dialog.
</Warning>

<ParamField body="agent_key" type="string" required>
  Your KYB agent key from the Parcha dashboard. This is unique to your organization and agent configuration.
</ParamField>

<ParamField body="check_id" type="string" required>
  Use `"kyb.business_owners_check"` for business owners research.
</ParamField>

<ParamField body="payload" type="object" required>
  The business information for verification.

  <Expandable title="Payload Properties">
    <ParamField body="id" type="string" required>
      A unique identifier for this check case.
    </ParamField>

    <ParamField body="self_attested_data" type="object" required>
      <ParamField body="business_name" type="string" required>
        The legal name of the business to verify.
      </ParamField>

      <ParamField body="website" type="string">
        The official website URL of the business.
      </ParamField>

      <ParamField body="associated_individuals" type="array">
        Array of self-attested owners to verify.

        <Expandable title="Individual Properties">
          <ParamField body="first_name" type="string" required>
            Owner's first name.
          </ParamField>

          <ParamField body="last_name" type="string" required>
            Owner's last name.
          </ParamField>

          <ParamField body="is_business_owner" type="boolean" required>
            Must be true for owners.
          </ParamField>

          <ParamField body="business_ownership_percentage" type="number">
            Ownership percentage (0-100).
          </ParamField>

          <ParamField body="title" type="string">
            Job title or role in the company.
          </ParamField>
        </Expandable>
      </ParamField>
    </ParamField>
  </Expandable>
</ParamField>

### Example Request

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST 'https://api.parcha.ai/api/v1/startKYBAgentJob' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "agent_key": "your-kyb-agent-key",
    "check_id": "kyb.business_owners_check",
    "payload": {
      "id": "owners-check-001",
      "self_attested_data": {
        "business_name": "TechCorp Inc",
        "website": "https://techcorp.example",
        "associated_individuals": [
          {
            "first_name": "Jane",
            "last_name": "Smith",
            "is_business_owner": true,
            "business_ownership_percentage": 51,
            "title": "CEO & Founder"
          },
          {
            "first_name": "John",
            "last_name": "Doe",
            "is_business_owner": true,
            "business_ownership_percentage": 49,
            "title": "CTO & Co-Founder"
          }
        ]
      }
    }
  }'
  ```

  ```python Python theme={null}
  import requests

  api_key = 'YOUR_API_KEY'
  url = 'https://api.parcha.ai/api/v1/startKYBAgentJob'

  headers = {
      'Authorization': f'Bearer {api_key}',
      'Content-Type': 'application/json'
  }

  data = {
      'agent_key': 'your-kyb-agent-key',  # Replace with your actual agent key
      'check_id': 'kyb.business_owners_check',
      'payload': {
          'id': 'owners-check-001',
          'self_attested_data': {
              'business_name': 'TechCorp Inc',
              'website': 'https://techcorp.example',
              'associated_individuals': [
                  {
                      'first_name': 'Jane',
                      'last_name': 'Smith',
                      'is_business_owner': True,
                      'business_ownership_percentage': 51,
                      'title': 'CEO & Founder'
                  },
                  {
                      'first_name': 'John',
                      'last_name': 'Doe',
                      'is_business_owner': True,
                      'business_ownership_percentage': 49,
                      'title': 'CTO & Co-Founder'
                  }
              ]
          }
      }
  }

  response = requests.post(url, json=data, headers=headers)
  print(response.json())
  ```

  ```typescript TypeScript theme={null}
  import axios from 'axios';

  const apiKey = 'YOUR_API_KEY';
  const url = 'https://api.parcha.ai/api/v1/startKYBAgentJob';

  const data = {
    agent_key: 'your-kyb-agent-key',  // Replace with your actual agent key
    check_id: 'kyb.business_owners_check',
    payload: {
      id: 'owners-check-001',
      self_attested_data: {
        business_name: 'TechCorp Inc',
        website: 'https://techcorp.example',
        associated_individuals: [
          {
            first_name: 'Jane',
            last_name: 'Smith',
            is_business_owner: true,
            business_ownership_percentage: 51,
            title: 'CEO & Founder'
          },
          {
            first_name: 'John',
            last_name: 'Doe',
            is_business_owner: true,
            business_ownership_percentage: 49,
            title: 'CTO & Co-Founder'
          }
        ]
      }
    }
  };

  axios.post(url, data, {
    headers: {
      'Authorization': `Bearer ${apiKey}`,
      'Content-Type': 'application/json'
    }
  })
  .then(response => console.log(response.data))
  .catch(error => console.error('Error:', error));
  ```
</CodeGroup>

### Initial Response

```json theme={null}
{
  "id": "job-abc123",
  "status": "PENDING",
  "created_at": "2024-02-15T10:30:00Z",
  "updated_at": "2024-02-15T10:30:00Z",
  "agent_id": "your-agent-key",
  "input_payload": {
    // Original request payload
  }
}
```

## Retrieving Check Results

Once the job is complete, retrieve the results using the job ID with the `getJobByID` endpoint. Make sure to include the `include_check_results=true` parameter to get the full check results.

```bash theme={null}
GET https://api.parcha.ai/api/v1/getJobByID?job_id=job-abc123&include_check_results=true
```

## Check Process

The business owners research check follows these steps:

1. **Online Research**
   * Searches LinkedIn for company leadership
   * Analyzes company website team pages
   * Reviews business directories and registries
   * Examines news articles and press releases

2. **Owner Identification**
   * Identifies individuals in leadership roles
   * Extracts ownership and title information
   * Builds ownership structure from public data

3. **Verification**
   * Cross-references found owners with self-attested data
   * Validates names, titles, and ownership percentages
   * Identifies discrepancies or missing owners

4. **Risk Assessment**
   * Flags undisclosed owners with significant stakes
   * Identifies ownership structure concerns
   * Evaluates transparency of ownership information

## Check Results

### Response Structure

```typescript theme={null}
{
  type: "BusinessOwnersCheckResult";
  passed: boolean;
  identified_owners: Array<IdentifiedOwner>;
  self_attested_owners: Array<SelfAttestedOwner>;
  match_results: Array<OwnerMatch>;
  discrepancies?: Array<Discrepancy>;
}

type IdentifiedOwner = {
  name: string;
  title?: string;
  ownership_percentage?: number;
  source: string;
  source_url?: string;
  confidence_score: number;
}

type OwnerMatch = {
  self_attested_owner: string;
  identified_owner?: string;
  match_status: "verified" | "partial_match" | "not_found" | "mismatch";
  confidence_score?: number;
}

type Discrepancy = {
  type: string;
  severity: "low" | "medium" | "high";
  description: string;
}
```

### Example Results

<CodeGroup>
  ```json Low Risk - All Owners Verified theme={null}
  {
    "type": "BusinessOwnersCheckResult",
    "passed": true,
    "identified_owners": [
      {
        "name": "Jane Smith",
        "title": "CEO & Founder",
        "ownership_percentage": 51,
        "source": "LinkedIn",
        "source_url": "https://linkedin.com/in/janesmith",
        "confidence_score": 95
      },
      {
        "name": "John Doe",
        "title": "CTO & Co-Founder",
        "ownership_percentage": 49,
        "source": "Company Website",
        "source_url": "https://techcorp.example/about",
        "confidence_score": 92
      }
    ],
    "match_results": [
      {
        "self_attested_owner": "Jane Smith",
        "identified_owner": "Jane Smith",
        "match_status": "verified",
        "confidence_score": 95
      },
      {
        "self_attested_owner": "John Doe",
        "identified_owner": "John Doe",
        "match_status": "verified",
        "confidence_score": 92
      }
    ],
    "discrepancies": []
  }
  ```

  ```json Medium Risk - Partial Verification theme={null}
  {
    "type": "BusinessOwnersCheckResult",
    "passed": true,
    "identified_owners": [
      {
        "name": "Jane Smith",
        "title": "CEO",
        "source": "LinkedIn",
        "confidence_score": 88
      }
    ],
    "match_results": [
      {
        "self_attested_owner": "Jane Smith",
        "identified_owner": "Jane Smith",
        "match_status": "verified",
        "confidence_score": 88
      },
      {
        "self_attested_owner": "John Doe",
        "match_status": "not_found"
      }
    ],
    "discrepancies": [
      {
        "type": "owner_not_verified",
        "severity": "medium",
        "description": "Self-attested owner John Doe (49% ownership) could not be verified online"
      }
    ]
  }
  ```

  ```json High Risk - Undisclosed Owners Found theme={null}
  {
    "type": "BusinessOwnersCheckResult",
    "passed": false,
    "identified_owners": [
      {
        "name": "Jane Smith",
        "title": "CEO",
        "ownership_percentage": 40,
        "source": "OpenCorporates",
        "confidence_score": 92
      },
      {
        "name": "Michael Brown",
        "title": "Chairman",
        "ownership_percentage": 60,
        "source": "OpenCorporates",
        "confidence_score": 90
      }
    ],
    "match_results": [
      {
        "self_attested_owner": "Jane Smith",
        "identified_owner": "Jane Smith",
        "match_status": "verified",
        "confidence_score": 92
      }
    ],
    "discrepancies": [
      {
        "type": "undisclosed_owner",
        "severity": "high",
        "description": "Major owner Michael Brown (60% ownership) not disclosed in application"
      },
      {
        "type": "ownership_mismatch",
        "severity": "high",
        "description": "Jane Smith's ownership differs: stated 100%, found 40%"
      }
    ]
  }
  ```
</CodeGroup>

## Risk Factors

The check may flag concerns if:

* Self-attested owners cannot be verified online
* Additional owners found who were not disclosed
* Ownership percentages don't match between sources
* Complex or opaque ownership structures
* Frequent changes in ownership
* No ownership information publicly available
* Owners appear on sanctions or PEP lists

## Configuration Options

The check can be configured with:

* **enable\_linkedin\_search**: Search LinkedIn for owners
* **enable\_open\_search**: Use open web search for ownership data
* **enable\_ubo\_search**: Search for ultimate beneficial owners
* **enable\_opencorporates**: Include OpenCorporates registry data
* **enable\_smart\_crawling**: Crawl company websites for team pages
* **use\_web\_presence\_data**: Use web presence check data for context

## Best Practices

1. **Request Complete Information**: Ask for all owners with 25%+ stakes
2. **Cross-Verify**: Use multiple sources to confirm ownership
3. **Document Sources**: Track where ownership information comes from
4. **Regular Updates**: Re-verify ownership periodically
5. **Combine Checks**: Use alongside ownership document verification

## Related Checks

* [Business Ownership Document Verification](/checks/business-ownership-document-verification) - Verify ownership documents
* [Basic Business Profile Check](/checks/basic-business-profile-check) - Verify business profile
* [Web Presence Check](/checks/web-presence-check) - Research online presence
* [Sanctions Screening](/checks/sanctions-screening-check) - Screen owners against sanctions lists
