---
title: "Comment by StackShortlist on \"Look up European companies from official registers with one API\" | Hashnode"
description: "Normalizing registers across countries is harder than it looks, since status values like dissolved, in liquidation and struck off mean different things per juri"
url: "https://hashnode.com/posts/look-up-european-companies-from-official-registers-with-one-api/6ad0d7b8272268e5d656d41a/comment/6ad133dcf39c066aacfe3e6a"
---

[Discussion](https://hashnode.com/posts/look-up-european-companies-from-official-registers-with-one-api/6ad0d7b8272268e5d656d41a)

Comment [Look up European companies from official registers with one API](https://hashnode.com/posts/look-up-european-companies-from-official-registers-with-one-api/6ad0d7b8272268e5d656d41a)

[StackShortlist](https://hashnode.com/@veristria)

[Oct 15](https://hashnode.com/posts/look-up-european-companies-from-official-registers-with-one-api/6ad0d7b8272268e5d656d41a/comment/6ad133dcf39c066aacfe3e6a)

Normalizing registers across countries is harder than it looks, since status values like dissolved, in liquidation and struck off mean different things per jurisdiction. Curious how you map those to a single active or inactive flag, or whether you keep the original status string next to it.

[W System](https://hashnode.com/@wsystem)

[Oct 16](https://hashnode.com/posts/look-up-european-companies-from-official-registers-with-one-api/6ad0d7b8272268e5d656d41a/comment/6ad133dcf39c066aacfe3e6a#reply-6ad1d5e403382ad46b679a6c)

Great question, and honestly, this is the least polished part of the Actor right now.

Every record gets two fields: "active" (true/false) and "status" (a string). "active" is the one that's consistent everywhere. "status" isn't a shared vocabulary yet. Mostly it's the registry's own value, passed through or lightly translated:

-   FR: the raw SIRENE etat\_administratif code (A or C)
-   EE: R/L/N/K mapped to registered / in liquidation / bankrupt / deleted
-   FI: PRH's English company-situation text (e.g. liquidation, bankruptcy) when one exists, otherwise registered/ended
-   GLEIF: the LEI entity status (ACTIVE/INACTIVE)
-   CZ: "dissolved" if ARES has a termination date, otherwise "active"
-   NO: konkurs, underAvvikling and slettedato all collapse into one "deleted/bankrupt/dissolving" value, so you can't tell liquidation from struck-off there
-   PL: we only read the current KRS extract, so it always says "registered" and doesn't check liquidation or bankruptcy entries yet

We also don't keep the raw code as a separate field in every source. Next on the list: a shared enum (active / in\_liquidation / bankrupt / dissolved), the raw code kept next to it, and proper liquidation detection for NO and PL. Thanks for pushing on this!

[W System](https://hashnode.com/@wsystem)

[Oct 16](https://hashnode.com/posts/look-up-european-companies-from-official-registers-with-one-api/6ad0d7b8272268e5d656d41a/comment/6ad133dcf39c066aacfe3e6a#reply-6ad1d7ece1ba22377118c476)

Quick update: this is now shipped (Actor build 1.0.2, also on our API).

Every record now has status\_normalized, one of active / in\_liquidation / bankrupt / dissolved / unknown, plus status\_raw with the registry's own codes and flags. The existing status and active fields are unchanged.

What changed for the weak spots:

-   NO: konkurs, the liquidation flags and slettedato are now separate (bankrupt / in\_liquidation / dissolved).
-   PL: we read the KRS bankruptcy and liquidation sections and the deletion date, and old closed bankruptcies stay active.
-   CZ: dissolved also comes from the commercial-register state, insolvency register entries map to bankrupt, and "v likvidaci" names to in\_liquidation.
-   FI: PRH situation codes (KONK, SELTILA, SANE) are mapped, with reorganisation flagged in status\_raw.

I checked it against about 20 real companies across the seven sources. One caveat: for CZ, "bankrupt" means active insolvency proceedings, which isn't always a declared bankruptcy. Thanks again, the question made the data better.

[StackShortlist](https://hashnode.com/@veristria)

[Oct 16](https://hashnode.com/posts/look-up-european-companies-from-official-registers-with-one-api/6ad0d7b8272268e5d656d41a/comment/6ad133dcf39c066aacfe3e6a#reply-6ad2061b4ed3c9fa1924633e)

That was fast. Keeping status\_raw next to the normalized value is the bit I'd have asked for, since the Norwegian konkurs vs underAvvikling split matters a lot when you're cleaning a prospect list. Will try 1.0.2 on a batch of NO and CZ companies.
