UBO Discovery

This guide provides everything engineering, risk, and compliance infrastructure teams need to integrate Global UBO Discovery into existing Know Your Business (KYB) verification workflows.

Overview & Technical Architecture

1. What is Global UBO Discovery?

Global UBO Discovery is an AI-assisted ownership reconstruction capability integrated directly into the standard Trulioo KYB verification transaction workflow. Global registries are notoriously fragmented, providing partial filings, disparate legal entity formatting, and siloed jurisdiction records that fail to trace cross-border control.

UBO Discovery bridges this gap by querying governed public data sources, registry data, and corporate filings in real time. It applies jurisdiction-aware logic to autonomously traverse, link, and reconstruct Ultimate Beneficial Ownership (UBO) chains. The final output is returned within your existing transaction payload as a single, normalized, source-cited JSON schema.

Key Integration Characteristics

  • Zero Workflow Disruption: It functions as a native KYB datasource (DatasourceGroup: UBO Discovery). There is no need to stand up separate endpoints or transform distinct payloads.

  • API Compatibility: Supported across NAPI v1 and NAPI v3 platforms.

  • Global Footprint: Available globally with jurisdiction-aware logic processing across 75+ major global markets.

  • Configurable Execution: Can be explicitly triggered via request flags

2. Configuration and API Request

Before making API calls, ensure that the UBO Discovery datasource group is added to your target product package (Essentials, Insights). Reach out to your Customer Success Manager or Customer support to make this available.

Request flag

To execute the UBO discover data source, include the UBODiscovery parameter with value true in your API request to the KYB Verification API

Sample API Request

# POST https://api.trulioo.com/v3/business/verify

{
  "VerificationType": "Live",
  "PackageId": "YOUR_PACKAGE_ID",
  "CountryCode": "GB",
  "CustomerReferenceID": "merchant-12345",
  "BusinessDataFields": {
    "BusinessName": "Example Trading Ltd",
    "BusinessRegistrationNumber": "12345678",
    "JurisdictionOfIncorporation": "GB",
    "EnhancedProfile": true,
    "Entities": true,
    "UBODiscovery": true
  },
  "VerboseMode": false
}

Recommendations for Input fields

While the reconstruction engine can execute using just the business name, entity resolution accuracy spikes dramatically when anchored by structured metadata. Use the following input matrix to optimize resolution rates:

FieldRoleImpact on Response
BusinessNameRequiredActs as the anchor for initial search indexing.
CountryCodeRequiredActs as the anchor for initial search indexing.
BusinessRegistrationNumberRecommendedEliminates entity ambiguity across similar or identical names.
JurisdictionOfIncorporationRecommendedEliminates entity ambiguity across similar or identical states.
Address FieldsOptionalFilters our historical or defunct entities matching the target name

3. Data Schema and Response Structure

When processing completes, the ownership graph output is nested within the Record.DatasourceResults array under the DatasourceName: "UBO Discovery" block. The structural hierarchy is returned inside AppendedFields with FieldName: "CompanyOwnershipHierarchy".

{
  "TransactionID": "a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d",
  "CountryCode": "GB",
  "Record": {
    "TransactionRecordID": "9f8e7d6c-5b4a-3f2e-1d0c-9b8a7f6e5d4c",
    "RecordStatus": "match",
    "DatasourceResults": [
      {
        "DatasourceName": "UBO Discovery",
        "DatasourceFields": [
          {
            "FieldName": "BusinessName",
            "Status": "match"
          },
          {
            "FieldName": "BusinessRegistrationNumber",
            "Status": "match"
          }
        ],
        "AppendedFields": [
          {
            "FieldName": "CompanyOwnershipHierarchy",
            "Data": {
              "Ownerships": [
                {
                  "UniqueId": "1",
                  "FullName": "Example Trading Ltd",
                  "BusinessEntityType": "Business",
                  "BeneficiaryType": "Root Business",
                  "DegreeOfSeparation": 0,
                  "DirectOwnershipPercentage": 100.0
                },
                {
                  "UniqueId": "2",
                  "FullName": "Vertex Holdings B.V.",
                  "BusinessEntityType": "Business",
                  "BeneficiaryType": "Shareholder",
                  "DegreeOfSeparation": 1,
                  "DirectOwnershipPercentage": 65.0
                },
                {
                  "UniqueId": "3",
                  "FullName": "Sarah Jenkins",
                  "GivenName": "Sarah",
                  "Surname": "Jenkins",
                  "BusinessEntityType": "Individual",
                  "BeneficiaryType": "Beneficial Owner",
                  "DegreeOfSeparation": 2,
                  "DirectOwnershipPercentage": 0.0,
                  "IndirectOwnershipPercentage": 39.0,
                  "ControlOwnershipType": "Shareholder"
                },
                {
                  "UniqueId": "4",
                  "FullName": "Michael Chen",
                  "GivenName": "Michael",
                  "Surname": "Chen",
                  "BusinessEntityType": "Individual",
                  "BeneficiaryType": "Beneficial Owner",
                  "DegreeOfSeparation": 1,
                  "DirectOwnershipPercentage": 35.0,
                  "ControlOwnershipType": "Direct Shareholder"
                }
              ],
              "Relationships": [
                {
                  "ParentUniqueId": "1",
                  "TargetUniqueId": "2",
                  "Type": "Shareholding",
                  "SharePercentage": 65.0,
                  "IsDirectControl": true
                },
                {
                  "ParentUniqueId": "2",
                  "TargetUniqueId": "3",
                  "Type": "Shareholding",
                  "SharePercentage": 60.0,
                  "IsDirectControl": false
                },
                {
                  "ParentUniqueId": "1",
                  "TargetUniqueId": "4",
                  "Type": "Shareholding",
                  "SharePercentage": 35.0,
                  "IsDirectControl": true
                }
              ],
              "OwnershipSummary": {
                "TotalOwnershipCount": 3,
                "MaximumDegreeOfSeparation": 2,
                "TotalAllocatedOwnershipPercentage": 100.0,
                "OrganizationsCount": 1,
                "IndividualsCount": 2,
                "UnknownsCount": 0
              }
            }
          }
        ],
        "Errors": []
      }
    ]
  }
}

For more information on the standardized Business Verify response, refer this link