> ## Documentation Index
> Fetch the complete documentation index at: https://docs.topograph.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Company Status

> How Topograph models company status across jurisdictions, from binary active/ceased to insolvency proceedings, closure reasons, and dates

## Overview

Every company in every registry has some notion of status. But registries express it very differently:

* Germany's Handelsregister records dozens of granular event codes
* Belgium's KBO has 36 juridical situation codes across 6 categories
* Cyprus simply says "Active" or "Dissolved"

Topograph normalises all of these into a **three-layer model** so you can write one piece of logic that works across all supported countries.

```json theme={null}
"status": {
  "localName": "Ouverture de faillite",
  "active": false,
  "statusDetails": {
    "status": "UNDER_INSOLVENCY_PROCEEDING",
    "closureReason": "BANKRUPTCY",
    "insolvencyStartDate": "2024-03-15"
  }
}
```

***

## The Three Layers

### Layer 1: `active` (boolean)

The simplest signal. `true` means the company is legally operating; `false` means it is not. This is derived deterministically from the registry and is always present.

Use this for quick filtering: *"show me only active companies"*.

### Layer 2: `localName` (string)

The raw status label from the source registry, in its original language. Examples:

| Country | Example `localName`         |
| ------- | --------------------------- |
| Belgium | `Ouverture de faillite`     |
| Germany | `Konkurs`                   |
| Sweden  | `Likvidation`               |
| France  | `En liquidation judiciaire` |
| Poland  | `W upadłości`               |

This is useful when you need to display the exact registry wording to your users.

### Layer 3: `statusDetails` (object)

The standardised, cross-country representation. Always use this layer for logic that needs to work across countries.

| Field                 | Type                   | Description                             |
| --------------------- | ---------------------- | --------------------------------------- |
| `status`              | `CompanyStatus`        | Standardised status enum (see below)    |
| `closureReason`       | `CompanyClosureReason` | Why the company closed, when applicable |
| `closureDate`         | `string` (ISO date)    | When the company was formally closed    |
| `insolvencyStartDate` | `string` (ISO date)    | When insolvency proceedings started     |
| `additionalInfo`      | `string`               | Free-text context from the registry     |

<Note>
  `statusDetails` is populated for all countries where the registry provides
  sufficient data. For countries with very limited registry data (e.g. some
  offshore jurisdictions), only `active` and `localName` may be present.
</Note>

***

## `CompanyStatus` Values

### `ACTIVE`

The company is registered and operating. No special proceedings are in effect.

```json theme={null}
"statusDetails": {
  "status": "ACTIVE"
}
```

### `UNDER_INSOLVENCY_PROCEEDING`

An insolvency or restructuring proceeding has been **opened but not yet concluded**. The company still legally exists; it has not yet been struck off the register. This covers:

* Bankruptcy proceedings opened (company is technically still alive while the liquidator works)
* Judicial reorganisation / restructuring (court-supervised debt restructuring)
* Payment suspension proceedings

The key distinction from `CLOSED`: the company has not yet been **deregistered**. It still appears on the register, but its legal situation is exceptional.

```json theme={null}
"statusDetails": {
  "status": "UNDER_INSOLVENCY_PROCEEDING",
  "closureReason": "BANKRUPTCY",
  "insolvencyStartDate": "2024-03-15"
}
```

<Tip>
  Use `insolvencyStartDate` to assess how long the proceeding has been ongoing.
  Proceedings that have been open for several years without closure may indicate
  a complex or contested case.
</Tip>

### `CLOSED`

The company has been **deregistered** from the registry. It no longer exists as a legal entity. Use `closureReason` and `closureDate` to understand how and when it ended.

```json theme={null}
"statusDetails": {
  "status": "CLOSED",
  "closureReason": "VOLUNTARY_DISSOLUTION",
  "closureDate": "2023-11-01"
}
```

### `UNKNOWN`

The registry provides a status that cannot be mapped to any of the above (e.g. a cancelled registration file, data quality issues). Treat with caution.

***

## `CompanyClosureReason` Values

Only present when `status` is `CLOSED` or `UNDER_INSOLVENCY_PROCEEDING`.

| Value                        | When used                                                                                               |
| ---------------------------- | ------------------------------------------------------------------------------------------------------- |
| `BANKRUPTCY`                 | Company went bankrupt. Covers both open proceedings and concluded cases.                                |
| `LIQUIDATION`                | Liquidation process completed and company was struck off.                                               |
| `VOLUNTARY_DISSOLUTION`      | Shareholders or owners chose to wind down the company voluntarily.                                      |
| `ADMINISTRATIVE_DISSOLUTION` | Registry or authorities dissolved the company (e.g. failure to file, struck off by law).                |
| `COURT_ORDER`                | A court ordered the dissolution (e.g. judicial dissolution for nullity, illegal activity).              |
| `MERGER`                     | Company was absorbed into or merged with another entity. The surviving entity continues.                |
| `SPLIT`                      | Company divided into two or more entities. The original company ceases to exist; new entities carry on. |
| `ACQUISITION`                | Company was acquired and deregistered as a separate entity.                                             |
| `OTHER`                      | Registry confirmed the company is closed but the reason doesn't fit any above category.                 |
| `UNKNOWN`                    | Company is closed but the reason is not available or cannot be mapped.                                  |

### Merger vs Split

These two are often confused:

|                  | `MERGER`                      | `SPLIT`                              |
| ---------------- | ----------------------------- | ------------------------------------ |
| Direction        | Many → One                    | One → Many                           |
| What happens     | Two or more companies combine | One company divides into two or more |
| Original company | Ceases to exist (absorbed)    | Ceases to exist (divided)            |
| Result           | One surviving entity          | Two or more new or existing entities |

Example:

* **Merger**: Company A + Company B → Company C (A and B are `CLOSED + MERGER`)
* **Split**: Company A → Company B + Company C (A is `CLOSED + SPLIT`, B and C are new)

***

## Example API Responses

### Active company (normal)

```json theme={null}
"status": {
  "localName": "Aktiv",
  "active": true,
  "statusDetails": {
    "status": "ACTIVE"
  }
}
```

### Active company under judicial reorganisation (Belgium)

The company is legally still active (no deregistration), but a restructuring proceeding is open.

```json theme={null}
"status": {
  "localName": "Sursis (réorganisation)",
  "active": true,
  "statusDetails": {
    "status": "UNDER_INSOLVENCY_PROCEEDING",
    "insolvencyStartDate": "2024-06-01"
  }
}
```

### Bankrupt company with ongoing proceedings

```json theme={null}
"status": {
  "localName": "Ouverture de faillite",
  "active": false,
  "statusDetails": {
    "status": "UNDER_INSOLVENCY_PROCEEDING",
    "closureReason": "BANKRUPTCY",
    "insolvencyStartDate": "2023-11-15"
  }
}
```

### Company closed by voluntary dissolution

```json theme={null}
"status": {
  "localName": "Dissolution anticipée",
  "active": false,
  "statusDetails": {
    "status": "CLOSED",
    "closureReason": "VOLUNTARY_DISSOLUTION",
    "closureDate": "2022-04-30"
  }
}
```

### Company closed after merger

```json theme={null}
"status": {
  "localName": "Fusion par absorption",
  "active": false,
  "statusDetails": {
    "status": "CLOSED",
    "closureReason": "MERGER",
    "closureDate": "2021-09-01"
  }
}
```

### Company split into two entities

```json theme={null}
"status": {
  "localName": "Scission",
  "active": false,
  "statusDetails": {
    "status": "CLOSED",
    "closureReason": "SPLIT",
    "closureDate": "2023-07-15"
  }
}
```

***

## Recommended Patterns

### Filter for companies you can still do business with

```javascript theme={null}
const isOperational = company.status.active === true;
```

### Detect companies in financial distress

```javascript theme={null}
const inDistress =
  company.status.statusDetails?.status === 'UNDER_INSOLVENCY_PROCEEDING';
```

### Understand why a company closed

```javascript theme={null}
const { status, closureReason, closureDate } =
  company.status.statusDetails ?? {};

if (status === 'CLOSED') {
  switch (closureReason) {
    case 'BANKRUPTCY':
      // Flag for credit risk review
      break;
    case 'MERGER':
    case 'SPLIT':
      // Look up the successor entity
      break;
    case 'VOLUNTARY_DISSOLUTION':
      // Owner choice, low risk signal
      break;
  }
}
```

### Show status in a UI component

```javascript theme={null}
function statusBadge(company) {
  const { active, statusDetails, localName } = company.status;

  if (statusDetails?.status === 'UNDER_INSOLVENCY_PROCEEDING') {
    return { label: 'Insolvent', color: 'orange' };
  }
  if (!active) {
    return { label: localName, color: 'red' };
  }
  return { label: 'Active', color: 'green' };
}
```

***

## Migration from `statusDetailsBeta`

As of Week 9, 2026, `statusDetailsBeta` has been renamed to `statusDetails`. The field name is the only change; all values, types, and semantics are identical.

```diff theme={null}
- company.status.statusDetailsBeta?.status
+ company.status.statusDetails?.status
```
