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

# Denmark Company Data – Lite Profile and Enhanced Profile Updates

> Denmark (DK) Lite Profile and Enhanced Profile responses updated with a redesigned address structure, English-normalized vocabulary, share-class capital detail, individual shareholders, and range-based ownership percentages.

## Overview

We've completed a comprehensive review and upgrade of our Denmark (ISO code `DK`) company data mappings. You'll now see richer data, clearer field structures, and more consistent vocabulary across Lite Profile and Enhanced Profile responses.

Integrations do not need code changes — these are improvements within the existing API shape. Endpoint URLs, authentication, request parameters, and HTTP response envelopes are unchanged. However, the *content* of Lite Profile and Enhanced Profile responses has changed: many fields now carry improved values, some previously absent fields are now present, a few fields have been renamed, and several new fields have been added. We encourage customers to review the changes below to take advantage of the newly populated fields and improved values, and to re-verify any downstream logic that parses or pattern-matches on field values (particularly legal form codes, status strings, address structure, capital / shareholder structure, and representative role titles).

Search for Denmark is not affected by this upgrade.

### Key improvements

* `registrationAuthority` now reads **"Danish Business Authority"** (previously **"Det Centrale Virksomhedsregister"**) — a clearer label for consumers building multi-jurisdiction UIs.
* `legalForm.original` now returns the full Danish legal-form name (e.g. **"Aktieselskab"**) instead of the abbreviation (e.g. **"A/S"**); a new `legalForm.normalized` field provides the English translation (e.g. **"Public Limited Company"**) for most entity types.
* Address structure has been redesigned. `streetName`, `streetNumber`, `city`, `municipality`, and `rawAddressLines` are new; `region` has been replaced by `municipality`; `buildingName` is now reserved for a real building name or *c/o* prefix (previously it held the street line); `country` is now a full English name rather than an ISO-2 code.
* Several new top-level fields are populated: `registrationDate`, `previousNames`, `dissolutionDate` (for dissolved entities only), and (Enhanced Profile only) `contactDetails`, `totalCapital`.
* In Enhanced Profile, `foundationDate` has been replaced by `registrationDate`.
* In Enhanced Profile, the `capital` structure has been redesigned to surface share classes and voting rights, and shareholder percentages are now expressed as ranges.
* In Enhanced Profile, `representatives.corporations[]` has been replaced by `representatives.individuals[]`, with natural-person representatives correctly typed as `"Person"`. Role vocabulary has been upgraded from broad Danish categories to specific English position titles, and appointment dates (`startDate`) and active status (`isActive`) are now exposed.

## Lite Profile changes

Lite Profile has been upgraded with a redesigned address structure, several newly populated top-level fields, and improved values for legal form, legal status, and the registration authority.

### Response structure changes

**Before:**

```json theme={null}
{
  "data": {
    "activity": [
      {
        "code": "282900",
        "description": "Fremstilling af andre maskiner til generelle formål i.a.n.",
        "type": "Primary"
      }
    ],
    "address": {
      "buildingName": "Eksempelvej, 10",
      "country": "DK",
      "fullAddress": "Eksempelvej, 10, 4900, Nakskov, LOLLAND, DK",
      "identifier": "EXAMPLE_ADDRESS_ID",
      "postcode": "4900, Nakskov",
      "region": "LOLLAND"
    },
    "companyName": "NORDIC EXAMPLE INDUSTRIES A/S",
    "companyNumber": "22756214",
    "foundationDate": {
      "normalized": "1997-12-12",
      "original": "1997-12-12"
    },
    "legalForm": {
      "original": "A/S"
    },
    "legalStatus": {
      "normalized": "Active",
      "original": "NORMAL"
    },
    "registrationAuthority": "Det Centrale Virksomhedsregister"
  },
  "details": "Success"
}
```

**After:**

```json theme={null}
{
  "data": {
    "activity": [
      {
        "classificationScheme": "DB07_NACErev2",
        "code": "282900",
        "description": "Fremstilling af andre maskiner til generelle formål i.a.n.",
        "type": "Primary"
      }
    ],
    "address": {
      "city": "Nakskov",
      "country": "Denmark",
      "fullAddress": "Eksempelvej 10, 4900 Nakskov, Denmark",
      "identifier": "EXAMPLE_ADDRESS_ID",
      "municipality": "LOLLAND",
      "postcode": "4900",
      "rawAddressLines": [],
      "streetName": "Eksempelvej",
      "streetNumber": "10",
      "type": "Registered Address"
    },
    "companyName": "NORDIC EXAMPLE INDUSTRIES A/S",
    "companyNumber": "22756214",
    "foundationDate": {
      "normalized": "1997-12-12",
      "original": "1997-12-12"
    },
    "legalForm": {
      "normalized": "Public Limited Company",
      "original": "Aktieselskab"
    },
    "legalStatus": {
      "normalized": "Active",
      "original": "NORMAL"
    },
    "previousNames": [
      {
        "endDate": {
          "normalized": "2002-10-16",
          "original": "2002-10-16"
        },
        "name": "EXAMPLE SEPARATION SYSTEMS A/S",
        "startDate": {
          "normalized": "1997-12-12",
          "original": "1997-12-12"
        }
      }
    ],
    "registrationAuthority": "Danish Business Authority",
    "registrationDate": {
      "normalized": "1997-12-12",
      "original": "1997-12-12"
    }
  },
  "details": "Success"
}
```

### Field-by-field changes

| Field                             | Change                          | Before example                                                 | After example                                                                                      |
| --------------------------------- | ------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| `activity[].classificationScheme` | Added                           | *(absent)*                                                     | `"DB07_NACErev2"`                                                                                  |
| `activity[].type`                 | Value semantics                 | `"Primary"` *(applied to every activity, even secondary ones)* | `"Primary"` or `"Secondary"` *(now correctly differentiated)*                                      |
| `address.buildingName`            | Repurposed                      | Held street line, e.g. `"Eksempelvej, 10"`                     | Held only when a real *c/o* / building name exists; omitted for typical registered offices         |
| `address.streetName`              | Added                           | *(absent)*                                                     | `"Eksempelvej"`                                                                                    |
| `address.streetNumber`            | Added                           | *(absent)*                                                     | `"10"`                                                                                             |
| `address.city`                    | Added                           | *(absent — city was embedded in `postcode`)*                   | `"Nakskov"`                                                                                        |
| `address.municipality`            | Renamed                         | `"region": "LOLLAND"`                                          | `"municipality": "LOLLAND"`                                                                        |
| `address.region`                  | Removed                         | `"LOLLAND"`                                                    | *(absent — replaced by `municipality`)*                                                            |
| `address.postcode`                | Value format                    | `"4900, Nakskov"`                                              | `"4900"`                                                                                           |
| `address.country`                 | Value format                    | `"DK"`                                                         | `"Denmark"`                                                                                        |
| `address.fullAddress`             | Value format                    | `"Eksempelvej, 10, 4900, Nakskov, LOLLAND, DK"`                | `"Eksempelvej 10, 4900 Nakskov, Denmark"`                                                          |
| `address.rawAddressLines`         | Added                           | *(absent)*                                                     | `[]`                                                                                               |
| `address.type`                    | Added                           | *(absent)*                                                     | `"Registered Address"`                                                                             |
| `legalForm.original`              | Value format                    | `"A/S"`                                                        | `"Aktieselskab"` *(see note below)*                                                                |
| `legalForm.normalized`            | Added                           | *(absent)*                                                     | `"Public Limited Company"` *(populated for A/S, ApS, K/S; absent for EFO / FBA)*                   |
| `legalStatus.original`            | Value format                    | `"OPLØSTEFTERKONKURS"`, `"Ophørt"`                             | `"OPLØST EFTER KONKURS"`, `"SLETTET"` *(for dissolved / ceased entities; `"NORMAL"` is unchanged)* |
| `registrationAuthority`           | Value format                    | `"Det Centrale Virksomhedsregister"`                           | `"Danish Business Authority"`                                                                      |
| `previousNames`                   | Added                           | *(absent)*                                                     | Array of `{name, startDate:{normalized,original}, endDate:{normalized,original}}`                  |
| `registrationDate`                | Added                           | *(absent)*                                                     | `{"normalized": "1997-12-12", "original": "1997-12-12"}`                                           |
| `dissolutionDate`                 | Added (dissolved entities only) | *(absent)*                                                     | `{"normalized": "2014-12-11", "original": "2014-12-11"}`                                           |

### Notes

* **`legalForm.original`** now emits the full Danish legal-form name (`Aktieselskab`, `Anpartsselskab`, `Kommanditselskab`, `Erhvervsdrivende fond`, `Filial af udenlandsk virksomhed med begrænset ansvar`), replacing the previous abbreviations (`A/S`, `APS`, `K/S`, `EFO`, `FBA`). Consumers doing case-sensitive or exact-match comparisons on this field must accommodate both forms.
* **`legalForm.normalized`** provides an English translation (`Public Limited Company`, `Private Limited Company`, `Limited Partnership`) for Aktieselskab, Anpartsselskab, and Kommanditselskab. The field is absent for Erhvervsdrivende fond (EFO) and Filial af udenlandsk virksomhed (FBA) — consumers should handle both the populated and absent cases.
* **Address restructuring** is the most structurally significant Lite Profile change. The previous shape stored the street line in `buildingName` and combined postcode with city in `postcode`. The new shape separates `streetName`, `streetNumber`, `city`, `postcode`, and (where applicable) `buildingName` into distinct fields. Integrations that extracted values by parsing `fullAddress` or `buildingName` should switch to the typed fields.
* **`legalStatus.original`** value changes depend on the underlying registry status. `"NORMAL"` is unchanged. Dissolved entities previously reported `"OPLØSTEFTERKONKURS"` (no whitespace); this is now `"OPLØST EFTER KONKURS"`. Foreign-branch entities that were previously `"Ophørt"` are now `"SLETTET"`. The `legalStatus.normalized` field continues to provide a stable `Active` / `Inactive` classifier for programmatic use.
* **`dissolutionDate`** is only present when the entity has been dissolved. Active entities do not return this field.

## Enhanced Profile changes

Enhanced Profile inherits all the Lite Profile changes listed above, plus the additional improvements described here. The most significant structural improvements are to `capital`, `representatives`, and the replacement of `foundationDate` with `registrationDate`.

### Response structure changes

**Before:**

```json theme={null}
{
  "data": {
    "capital": [
      {
        "currency": "DKK",
        "shareholdings": [
          {
            "percentage": "100.00",
            "shareholders": {
              "corporations": [
                {
                  "address": {
                    "fullAddress": "Albuen, 31, KOLDING, DK, 6000, Kolding",
                    "identifier": "EXAMPLE_ADDRESS_ID"
                  },
                  "idNumber": "1000000003",
                  "name": "EXAMPLE HOLDINGS ApS",
                  "type": "Corporation"
                }
              ]
            }
          }
        ],
        "totalNominalValue": 2427140.0
      }
    ],
    "companyName": "NORDIC EXAMPLE INDUSTRIES A/S",
    "foundationDate": {
      "normalized": "1997-12-12",
      "original": "1997-12-12"
    },
    "identifiers": {
      "primaryRegistrationNumber": "22756214"
    },
    "legalForm": {
      "original": "A/S"
    },
    "registrationAuthority": "Det Centrale Virksomhedsregister",
    "representatives": {
      "corporations": [
        {
          "idNumber": "1000000004",
          "name": "Jens Eksempel",
          "registeredAddress": {
            "buildingName": "Eksempelvej 140",
            "country": "DK",
            "fullAddress": "Eksempelgade 12, 1961 Klippinge",
            "identifier": "EXAMPLE_ADDRESS_ID",
            "municipality": "Ballerup"
          },
          "role": {
            "original": "Bestyrelse"
          },
          "type": "Corporation"
        }
      ]
    },
    "status": {
      "normalized": "Active",
      "original": "NORMAL"
    }
  }
}
```

**After:**

```json theme={null}
{
  "data": {
    "capital": [
      {
        "currency": "DKK",
        "shareholdings": [
          {
            "percentageIsRange": true,
            "percentageLowerLimit": "100",
            "percentageRange": "100%",
            "percentageUpperLimit": "100",
            "shareholders": {
              "corporations": [
                {
                  "address": {
                    "city": "Kolding",
                    "country": "Denmark",
                    "fullAddress": "Albuen 31, 6000 Kolding, Denmark",
                    "identifier": "EXAMPLE_ADDRESS_ID",
                    "municipality": "KOLDING",
                    "postcode": "6000",
                    "rawAddressLines": [],
                    "streetName": "Albuen",
                    "streetNumber": "31",
                    "type": "Registered Address"
                  },
                  "idNumber": "12345678",
                  "name": "EXAMPLE HOLDINGS ApS",
                  "registrationAuthority": "Danish Business Authority",
                  "registrationNumber": "12345678",
                  "type": "Corporation"
                }
              ]
            }
          }
        ],
        "votingRights": "100%"
      }
    ],
    "companyName": "NORDIC EXAMPLE INDUSTRIES A/S",
    "contactDetails": {
      "email": "company@example.com",
      "telNumber": "00000000"
    },
    "identifiers": {
      "primaryRegistrationNumber": "22756214"
    },
    "legalForm": {
      "normalized": "Public Limited Company",
      "original": "Aktieselskab"
    },
    "previousNames": [
      {
        "endDate": {
          "normalized": "2002-10-16",
          "original": "2002-10-16"
        },
        "name": "EXAMPLE SEPARATION SYSTEMS A/S",
        "startDate": {
          "normalized": "1997-12-12",
          "original": "1997-12-12"
        }
      }
    ],
    "registrationAuthority": "Danish Business Authority",
    "registrationDate": {
      "normalized": "1997-12-12",
      "original": "1997-12-12"
    },
    "representatives": {
      "individuals": [
        {
          "idNumber": "1000000005",
          "isActive": true,
          "name": "Jens Eksempel",
          "placeOfResidence": {
            "city": "Klippinge",
            "country": "Denmark",
            "fullAddress": "Eksempelgade 12, 1961 Klippinge, Denmark",
            "identifier": "EXAMPLE_ADDRESS_ID",
            "municipality": "Ballerup",
            "postcode": "1961",
            "rawAddressLines": [],
            "streetName": "Eksempelgade",
            "streetNumber": "12",
            "type": "Residential Address"
          },
          "role": {
            "normalized": "Board Member",
            "original": "BESTYRELSESMEDLEM"
          },
          "startDate": {
            "normalized": "2023-02-03",
            "original": "2023-02-03"
          },
          "type": "Person"
        }
      ]
    },
    "status": {
      "normalized": "Active",
      "original": "NORMAL"
    },
    "totalCapital": {
      "currency": "DKK",
      "totalValue": 2427140.0
    }
  }
}
```

### Company-level field changes

Enhanced Profile inherits every Lite Profile change (address restructuring, `legalForm.original` / `legalForm.normalized`, `legalStatus.original`, `registrationAuthority`, `previousNames`, `registrationDate`, `dissolutionDate`). Additional Enhanced-only changes:

| Field                               | Change           | Before example                                                  | After example                                                                                                  |
| ----------------------------------- | ---------------- | --------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| `activities[].classificationScheme` | Added            | *(absent)*                                                      | `"DB07_NACErev2"`                                                                                              |
| `contactDetails`                    | Added (optional) | *(absent)*                                                      | `{"email": "...", "telNumber": "..."}` *(present for entities that report contact details; omitted otherwise)* |
| `foundationDate`                    | Removed          | `{"normalized": "1997-12-12", "original": "1997-12-12"}`        | *(absent — replaced by `registrationDate`)*                                                                    |
| `registrationDate`                  | Added            | *(absent)*                                                      | `{"normalized": "1997-12-12", "original": "1997-12-12"}`                                                       |
| `totalCapital`                      | Added            | *(absent — total was emitted as `capital[].totalNominalValue`)* | `{"currency": "DKK", "totalValue": 2427140.0}`                                                                 |

**Note on `foundationDate` vs `registrationDate`**: in Lite Profile, both fields are present and carry the same date value. In Enhanced Profile, `foundationDate` has been dropped and `registrationDate` is emitted in its place. Consumers that previously read `foundationDate` from Enhanced responses must switch to `registrationDate`.

### Capital changes

The `capital` structure has been redesigned to surface share classes, voting rights, and percentage ranges. The aggregate share capital value has been lifted out to a new top-level `totalCapital` object.

#### Capital top-level field changes

| Field                         | Change                   | Before example | After example                                   |
| ----------------------------- | ------------------------ | -------------- | ----------------------------------------------- |
| `totalCapital`                | Added                    | *(absent)*     | `{"currency": "DKK", "totalValue": 2427140.0}`  |
| `capital[].totalNominalValue` | Removed                  | `2427140.0`    | *(absent — moved to `totalCapital.totalValue`)* |
| `capital[].votingRights`      | Added                    | *(absent)*     | `"100%"`, `"Under 5%"`, `"20-24.99%"`           |
| `capital[].classCode`         | Added (multi-class only) | *(absent)*     | `"A"`, `"B+C"`                                  |
| `capital[].classDescription`  | Added (multi-class only) | *(absent)*     | `"Class A Shares"`, `"Class B+C Shares"`        |
| `capital[].type`              | Added (multi-class only) | *(absent)*     | `"A"`, `"B+C"`                                  |

For companies with multiple share classes, the `capital[]` array now contains one element per share class, each carrying its own `classCode`, `classDescription`, `type`, `shareholdings[]`, and `votingRights`. For companies with a single unified share class (such as a typical Aktieselskab), the class-metadata fields are absent and `capital[]` contains a single element as before.

For some entity types (Erhvervsdrivende fond / EFO), `capital[]` is no longer returned; only `totalCapital` is emitted. Integrations that previously relied on the `capital[]` array being present for these entities should fall back to `totalCapital`.

#### Shareholding percentage changes

| Field                                            | Change  | Before example        | After example                            |
| ------------------------------------------------ | ------- | --------------------- | ---------------------------------------- |
| `capital[].shareholdings[].percentage`           | Removed | `"100.00"`, `"33.33"` | *(absent)*                               |
| `capital[].shareholdings[].percentageIsRange`    | Added   | *(absent)*            | `true`                                   |
| `capital[].shareholdings[].percentageLowerLimit` | Added   | *(absent)*            | `"100"`, `"33.33"`, `"0"`                |
| `capital[].shareholdings[].percentageUpperLimit` | Added   | *(absent)*            | `"100"`, `"49.99"`, `"4.99"`             |
| `capital[].shareholdings[].percentageRange`      | Added   | *(absent)*            | `"100%"`, `"33.33-49.99%"`, `"Under 5%"` |

Exact shareholder percentages are no longer emitted. Every shareholding record now carries the range quartet (`percentageIsRange`, `percentageLowerLimit`, `percentageUpperLimit`, `percentageRange`). Consumers that previously read `percentage` directly must switch to the range fields. `percentageRange` is a human-readable composite string (e.g. `"100%"` for a sole shareholder, `"33.33-49.99%"` for a banded shareholding, `"Under 5%"` for a below-disclosure-threshold shareholding).

#### Shareholder percentage bands

Shareholdings follow the official eleven-band enumeration published by the Danish Business Authority for the public ownership register (Det Offentlige Ejerregister). Upstream decimal values are converted to percentage-string edges in the response, with `percentageRange` carrying the canonical display string. The complete set of bands that may appear:

| Upstream CVR decimal | `percentageLowerLimit` | `percentageUpperLimit` | `percentageRange` |
| -------------------- | ---------------------- | ---------------------- | ----------------- |
| `< 0.05`             | `"0"`                  | `"4.99"`               | `"Under 5%"`      |
| `0.05`               | `"5"`                  | `"9.99"`               | `"5-9.99%"`       |
| `0.1`                | `"10"`                 | `"14.99"`              | `"10-14.99%"`     |
| `0.15`               | `"15"`                 | `"19.99"`              | `"15-19.99%"`     |
| `0.2`                | `"20"`                 | `"24.99"`              | `"20-24.99%"`     |
| `0.25`               | `"25"`                 | `"33.32"`              | `"25-33.32%"`     |
| `0.3333`             | `"33.33"`              | `"49.99"`              | `"33.33-49.99%"`  |
| `0.5`                | `"50"`                 | `"66.66"`              | `"50-66.66%"`     |
| `0.6666`             | `"66.67"`              | `"89.99"`              | `"66.67-89.99%"`  |
| `0.9`                | `"90"`                 | `"99.99"`              | `"90-99.99%"`     |
| `1.0`                | `"100"`                | `"100"`                | `"100%"`          |

Consumers should treat `percentageRange` as the authoritative display string. The numeric lower/upper bounds are suitable for threshold comparisons (e.g. "25% or more") but callers should remember the bounds are band edges, not precise shareholdings — a `"33.33-49.99%"` holder owns somewhere in that range, not exactly 33.33%. The `"Under 5%"` band is the CVR disclosure floor; holdings below 5% are not reported at the individual level.

Reference: [Danish Business Authority — Public Ownership Register registration guide](https://virk.dk/myndigheder/stat/ERST/selvbetjening/Det_Offentlige_Ejerregister/vejledning-registrer-ejerforhold/).

#### Corporate-shareholder record changes

| Field                                   | Change             | Before example                                             | After example                                                                                                                                                                          |
| --------------------------------------- | ------------------ | ---------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `…corporations[].registrationNumber`    | Added              | *(absent)*                                                 | `"12345678"` *(the Danish registration number of the shareholder company)*                                                                                                             |
| `…corporations[].registrationAuthority` | Added              | *(absent)*                                                 | `"Danish Business Authority"`                                                                                                                                                          |
| `…corporations[].address`               | Structure expanded | `{"fullAddress": "...", "identifier": "..."}` *(2 fields)* | Full structured address with `streetName`, `streetNumber`, `city`, `municipality`, `postcode`, `country`, `rawAddressLines`, `type: "Registered Address"`, `identifier`, `fullAddress` |
| `…corporations[].idNumber`              | Value format       | 10-digit proprietary identifier                            | Danish registration number for Danish-registered shareholders *(the previous proprietary value may still appear for non-Danish shareholders)*                                          |

#### New: individual shareholders

Natural-person shareholders are now surfaced through a new `shareholders.individuals[]` array alongside the existing `shareholders.corporations[]`. Individual shareholders carry `name`, `type: "Person"`, and a structured residential `address` object with `type: "Residential Address"`. Identifier and registration fields are not emitted for individuals.

```json theme={null}
{
  "shareholders": {
    "individuals": [
      {
        "address": {
          "city": "Hørsholm",
          "country": "Denmark",
          "fullAddress": "Eksempelvej 106, 9263 Hørsholm, Denmark",
          "identifier": "EXAMPLE_ADDRESS_ID",
          "municipality": "Hørsholm",
          "postcode": "9263",
          "rawAddressLines": [],
          "streetName": "Eksempelvej",
          "streetNumber": "106",
          "type": "Residential Address"
        },
        "name": "Jens Eksempel",
        "type": "Person"
      }
    ]
  }
}
```

Previous responses classified all representatives and shareholders under `corporations[]` regardless of whether the entity was a company or a natural person.

### Representatives changes

The `representatives` structure has been redesigned. `representatives.corporations[]` is no longer returned; natural-person representatives now appear under `representatives.individuals[]` with `type: "Person"`. Role vocabulary, address structure, and activity-state fields have all changed.

#### Representative field changes

| Field                            | Change             | Before example                                                                      | After example                                                                                                                                                |
| -------------------------------- | ------------------ | ----------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `representatives.corporations[]` | Removed            | array of representatives (all typed `"Corporation"`)                                | *(absent)*                                                                                                                                                   |
| `representatives.individuals[]`  | Added              | *(absent)*                                                                          | array of representatives typed `"Person"`                                                                                                                    |
| `[*].type`                       | Value format       | `"Corporation"`                                                                     | `"Person"`                                                                                                                                                   |
| `[*].registeredAddress`          | Renamed + expanded | `registeredAddress: {buildingName, country, fullAddress, identifier, municipality}` | `placeOfResidence: {city, country, fullAddress, identifier, municipality, postcode, rawAddressLines, streetName, streetNumber, type: "Residential Address"}` |
| `[*].role.original`              | Value format       | `"Bestyrelse"`, `"Direktion"` *(Danish category)*                                   | `"BESTYRELSESMEDLEM"`, `"FORMAND"`, `"NÆSTFORMAND"`, `"DIREKTØR"`, `"ADM. DIR."` *(specific CVR position code)*                                              |
| `[*].role.normalized`            | Added              | *(absent)*                                                                          | `"Board Member"`, `"Chairman"`, `"Vice Chairman"`, `"Director"`, `"CEO"`                                                                                     |
| `[*].isActive`                   | Added              | *(absent)*                                                                          | `true`                                                                                                                                                       |
| `[*].startDate`                  | Added              | *(absent)*                                                                          | `{"normalized": "2023-02-03", "original": "2023-02-03"}`                                                                                                     |

#### Role title mapping

Previous responses returned one of two broad Danish role categories (`"Bestyrelse"` for the board, `"Direktion"` for management) on `role.original` and did not populate `role.normalized`. Responses now carry a specific CVR position code on `role.original` and an English translation on `role.normalized`:

| Previous category (`role.original`, Danish) | New position code (`role.original`) | New translation (`role.normalized`) |
| ------------------------------------------- | ----------------------------------- | ----------------------------------- |
| `"Bestyrelse"`                              | `"BESTYRELSESMEDLEM"`               | `"Board Member"`                    |
| `"Bestyrelse"`                              | `"FORMAND"`                         | `"Chairman"`                        |
| `"Bestyrelse"`                              | `"NÆSTFORMAND"`                     | `"Vice Chairman"`                   |
| `"Direktion"`                               | `"DIREKTØR"`                        | `"Director"`                        |
| `"Direktion"`                               | `"ADM. DIR."`                       | `"CEO"`                             |

The mapping from previous to new is not 1:1 — the two Danish categories split across five English titles. Integrations that previously matched on `"Bestyrelse"` or `"Direktion"` literals will no longer match any value and must be updated. For stable programmatic use, prefer the English values in `role.normalized`.

#### Representative count

Enhanced Profile now returns only currently-serving representatives, eliminating historical appointments that were previously returned alongside current ones. This yields a materially smaller but more accurate representatives list. Historical appointments are out of scope for Enhanced Profile. `isActive` is exposed on every representative record for consumers that need to filter explicitly.

<Note>
  This change has already been promoted to production ahead of the wider release. Responses from the live V1 API already reflect the current-directors-only behaviour, so no separate preview testing is required for this item — it is included here for completeness.
</Note>

#### Representative `idNumber`

Representative identifiers now follow the CVR scheme; they will not match identifiers from previous responses. Downstream systems using these IDs for person-level deduplication should re-map on next refresh.

## Entity-type coverage

All five Danish registered company types covered by Kyckr's Denmark integration are affected by this update:

* **Aktieselskab (A/S)** — Public Limited Company
* **Anpartsselskab (ApS)** — Private Limited Company
* **Kommanditselskab (K/S)** — Limited Partnership
* **Erhvervsdrivende fond (EFO)** — Commercial Foundation
* **Filial af udenlandsk virksomhed (FBA)** — Branch of a foreign company

The field-level changes described above apply consistently across all entity types. Entity-specific notes:

* **Foundations (EFO)** and **foreign-branch entities (FBA)** do not receive English translations in `legalForm.normalized`; the field is absent for these types.
* **Foreign-branch entities (FBA)** previously had `status.original: "Ophørt"` when ceased; this is now `"SLETTET"`.
* **Kommanditselskab (K/S)** and **Filial af udenlandsk virksomhed (FBA)** typically do not return `capital`, `totalCapital`, `representatives`, or `contactDetails` in either the previous or the new response — consistent with their legal structure.
* **Erhvervsdrivende fond (EFO)** previously returned capital via `capital[]`; the new response returns only `totalCapital` for this type (the `capital[]` array is not emitted).
* **Companies with multiple share classes** (most commonly Anpartsselskab with A / B / C class structures) now have `capital[]` split into one element per share class, with `classCode`, `classDescription`, `type`, and per-class `votingRights` populated.

Some CVR-registered entities are not corporate shareholding structures and therefore return no ownership data (for example embassies, partnerships (I/S), and sole traders). For these, the Enhanced Profile returns no shareholder records — an expected result rather than an error.

## Additional resources

<CardGroup cols={2}>
  <Card title="Lite Profile" icon="file-lines" href="/company-v2/guides/lite-profile">
    Verify basic company details for Denmark
  </Card>

  <Card title="Enhanced Profile" icon="building" href="/company-v2/guides/enhanced-profile">
    Full company profile including representatives and shareholders
  </Card>
</CardGroup>
