How it works
UBO Verify works by iteratively retrieving Enhanced Profiles for each entity in the ownership structure of the root company, tracing shareholders layer by layer until it reaches individuals or terminates for a documented reason. The process follows three steps:1
Search for the root company
Use Company Search to locate the entity and obtain its
codeField and jurisdiction ISO. If the search response includes a registrationAuthorityCodeField, note this value — it is required when ordering the UBO report for certain jurisdictions (e.g. Germany, Canada).2
Request an ownership tree
Submit the root company’s code, country ISO, and your cost parameters. Kyckr will begin retrieving Enhanced Profiles for each shareholder layer and return an
orderIdField for polling.3
Poll for results
Retrieve the ownership tree using the order ID. While the analysis is in progress, the response returns
IN_PROGRESS. Once complete, the tree, UBO list, coverage metrics, and any recommended next actions are returned.Request an ownership tree
Parameters
Response
orderIdField to retrieve results.
Retrieve the ownership tree
Poll the list endpoint with theorderIdField until statusField is no longer IN_PROGRESS.
Processing time depends on the depth and complexity of the ownership structure. Shallow trees with a small number of corporate shareholders complete quickly; deep, multi-jurisdiction structures take longer as each layer requires a live Enhanced Profile retrieval.
Ownership tree status values
Understanding the response
A completed ownership tree response contains several distinct sections. The following example illustrates the key fields:Nodes
ThenodesField array contains every entity in the ownership tree. Each node represents either a company or a person, with edges describing the shareholding relationship to the node below it.
Edges
Each edge records a relationship between a parent entity and a connected entity. An edge is either aSHAREHOLDER edge (an ownership relationship, with a percentage) or a REPRESENTATIVE edge (a director, officer, or other appointment, with a role).
Jointly held shares
In jurisdictions such as Australia and New Zealand, shares may be held jointly. TheshareholdingsField on an edge captures this:
jointHoldingGroupIdField belong to the same jointly held block.
Analysis insights
TheuboAnalysisField provides a structured assessment of your UBO discovery, including coverage metrics, recommended next steps, and detection of potential consolidated ownership.
Analysis status
ThestatusField in uboAnalysisField tells you immediately whether the investigation is complete and, if not, what is preventing it.
When
statusField indicates an incomplete analysis, blockingReasonField provides additional context explaining specifically what is preventing completion.
Coverage metrics
ThemetricsField quantifies how complete your analysis is:
Interpreting the metrics:
- If
shareholdingCoverageFieldis 100% butuboCoverageFieldis low, the entire tree has been explored but many branches end at companies without Enhanced Profiles. UserequiredProfilesFieldto identify which profiles to order next. - If
unpurchasedTotalFieldis high, there is a clear gap to close. Each profile order reduces this value and is likely to improveuboCoverageField.
Required profile recommendations
When further investigation is possible,requiredProfilesField provides a ranked list of the entities whose Enhanced Profiles would have the greatest impact on your UBO coverage:
entityIdField to locate the node in nodesField and the companyCodeField to retrieve its Enhanced Profile directly if needed.
Potential beneficial owners
ThepotentialBeneficialOwnersField surfaces cases where the same individual may appear under multiple name variations across different shareholder declarations. Where combined ownership across those variations exceeds the UBO threshold, the system flags this for review.
Entity resolution
UBO Verify matches company names from shareholder declarations against registered entities globally. The resolution algorithm requires address-based or jurisdiction-specific confirmation before automatically selecting a company match. This means you may encounter more situations requiring manual input — but each resolution will be a high-confidence, verifiable match rather than a potentially incorrect automatic one.Automatic resolution
UBO Verify resolves a node automatically only when it finds a single, unambiguous match. The moment competing or near matches exist, nothing is auto-selected — the candidates are instead surfaced for you to choose from via continuation (covered in the next section), and the resolved node is markedUSER_SELECTED. This is conservative by design: an automatic resolution is always one high-confidence match, never a best guess between alternatives.
An algorithm-resolved node records this in its entitySelectionMetadataField, including when it was resolved (dateSelectedField) and how the match was verified (matchVerificationField):
matchVerificationField records the basis of that single match — use it to judge how much additional review a resolved node warrants:
Both values appear only when
sourceField is ALGORITHM.
Ambiguous matches and continuation keys
When the algorithm cannot resolve a match with sufficient confidence — for example, when multiple companies share the same name in the same jurisdiction — it returns aCOMPANY_NOT_FOUND reason for non-continuation and provides candidate options:
continuationKeyField of the correct entity in a new create request:
USER_SELECTED:
Only one candidate can be selected per ambiguous node. If you later determine the selection was incorrect, you will need to submit a new create request with a different continuation key.
Audit trail
Every ownership tree maintains a complete record of how it was built and how it has evolved through continuations.Continuation selection history
TheselectedCandidatesField documents every manual disambiguation decision made during the investigation:
Version history
ThepreviousVersionsField records the chain of order IDs that preceded the current tree:
Reasons for non-continuation
When the ownership tree algorithm cannot continue down a branch, it returns areasonForNonContinuationField on the relevant node. Any layers already discovered are always returned.
Cached Enhanced Profiles
Enhanced Profiles ordered as part of a UBO Verify request are cached for 24 hours. If you resubmit a request — for example, with a highermaxCreditCost or an additional continuation key — profiles retrieved within that window are reused, avoiding duplicate orders.
After 24 hours, all underlying profiles are refreshed to ensure reporting accuracy.
Response codes
Create endpoint
List endpoint
Company Search
Find the root entity and retrieve its
codeField before requesting an ownership treeEnhanced Profile
Retrieve full company profiles including representatives and shareholders
UBO Verify API Reference
Full request and response schema for the UBO Verify endpoints
UBO Verify Release Note
Summary of the latest UBO Verify enhancements