Which APIs/endpoints to use

Hi, just need to understand which APIs/endpoints/fields should be used to meet the following requirements, and some help with the questions noted please :folded_hands:

BR05: Check company is not insolvent

API = Company Profile?; Endpoint = GET /company/{company_number}/insolvency?; field = status or http status code?

  • Question 1: Is this the correct API/endpoint to check if company is solvent v any other solvency state?
  • Question 2: Is it as simple as 404 or empty record = not insolvent; 200 response = company is either insolvent or partway through this process and cannot therefore be considered solvent?
  • Question 3: Or, can we simply use the Company Profile API and where if the “company_status”: “active” then "has_insolvency_history"will always be false? An example we saw for dissolved company showed “has_insolvency_history”: true.

BR07: Check customer is related to company i.e. is an active officer

API = PSC or Company Officers?; Endpoint = /persons-with-significant-control or GET /company/{company_number}/officers?; field = name or resigned_on?

  • Question 1: Is there an active count field where multiple officers returned in response?
  • Question 2: Are we correct in thinking customer must be listed as “officer_role”: “director” (Accepting they may also be listed as holding other roles, e.g. company secretary)?
  • Question 3: Should Resigned_on be null/blank to demonstrate customer is still active as director?

BR08: Check company is not a closed company / part of a group

I.e. all shareholders (persons of significant control) are people and not other companies.

API = PSC?; endpoint = ?; data field = ?;

  • Question 1: We are working on the basis that person of significant control is a proxy for beneficial owner i.e. shareholder, please advise if that is not correct.
  • Question 2: Is there a field or flag that distinguishes them as a person v a company?

BR09: Check customer is the only director, shareholder (person of significant control), and UBO. API = Officers API or Officers API + PSC API?; endpoint = ?; data field = ?

  • Question 1: If PSC, do we need to call all the 9 x published endpoints in the PSC in turn, all 9 as just one request/response, or a specific endpoint only e.g. individual-beneficial-owner
  • Question 2: Should we also check “resigned_on” field is blank to ensure still active in role or not relevant?
  • Question 3: We are working on the basis that PSC is a proxy for beneficial owner i.e. shareholder, please advise if that is not correct?

More questions: insolvency - that possibly depends on when you want to know. I am not sure exactly when a filing is made to e.g. notify Companies House that insolvency proceedings are in progress. As I mentioned on the other thread you’ll see from company_status when Companies House has been notified that there are such proceedings.

Whether someone is an active officer. Essentially you can either a) list all the known officers for a given company (if you know the company number) or b) search (fuzzy, text) for all the appointments of a given officer. Well - there’s another way also - if from (a) or (b) you have the appointment ID you can directly show all the appointments for that ID. However you’d only get there by (a) or (b) and also those both have a simple “look in the ‘links’ object and simply request the URL” scheme so you normally never really need to worry about the ID itself.

One thing to be aware is that have been instances of “the same individual/entity” having more than one ID. Presumably that is where how the officer was registered differed in some way such that Companies House themselves couldn’t “unify” this with the other records for the officer.

Officers can be of various types (as you say - director, secretary…) See the api constants - the officer_role. If it starts “corporate” they’re a company

PSCs don’t have to be officers in the Companies House sense, I believe. (But in smaller companies very commonly are).

If there isn’t a resigned_on date then I believe this means they are still active.

Working out if a company is owned by another / part of a group is tricky in general.

Please check the PSC documentation and “enum constants” - there are a wide range of “measures of control” that a PSC may have (and a PSC may have several of these).

First - for PSCs as with all other data it may be that it is not current or someone simply didn’t register it. Second - there are a wide range of exemptions! Third - only shareholders with 25% and over are required to register as such (although if e.g. they have other rights or “significant influence and control” that should be listed. Fourth - if someone wants to obscure things they can just have company ownership via an overseas company and the trail as far as Companies House is concerned ends there.

As for “are they a person or a company” the PSC kind will tell you that - starts with e.g. “individual-" or “corporate-” or “legal-person-“ (there are some others including the new “beneficial owner”). Generally there are actually 3 kinds of things: PSCs (humans), RLEs (corporate PSCs) and “ORPs” (Other Registerable Persons) - also known as “Legal Persons” in the API. The latter could be corporate (a council) but can coincide with humans e.g. “Prime Minister” - it’s an office and also (at any time) a particular person. See here:

For the “beneficial owner” ones - these are new, plus that has a slightly more specialised use:

1 Like

Thanks again for sharing such detailed knowledge on this thread as well - super grateful!