We have been surfacing Companies House identity verification across a few million officer records, and hit a couple of things that might save others some time.
The field comes in two distinct shapes
identity_verification_details is not one consistent structure. We see either:
identity_verified_onplus the ACSP that carried out the check, e.g. “Verified 16 July 2025 via DE PINNA LLP ACSP”- a completion statement with a date and no ACSP named, e.g. “verification requirements complete (from 16 April 2026)”
Absent entirely means no completed verification is currently showing. We render that as “not on record” rather than “failed” or “not verified” - it is a rolling requirement and there are legitimate timing reasons.
Do not aggregate it to a company-level statement
The officers list includes secretaries, who frequently show nothing while every director is verified. “All directors verified” is very easy to get wrong. We now count directors and secretaries separately and state the split explicitly.
Adjacent gotcha: previous_names
Not verification-related, but it came up in the same work. Searching only the current company_name silently misses renamed entities. Searching BOOHOO GROUP returns nothing useful - the entity is now DEBENHAMS GROUP HOLDINGS LIMITED, with the old name in previous_names. We now search both and label which one matched, otherwise a renamed company looks like it does not exist.
Happy to compare notes if anyone else is working with this field, particularly if you have seen shapes beyond the two above.
Context: I run verivello.com, which reads these registers. No pitch intended, just where the mileage came from.