ECCTA 2023

ECCTA Identity Verification

The Economic Crime and Corporate Transparency Act 2023 requires all UK company directors and individual PSCs to verify their identity with Companies House. Enforcement begins 18 November 2026. Registrum surfaces verification status in a single API call.

Nov 2025
Mandatory from
All directors & individual PSCs
Who must verify
Nov 2026
Enforcement

Check any company’s ECCTA status

Enter a company number for an instant sample report - no signup. Add your email afterwards to unlock a live verification snapshot from the Companies House register.

Free instant preview uses a sample report. Add your email after searching to unlock a live check for the company you enter.

What is ECCTA identity verification?

What changed

ECCTA 2023 introduced mandatory identity verification via the Companies House digital portal. Directors must photograph their face and identity document; CH issues an 11-character personal code (UVID) on success. Verified status is publicly visible on the CH register.

Who must verify

All directors of UK limited companies, PLCs, and LLPs. All individual PSCs (Persons with Significant Control) who are natural persons. Corporate entity and legal person PSCs are exempt. Sole traders are not affected.

Enforcement timeline
April 2025
Voluntary verification opens
November 2025
Legally mandatory for new appointments
November 2026
Enforcement begins

What the API returns

GET /v1/company/{number}/compliance

{
  "status": "success",
  "data": {
    "company_number": "00445790",
    "compliance_cache_schema_version": 1,
    "directors_total": 10,
    "directors_verified": 3,
    "directors_pending": 7,
    "directors_overdue": 0,
    "directors_unverified": 0,
    "directors_unknown": 0,
    "pscs_total": 0,
    "pscs_verified": 0,
    "pscs_pending": 0,
    "pscs_overdue": 0,
    "pscs_unverified": 0,
    "pscs_unknown": 0,
    "verification_rate": 0.3,
    "verification_risk": "partial",
    "risk_score": 0.7,
    "unverified_persons": [
      {
        "name": "BODSON, Bertrand Jean Francois",
        "role": "director",
        "kind": "director",
        "status": "pending",
        "deadline": null
      },
      {
        "name": "FAIRBAIRN, Carolyn Julie",
        "role": "director",
        "kind": "director",
        "status": "pending",
        "deadline": null
      },
      {
        "name": "GILLILAND, Stewart Charles",
        "role": "director",
        "kind": "director",
        "status": "pending",
        "deadline": null
      },
      {
        "name": "MURPHY, Gerard Martin",
        "role": "director",
        "kind": "director",
        "status": "pending",
        "deadline": null
      },
      {
        "name": "MURPHY, Ken",
        "role": "director",
        "kind": "director",
        "status": "pending",
        "deadline": null
      },
      {
        "name": "NAWAZ, Imran",
        "role": "director",
        "kind": "director",
        "status": "pending",
        "deadline": null
      },
      {
        "name": "SILVER, Caroline Louise",
        "role": "director",
        "kind": "director",
        "status": "pending",
        "deadline": null
      }
    ],
    "eccta_enforcement_deadline": "2026-11-18"
  },
  "cached": false,
  "credits_used": 1
}
FieldTypeDescription
verification_riskstring"compliant" | "pending" | "partial" | "high_risk" | "unknown"
verification_ratefloatDirectors and PSCs combined: verified / (verified + pending + overdue). Unknowns are excluded from both the numerator and the denominator.
directors_verifiedintCurrent directors with a confirmed identity_verified_on date at Companies House.
directors_pendingintCurrent directors with verification outstanding but not yet past their individual deadline.
directors_overdueintCurrent directors with verification outstanding and past their individual deadline.
directors_unverifiedintDeprecated alias for directors_overdue — OVERDUE ONLY, kept for backward compatibility. It is NOT directors_pending + directors_overdue, and it is NOT the same count as unverified_persons.length (which lists both pending and overdue people). See the callout below.
directors_unknownintidentity_verification_details entirely absent from CH API — pre-ECCTA data.
unverified_personsarrayEvery director or PSC not yet verified — both pending and overdue. Each entry has a status ("pending" | "overdue") and a deadline (ISO date, or null when not yet computable).
eccta_enforcement_deadlinestringAlways 2026-11-18 — the date Companies House begins enforcement action.
The directors_unverified trap

directors_unverified is a deprecated field that counts overdue directors only. It does not include directors who are still pending (outstanding but not yet past their deadline). A company can have every director unverified and directors_unverified: 0 at the same time — the example above is exactly that case. To find everyone who still needs to verify, read unverified_persons (both pending and overdue people, each with its own status), or read directors_pending and directors_overdue directly.

Plan availability

The /compliance endpoint requires a Pro or Enterprise plan. The identity_verified and identity_verified_on fields on the existing directors and PSC endpoints are available on all plans. Watching a whole client book? The Compliance Monitoring add-on raises your watch cap to 100 companies and unlocks compliance risk-change webhooks.

Start monitoring ECCTA compliance

Get a free API key and check verification status on your first call. No credit card required.