Resolve the ultimate beneficial owners of any UK company - traversing corporate structures automatically, decoding control types to plain English, and splitting active from ceased PSCs. One API call.
The Companies House PSC API returns the right data - but in a form that requires significant work before it's usable in a compliance or KYB workflow.
Raw CH responses use codes like ownership-of-shares-25-to-50-percent. There are 80+ codes across shares, voting rights, director appointment, LLP membership, and influence. No human-readable decoding is provided.
The CH API returns all PSCs in a single list - past and present - with no filtering. You have to check ceased and ceased_on on every item to determine who still controls the company.
If a corporate entity PSC is registered at CH, you need to fetch its PSCs separately. Then repeat. And handle cycles. The raw API has no chain-traversal capability.
Every control code is translated to plain English. 'ownership-of-shares-25-to-50-percent' becomes 'Owns 25-50% of shares'. All 80+ codes across shares, voting, director appointment, LLP, and RLE are covered.
The response separates active_pscs from ceased_pscs automatically. No need to check ceased or ceased_on on every item - the active register is ready to use directly.
company_number is set only when the owner is a confirmed Companies House registration, so you can pass it straight to the chain endpoint. Otherwise it is null, and registry_number, registry_name and registry_is_companies_house (true, null or false) give the number as filed and the registry that issued it - a foreign registry number is never presented as a UK company number.
Listed PLCs and other entities exempt from PSC filing are detected automatically. The response includes has_psc_exemption: true with an explanation - your code doesn't need to handle exemption links separately.
The /psc/chain endpoint traverses the ownership structure recursively - following corporate entity PSCs to find the natural persons who ultimately control the company.
# Flat PSC register - who controls the company? GET /v1/company/12345678/psc # Ownership chain - who ultimately controls? GET /v1/company/12345678/psc/chain?max_depth=5 X-API-Key: reg_live_...
Every individual node in the chain, at any depth, carries the same four verification fields as /psc. The chain is what reaches the ultimate beneficial owner, so the person an AML check is about comes back with their verification state in the same call. Corporate-entity, legal-person and protected nodes carry none of these fields.
| Field | Meaning |
|---|---|
| verification_status | verified, pending, overdue or unknown. Pending means the deadline is still in the future; unknown means Companies House holds no record for this person |
| identity_verified | true when verified, false only when overdue, null for pending and unknown |
| identity_verified_on | Date of verification. Set only when verified, and null if Companies House gave no date |
| verification_deadline | Set only when pending or overdue. null for an open-ended window |
Every node in the chain has a terminal_reason that explains exactly why traversal ended there.
| terminal_reason | Meaning | UBO found? |
|---|---|---|
| natural_person | An individual - ultimate beneficial owner identified | Yes |
| unverified_registry | A registration number is on file, but it cannot be tied to the Companies House register - the owner may be registered abroad. Not an error, and not a Companies House outage | No |
| foreign_entity | Corporate entity with no registration number filed at all - no further traversal possible | No |
| legal_person | Government body, charity, or similar legal entity | No |
| super_secure | PSC details protected by court order | No |
| unknown_kind | Companies House returned a PSC type we have not classified. The branch is not followed rather than guessed at; the verbatim value is in kind_raw | No |
| psc_exempt | Company exempt from PSC filing (e.g. listed PLC) | No |
| depth_limit | max_depth reached - increase to traverse further | No |
| not_found | Company not found at Companies House, or the lookup failed | No |
| cycle_detected | Circular ownership detected - traversal stopped to prevent a loop | No |
chain_metadata.total_credits so you always know the cost.Verify who controls a business before onboarding. Pull the UBO chain as part of your automated onboarding flow - no manual Companies House searches.
Identify natural persons with significant control for PEP and sanctions screening. The chain endpoint returns individuals in a consistent format regardless of depth.
Corporate landlords and SPVs are often controlled through multi-layer holding structures. Resolve the full chain to identify who ultimately owns the property portfolio.
Verify that the beneficial owners of a borrower match the loan application. Detect undisclosed related-party structures by comparing chains across applicants.
Identify who you are ultimately doing business with before signing term sheets or transferring funds.
Many regulatory regimes require documentation of UBOs above a 25% threshold. The PSC chain gives you this in a machine-readable format ready for your compliance record.
60 days of full access - every endpoint, no monthly cap. No credit card.
By signing up you agree to our terms of service.
Was this page helpful?