Overview
We’ve completed a comprehensive review and upgrade of our Denmark (ISO codeDK) 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
registrationAuthoritynow reads “Danish Business Authority” (previously “Det Centrale Virksomhedsregister”) — a clearer label for consumers building multi-jurisdiction UIs.legalForm.originalnow returns the full Danish legal-form name (e.g. “Aktieselskab”) instead of the abbreviation (e.g. “A/S”); a newlegalForm.normalizedfield provides the English translation (e.g. “Public Limited Company”) for most entity types.- Address structure has been redesigned.
streetName,streetNumber,city,municipality, andrawAddressLinesare new;regionhas been replaced bymunicipality;buildingNameis now reserved for a real building name or c/o prefix (previously it held the street line);countryis 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,
foundationDatehas been replaced byregistrationDate. - In Enhanced Profile, the
capitalstructure 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 byrepresentatives.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:Field-by-field changes
Notes
legalForm.originalnow 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.normalizedprovides 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
buildingNameand combined postcode with city inpostcode. The new shape separatesstreetName,streetNumber,city,postcode, and (where applicable)buildingNameinto distinct fields. Integrations that extracted values by parsingfullAddressorbuildingNameshould switch to the typed fields. legalStatus.originalvalue 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". ThelegalStatus.normalizedfield continues to provide a stableActive/Inactiveclassifier for programmatic use.dissolutionDateis 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 tocapital, representatives, and the replacement of foundationDate with registrationDate.
Response structure changes
Before: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:
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
Thecapital 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
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
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, withpercentageRange carrying the canonical display string. The complete set of bands that may appear:
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.
Corporate-shareholder record changes
New: individual shareholders
Natural-person shareholders are now surfaced through a newshareholders.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.
corporations[] regardless of whether the entity was a company or a natural person.
Representatives changes
Therepresentatives 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
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:
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.
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.
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
- 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, orcontactDetailsin either the previous or the new response — consistent with their legal structure. - Erhvervsdrivende fond (EFO) previously returned capital via
capital[]; the new response returns onlytotalCapitalfor this type (thecapital[]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, withclassCode,classDescription,type, and per-classvotingRightspopulated.
Additional resources
Lite Profile
Verify basic company details for Denmark
Enhanced Profile
Full company profile including representatives and shareholders