# Registry coverage and ownership data

Source: https://help.didit.me/business-verification/kyb-registry-coverage
Updated: 2026-10-12

KYB depth varies by country: some registries publish full ownership, others only officers. Check a jurisdiction and see what happens when data is missing.

Coverage varies **per country and per data point**, because it depends on what the
local registry publishes. Empty officers or owners with
`KYB_OFFICERS_DATA_NOT_FOUND` / `KYB_OWNERSHIP_DATA_NOT_FOUND` usually means the
registry doesn't expose it - not that the lookup failed. In those jurisdictions
the data comes from the business itself or from documents.

## Coverage is per data point, not per country

A country isn't simply "supported" or not. For each jurisdiction, the registry may expose some of these and not others:

![The Business verifications list in the Didit console, one row per company](https://help.didit.me/screenshots/business-verification-light.webp)

*What a registry returns differs by country; open a row to see what came back.*

| Data point | What it covers |
|---|---|
| **Company** | Legal name, registration number, incorporation date, status, registered address |
| **Officers** | Directors, secretaries, and other registered officers |
| **Shareholders** | Direct shareholders, corporate and individual |
| **UBOs** | Ultimate beneficial owners, resolved through the ownership chain |
| **Documents** | Source documents available for collection - certificates, articles |
| **Financials** | Filed annual accounts, summaries, and filing dates |

The [supported countries table](https://docs.didit.me/business-verification/supported-countries) shows exactly which of these is available per jurisdiction. Where a cell is empty, the registry doesn't publish it and Didit falls back to user-submitted data or document-based verification.

> **Tip:** US companies are registered at state level, so the country code uses an extended
> `US_` form - `US_CA`, `US_NY`, `US_DE` - to select the right Secretary of State
> registry. Passing plain `US` won't resolve to a state registry.

## Empty officers or owners is usually coverage, not an error

If a registry select returns clean company details but empty `officers` and `beneficial_owners` alongside `KYB_OFFICERS_DATA_NOT_FOUND` and `KYB_OWNERSHIP_DATA_NOT_FOUND`, the lookup worked. That jurisdiction's registry simply does not expose those data points at the tier the lookup reads.

Check the data tier first: under **Allowed countries**, the workflow picks one dataset per country - **Lite** (the company profile only, with no officers or owners by design), **Shareholders** (adds shareholders and directors) or **UBOs** (adds the ultimate beneficial owners). If the tier is right, it's a real limitation of public registries: several major jurisdictions publish company records openly while keeping directors and shareholders behind a paid or restricted extract.

What to do instead:

1. **Collect it in the hosted flow.** The business admin confirms and extends the ownership structure themselves, which is the designed path for exactly these jurisdictions. See [verifying the people behind a business](https://help.didit.me/business-verification/key-people-and-ubos).
2. **Require a document.** A shareholder register or certified structure chart, collected as part of the workflow.
3. **Ask about the specific jurisdiction.** If you need officer or shareholder data from a registry that offers it only through a paid extract, raise it with your Didit contact - whether that's available and what it costs is a per-jurisdiction commercial question, not something to infer.

## When a specific company doesn't resolve

Sometimes the country is well covered but one company still comes back thin or unmatched. Usual causes:

- **The wrong identifier.** A trading name instead of the registered legal name, or a tax number instead of a registration number.
- **A recent change.** A newly incorporated company, or one that just changed name or address, may not be in the registry snapshot yet.
- **A group structure.** The entity you're looking for is a branch or a holding company with a different registration number.
- **A genuinely registered company reading as unmatched.** If the details are right and it still doesn't resolve, that's worth reporting with the company number rather than working around - registry edge cases get fixed.

> **Warning:** Don't leave a genuinely registered company sitting In review indefinitely because
> the registry lookup was thin. Resolve it deliberately - against a supplied
> registry reference, a collected document, or a manual review decision with a note.
> An unresolved review is a decision you've deferred, not avoided.

## Ownership thresholds are yours to set

Who counts as a UBO is a policy choice - the ownership percentage above which a person must be identified and verified. Set it to match your own obligations rather than accepting a default, because it directly determines how many people your KYB flow will ask to verify, and therefore what each business costs you.

## Sandbox and registry data

A sandbox KYB session uses **mocked** registry responses. It's the right way to test your flow's structure, statuses, and rules, but it tells you nothing about whether a specific real company resolves. For that you need a live session. See [testing in sandbox](https://help.didit.me/getting-started/sandbox-and-testing).
