Get ECCTA identity verification compliance snapshot
ECCTA identity verification compliance snapshot for a company.
Returns a verification health report for all current directors and active individual PSCs under the Economic Crime and Corporate Transparency Act 2023. Mandatory identity verification was introduced in November 2025, with enforcement beginning 18 November 2026.
Fields:
- directors_total / pscs_total - count of persons ECCTA identity verification actually applies to: current (non-resigned) directors minus corporate officers and secretaries, and active individual PSCs minus corporate/legal-person PSCs. Not the board size. It is smaller than /company/{number}/directors' total_current, which counts every current officer including secretaries and corporate officers.
- directors_verified / pscs_verified - count Companies House's public register shows as verified: either an identity_verified_on date (verified through an ACSP) or an open-ended verification window (verified directly with Companies House, which publishes no date).
- directors_pending / pscs_pending - count with a verification deadline that has NOT yet passed. Nothing has been missed; during the Nov 2025 - Nov 2026 transition this is the majority state for UK directors.
- directors_overdue / pscs_overdue - count whose deadline has passed with no verification recorded.
- directors_unknown / pscs_unknown - count where identity_verification_details is entirely absent from the CH API response (pre-ECCTA data, not evidence of non-compliance).
- directors_unverified / pscs_unverified - deprecated aliases, kept only for backwards compatibility. They now mean exactly overdue (CH-Api#52, fixed 2026-07-30); before that fix they also counted pending people, which branded roughly 70% of UK directors non-compliant during the transition. Use directors_pending/directors_overdue (or the PSC equivalents) instead.
- verification_rate - verified / (verified + pending + overdue), directors and PSCs combined into one figure. Unknowns are excluded from both the numerator and the denominator. 0.0 when nobody is verified, pending or overdue.
- verification_risk - compliant | pending | partial | high_risk | unknown. A future deadline is deliberately not treated as risk on its own (pending); only a passed deadline with no verification drives high_risk.
- risk_score - 1.0 - verification_rate, or null when no person has a known status (verified, pending or overdue) - i.e. everyone is unknown.
- unverified_persons - every director/PSC who is pending or overdue (both, not overdue-only), each carrying its own status (pending | overdue) and deadline. Read status before describing anyone here as non-compliant - a pending entry has missed nothing. deadline may be null (an open-ended verification window with no printable date); never substitute a fallback date for a null one. This list is longer than the *_unverified counts by design: the deprecated aliases count overdue only, this list carries pending too - comparing len(unverified_persons) to directors_unverified + pscs_unverified and expecting them to match is the mistake to avoid.
- eccta_enforcement_deadline - 2026-11-18
Corporate entity and legal person PSCs are exempt from individual verification and are excluded from all counts.
Plan gating: Pro or Enterprise only. Free and Web plan requests return 403.
Cache: 30-day TTL. Officers and PSC are fetched concurrently.
Credits: 1 credit per call.
Example: /v1/company/00445790/compliance
Request
- Base URL: https://api.registrum.co.uk
- URL: https://api.registrum.co.uk/v1/company/{company_number}/compliance
- Auth: API key in header X-API-Key
Path parameters
Companies House company number (e.g. 00445790 for Tesco PLC). Numeric-only numbers are zero-padded.
Response
Compliance snapshot returned successfully
Example response
{
"cache_age_seconds": 3421,
"cached": true,
"credits_remaining": 487,
"credits_used": 1,
"data": {
"company_age_years": 78,
"company_name": "TESCO PLC",
"company_number": "00445790",
"company_status": "active",
"company_type": "plc"
},
"data_source": "cached",
"status": "success"
}Changes
No recorded changes to this operation across all 1 revision of this API.