Skip to main content

Table of Contents

Data Sources

Denmark uses official registries operated by the Danish Business Authority (Erhvervsstyrelsen). For a given entity, data comes from a single primary source โ€” the CVR. Financial documents are sourced separately from the ERST publication index.

All entity types

  • CVR (Det Centrale Virksomhedsregister / Central Business Register) โ€” Operated by the Danish Business Authority (Erhvervsstyrelsen), the CVR is the central government register containing primary data on all businesses in Denmark and Greenland. This is the sole primary source for company profile data. The CVR provides comprehensive structured data including: company name, legal form, status, incorporation date, registered address, share capital, activity codes, management (legal representatives), legal shareholders, beneficial owners (UBOs), contact information, employee counts, and production units (establishments). The CVR covers all entity types: commercial companies (A/S, ApS), sole proprietorships (ENK), partnerships (I/S, K/S), non-profits, cooperatives, and public institutions.
  • ERST (Erhvervsstyrelsens Offentliggorelsesindeks / Financial Publication Index) โ€” Operated by the Danish Business Authority. Used exclusively for financial statement retrieval (annual reports in XBRL, XHTML, and PDF formats). The ERST indexes all financial publications filed with the Danish Business Authority. It is not a structured data source for company attributes.
The CVR is accessed via an Elasticsearch API (distribution.virk.dk:8443/cvr-re) that returns deeply nested data structures with historical versioning. Each data field includes validity periods (gyldigFra / gyldigTil), allowing the system to extract current values while preserving historical records.

Company Identifiers

Query Identifiers

Company TypeSourceFormatExampleNotes
All entitiesCVR8 digits (CVR number)40715355Unique identifier for all Danish entities

Identifiers in API Response

Once you retrieve company data, the identifiers object contains all available identifiers for that entity:
Identifier TypeFormatExampleFound In
cvr8 digits40715355All entities
enhedsNummerUp to 10 digits4001459308Internal CVR unit number (all entities)
VATDK + 8 digitsDK40715355VAT-registered companies
The CVR number and VAT number share the same 8 digits. The VAT number is simply prefixed with DK.

Search Capabilities

Search TypePatternExampleMatch TypeExpected Results
By CVR Number8 digits40715355ExactSingle company (1 result)
By NameText string (min 3 chars)"Maersk"FuzzyMultiple results (up to 20)
Name search queries the CVR Elasticsearch API with a multi-strategy approach: exact match (highest boost), fuzzy match, prefix match, and historical name match. Identifier searches (CVR number) perform exact term lookups and are significantly faster.

Quirks & Gotchas

QuirkDetails
Elasticsearch-based APIThe CVR uses an Elasticsearch API, not a traditional REST API. Queries use Elasticsearch query syntax internally.
Full legal form names returnedThe system returns langBeskrivelse (full description, e.g., โ€œAnpartsselskabโ€) rather than kortBeskrivelse (abbreviation, e.g., โ€œApSโ€).
Decimal ownership percentagesCVR stores ownership as decimals (0.25 = 25%). The system converts automatically. Data quality issues can occasionally cause totals exceeding 100%.
UBO vs. shareholder separationThe same deltagerRelation structure contains both legal shareholders and beneficial owners. They are distinguished by the FUNKTION attribute: Reel ejer = UBO, others with ownership data = shareholders.
Historical roles includedLegal representatives include both current and historical entries. Use startDate and endDate to filter. Entries without endDate are current.
Capital in DKKCapital amounts are formatted in Danish locale (e.g., DKK 250.000 using periods as thousand separators). Default currency is DKK.
Employee count lagEmployee counts (nyesteAarsbeskaeftigelse) represent the most recent annual employment data, which may be 1-2 years old.
Production units as establishmentsEstablishments are mapped from CVR produktionsenheder (production units), each identified by a P-number.
Trade register extract deliveryThe CVR Erhvervsudtog requires web scraping with JS rendering, taking approximately 2 minutes to generate.
Financial document format mismatchCVR MIME types for financial documents can be incorrect (e.g., documents labeled XHTML may actually be PDFs). The system detects the actual file format from magic bytes.
AI-enriched fieldsStatus standardization, legal form mapping (ISO 20275, standardized type), activity code ISIC mapping, and role English translations are all AI-enriched. The local Danish values are always preserved verbatim.
Cloudflare protectionThe datacvr.virk.dk gateway is Cloudflare-protected, requiring specialized proxy handling for document downloads and articles retrieval.

Mappings

Company Status

Company status is determined deterministically from the CVR sammensatStatus field and lifespan data. The AI enrichment step adds standardized status mapping.
Local StatusEnglishStandardized StatusNotes
NORMALActiveActiveCompany is operating normally
AktivActiveActiveAlternative active status label
OPHORTCeasedClosedCompany has ceased operations (livsforloeb has gyldigTil date)
UNDER_AFVIKLINGUnder DissolutionUnder Insolvency ProceedingCompany is being wound up
KONKURSBankruptClosedCompany is in bankruptcy proceedings
Status determination logic: (1) Use sammensatStatus if available; (2) Fall back to virksomhedsstatus array for current entry; (3) Check livsforloeb (lifespan) โ€” if the latest lifespan period has an end date, status is OPHORT.
Denmark uses the virksomhedsformkode from the CVR. The system returns the full description (langBeskrivelse) rather than the abbreviation (kortBeskrivelse). Legal form standardization (English translation, standardized type, ISO 20275 code) is AI-enriched.
Because legal form standardization and ISO 20275 assignment are AI-enriched, exact mappings may evolve. The local Danish legal form name (langBeskrivelse) is always preserved verbatim.

Key Business Forms

CodeDanish Name (langBeskrivelse)AbbreviationEnglishStandardizedISO 20275
60AktieselskabA/SPublic Limited CompanyCorporation8888
80AnpartsselskabApSPrivate Limited CompanyLimited Liability CompanyLR8H
81IvaerksaetterselskabIVSEntrepreneurial CompanyLimited Liability Company-
115Frivillig foreningFFOVoluntary AssociationNonprofit Organization-
70Kommanditaktieselskab/PartnerselskabP/SLimited Partnership CompanyPartnership-

Sole Proprietorships

CodeDanish NameAbbreviationEnglishStandardizedISO 20275
10EnkeltmandsvirksomhedENKSole ProprietorshipSole ProprietorshipSV8C
15Personligt ejet Mindre VirksomhedPMVPersonally Owned Small BusinessSole Proprietorship-

Partnerships

CodeDanish NameAbbreviationEnglishStandardizedISO 20275
30InteressentskabI/SGeneral PartnershipPartnershipZMC6
40KommanditselskabK/SLimited PartnershipPartnership8GHQ
45Medarbejderinvesteringsselskabโ€”Employee Investment CompanyPartnership-
50Partrederiโ€”Shipping PartnershipPartnership-

Cooperatives & Limited Liability Associations

CodeDanish NameAbbreviationEnglishStandardizedISO 20275
130Andelsselskab (-forening)AMACooperative SocietyCooperative-
140Andelsselskab (-forening) med begraenset ansvarAMBACooperative Society (Ltd.)Cooperative-
150Forening eller selskab med begraenset ansvarโ€”Association or Company (Ltd.)Limited Liability Company-
151Selskab med begraenset ansvarSMBACompany with Limited LiabilityLimited Liability Company-
152Forening med begraenset ansvarFMBAAssociation with Limited LiabilityNonprofit Organization-

Non-Profits & Foundations

CodeDanish NameAbbreviationEnglishStandardizedISO 20275
90Fonde og andre selvejende institutionerโ€”Foundations and Self-Governing InstitutionsNonprofit Organization-
100Erhvervsdrivende fondโ€”Commercial FoundationNonprofit Organization-
110Foreningโ€”AssociationNonprofit Organization-
115Frivillig foreningFFOVoluntary AssociationNonprofit Organization-

Foreign Entities & Branches

CodeDanish NameEnglishStandardizedISO 20275
170Filial af udenlandsk aktieselskab, kommanditaktieselskabBranch of Foreign Public Ltd. Co.Branch or Representative Office-
180Filial af udenlandsk anpartsselskab eller selskabBranch of Foreign Private Ltd. Co.Branch or Representative Office-
190Filial af udenlandsk virksomhed med begraenset ansvarBranch of Foreign Ltd. Liability Co.Branch or Representative Office-
200Filial af anden udenlandsk virksomhedsformBranch of Other Foreign EntityBranch or Representative Office-
210Anden udenlandsk virksomhedOther Foreign EntityBranch or Representative Office-
220Fast forretningssted af Europaeisk okonomisk FirmagruppePermanent Est. of EEIGBranch or Representative Office-
520Gronlandsk afdeling af udenlandsk selskab eller virksomhedGreenlandic Branch of Foreign Co.Branch or Representative Office-
CodeDanish NameEnglishStandardizedISO 20275
160Europaeisk Okonomisk FirmagruppeEuropean Economic Interest Grouping (EEIG)Partnership-
195SCE-selskabEuropean Cooperative Society (SCE)Cooperative-
290SE-selskabEuropean Company (Societas Europaea)CorporationJXKX
291Filial af SE-selskabBranch of European Company (SE)Branch or Representative Office-

Public & Special Entities

CodeDanish NameEnglishStandardizedISO 20275
230Statslig administrativ enhedState Administrative UnitGovernment-Owned Entity-
235Selvstaendig offentlig virksomhedIndependent Public EnterpriseGovernment-Owned Entity-
245RegionRegionGovernment-Owned Entity-
250PrimaerkommuneMunicipalityGovernment-Owned Entity-
260Folkekirkelige InstitutionerChurch InstitutionsGovernment-Owned Entity-
285Saerlig finansiel virksomhedSpecial Financial UndertakingCorporation-

Other

CodeDanish NameEnglishStandardizedISO 20275
20DodsboEstate of DeceasedOther-
270Enhed under oprettelse i ErhvervsstyrelsenEntity Being RegisteredOther-
280Ovrige virksomhedsformerOther Legal FormsOther-
990Uoplyst virksomhedsformUndisclosed Legal FormOther-
Legal representatives are extracted deterministically from the CVR deltagerRelation data. Persons associated with organizations of type LEDELSESORGAN (management body) are classified as legal representatives. Their roles are extracted from the FUNKTION attribute within medlemsData. The classification of a role as legal representative vs. other key person and the English translation are AI-enriched after deterministic extraction.
Danish Role (FUNKTION)English Translation
DIREKTORDirector
ADMINISTRERENDE DIREKTORManaging Director / CEO
FORMANDChairman
NAESTFORMANDDeputy Chairman
BESTYRELSESMEDLEMBoard Member
Danish Role (FUNKTION)English Translation
BESTYRELSESFORMANDChairman of the Board
BESTYRELSESMEDLEMBoard Member
SUPPLEANTAlternate / Substitute
REVISORAuditor
REVISORSUPPLEANTAlternate Auditor
Danish Role (FUNKTION)English Translation
Reel ejerBeneficial Owner (used for UBO identification)
Legalt ejerLegal Owner
FULDT ANSVARLIG DELTAGERFully Liable Partner
STIFTERFounder
Role enrichment (English translation, standardized role, ISO 5009 code) is AI-enriched. The local Danish role name (FUNKTION value) is always preserved verbatim. Both current and historical roles are included, with startDate and endDate fields to indicate tenure periods. Entries without endDate are current.

Other Key Persons

Persons in the CVR deltagerRelation associated with LEDELSESORGAN organizations who do not hold statutory authority (e.g., auditors, alternate members) are classified as other key persons. The distinction between legal representative and other key person is AI-enriched based on the role context.

Shareholders

Shareholders are extracted deterministically from the CVR deltagerRelation data. Persons or companies associated with organizations of type REGISTER are evaluated for ownership. The system explicitly excludes beneficial owners (those with FUNKTION = "Reel ejer") from the shareholder list.
SourceWhen UsedData Extracted
deltagerRelation (REGISTER orgs)AlwaysEntities with EJERANDEL or EJERANDEL_PROCENT attributes
FieldDescriptionSource
sharePercentageOwnership percentageEJERANDEL / EJERANDEL_PROCENT (stored as decimal, e.g., 0.25 = 25%)
typeIndividual or CompanyDetermined from enhedstype (PERSON = individual, otherwise company)
CVR stores ownership percentages as decimals (0.25 = 25%). The system automatically converts these to percentages. Only current ownerships (no end date or future end date) are included. Beneficial owners (Reel ejer) are excluded from the shareholder list and appear only in the UBO data point. Both individual and corporate shareholders are supported.

Activity Code Mapping

Denmark uses the DB07 (Dansk Branchekode 2007) classification, which aligns closely with the European NACE Rev. 2 standard. The system maps activity codes across three levels:
DBR (Danish) โ†’ NACE Rev. 2 (European) โ†’ ISIC Rev. 4 (International)
ClassificationSourceExampleAI Inferred?
DBRCVR hovedbranche.branchekode620100No (official)
NACESame as DBR (codes are compatible)620100No (formal mapping)
ISICDerived from NACE or AI6201Sometimes
AI Enrichment: When ISIC codes cannot be derived from NACE via formal mapping tables, the system uses an LLM to match activity descriptions to ISIC Rev. 4 codes. Every activity item includes an isAIInferred flag to distinguish official vs. AI-derived codes. DBR and NACE codes are never AI-inferred for Denmark.

Data Availability

Data Availability Matrix

Data TypeCommercial CompaniesSole EntrepreneursNon-ProfitsNotes
Company Profileโœ… Asyncโœ… Asyncโœ… AsyncFull data from CVR
Legal Representativesโœ…โœ…โœ…From LEDELSESORGAN relations
Shareholdersโœ…โŒโš ๏ธ LimitedFrom REGISTER relations with ownership data
Ultimate Beneficial Ownersโœ…โŒโš ๏ธ LimitedFrom REGISTER relations with Reel ejer function
Establishmentsโœ…โœ…โœ…From produktionsenheder (P-numbers)
Activity Codesโœ…โœ…โœ…DBR + NACE + ISIC
Legend: โœ… Available | โŒ Not Available | โš ๏ธ Conditionally Available | Async = Asynchronous processing

Documents by Company Type

Document TypeAPI CategoryFormatSKUAvailabilityNotes
CVR Erhvervsudtog (Trade Register Extract)tradeRegisterExtractPDFDNK_REGISTER_EXTRACTโœ… Always availableCertified CVR extract (~2 min delivery)
Financial Statements (Arsrapport)financialStatements[]XBRL/XHTML/PDFDNK_FINANCIAL_STATEMENTSโœ… When filedAnnual/periodic reports with period data
Official PublicationsofficialPublications[]PDF/ZIPDNK_PUBLICATIONSโœ… When filedCorporate documents, AI-classified by type
Trade Register Extract Delivery: The CVR Erhvervsudtog is generated via web scraping with JS rendering and converted to PDF. Estimated delivery time is approximately 120 seconds (2 minutes). Parallel retry attempts are used for reliability.
Financial Document Formats: Danish financial statements can be in XBRL (machine-readable), XHTML (human-readable), or PDF format. Each document includes period information (startDate and endDate) for the fiscal year it covers. The system detects the actual file format from magic bytes because CVR MIME types can be inaccurate.

Example API Responses

All examples use placeholder data. Query: POST /company with { "id": "<id>", "countryCode": "DK", "dataPoints": ["companyProfile"] }
{
  "company": {
    "id": "12345678",
    "countryCode": "DK",
    "identifiers": { "cvr": "12345678", "enhedsNummer": "4001234567" },
    "legalName": "Nordisk Software ApS",
    "registrationDate": "2019-06-01",
    "incorporationDate": "2019-06-01",
    "activityDescription": "Udvikling af software og IT-losninger.",
    "status": { "localName": "NORMAL", "active": true, "statusDetailsBeta": { "status": "ACTIVE" } },
    "legalForm": { "localName": "Anpartsselskab", "standardized": "Limited Liability Company", "iso20275Code": "LR8H" },
    "capital": { "amount": 40000, "currency": "DKK", "formatted": "DKK 40.000" },
    "employeeCount": { "exact": 5, "isEstimate": false },
    "activities": {
      "DBR": [{ "code": "620100", "description": "Computerprogrammering", "isAIInferred": false }],
      "NACE": [{ "code": "620100", "description": "Computerprogrammering", "isAIInferred": false }],
      "ISIC": [{ "code": "6201", "description": "Computer programming activities", "isAIInferred": true }]
    },
    "legalAddress": { "addressLine1": "Vestergade 10", "city": "Kobenhavn", "postalCode": "1456", "countryCode": "DK" },
    "phones": ["+4512345678"],
    "website": "https://www.example.dk",
    "commercialNames": ["Nordisk IT Solutions"]
  },
  "legalRepresentatives": [
    {
      "type": "individual",
      "startDate": "2019-06-01",
      "role": { "localName": "DIREKTOR", "standardized": "Director" },
      "individual": {
        "name": { "fullName": "Lars Nielsen" },
        "residenceAddress": { "addressLine1": "Noerrebrogade 25", "city": "Kobenhavn", "countryCode": "DK" }
      }
    }
  ],
  "shareholders": [
    { "type": "individual", "sharePercentage": 100, "individual": { "name": { "fullName": "Lars Nielsen" } } }
  ],
  "establishments": [
    { "id": "1012345678", "name": "Nordisk Software ApS", "address": { "addressLine1": "Vestergade 10", "city": "Kobenhavn", "postalCode": "1456", "countryCode": "DK" } }
  ]
}
{
  "company": {
    "id": "87654321",
    "countryCode": "DK",
    "identifiers": { "cvr": "87654321", "enhedsNummer": "4009876543" },
    "legalName": "Dansk Industri Holding A/S",
    "registrationDate": "2005-01-15",
    "incorporationDate": "2005-01-15",
    "activityDescription": "Holdingselskab med kapitalandele i datterselskaber.",
    "status": { "localName": "NORMAL", "active": true, "statusDetailsBeta": { "status": "ACTIVE" } },
    "legalForm": { "localName": "Aktieselskab", "standardized": "Corporation", "iso20275Code": "8888" },
    "capital": { "amount": 500000, "currency": "DKK", "formatted": "DKK 500.000" },
    "employeeCount": { "exact": 120, "isEstimate": false },
    "activities": {
      "DBR": [{ "code": "642020", "description": "Ikke-finansielle holdingselskaber", "isAIInferred": false }],
      "NACE": [{ "code": "642020", "description": "Ikke-finansielle holdingselskaber", "isAIInferred": false }],
      "ISIC": [{ "code": "6420", "description": "Activities of holding companies", "isAIInferred": true }]
    },
    "legalAddress": { "addressLine1": "Bredgade 42", "city": "Kobenhavn K", "postalCode": "1260", "countryCode": "DK" },
    "website": "https://www.example-holding.dk"
  },
  "legalRepresentatives": [
    { "type": "individual", "startDate": "2005-01-15", "role": { "localName": "ADMINISTRERENDE DIREKTOR", "standardized": "Managing Director" }, "individual": { "name": { "fullName": "Henrik Andersen" } } },
    { "type": "individual", "startDate": "2010-06-01", "role": { "localName": "FORMAND", "standardized": "Chairman" }, "individual": { "name": { "fullName": "Birgitte Sorensen" } } },
    { "type": "individual", "startDate": "2015-03-20", "role": { "localName": "BESTYRELSESMEDLEM", "standardized": "Board Member" }, "individual": { "name": { "fullName": "Peter Christensen" } } }
  ],
  "shareholders": [
    { "type": "company", "sharePercentage": 60, "company": { "id": "11223344", "countryCode": "DK", "legalName": "Nordisk Kapital ApS" } },
    { "type": "individual", "sharePercentage": 40, "individual": { "name": { "fullName": "Henrik Andersen" } } }
  ],
  "establishments": [
    { "id": "1087654321", "name": "Dansk Industri Holding A/S", "address": { "addressLine1": "Bredgade 42", "city": "Kobenhavn K", "postalCode": "1260", "countryCode": "DK" } },
    { "id": "1087654322", "name": "Dansk Industri - Aarhus", "address": { "addressLine1": "Europaplads 8", "city": "Aarhus C", "postalCode": "8000", "countryCode": "DK" } }
  ]
}
{
  "company": {
    "id": "11223344",
    "countryCode": "DK",
    "identifiers": { "cvr": "11223344" },
    "legalName": "Gammel Handel (ophoert)",
    "registrationDate": "2010-03-15",
    "status": { "localName": "OPHORT", "active": false, "statusDetailsBeta": { "status": "CLOSED" } },
    "legalForm": { "localName": "Enkeltmandsvirksomhed", "standardized": "Sole Proprietorship", "iso20275Code": "SV8C" },
    "legalAddress": { "addressLine1": "Hovedgaden 5", "city": "Aarhus", "postalCode": "8000", "countryCode": "DK" }
  },
  "legalRepresentatives": [
    { "type": "individual", "startDate": "2010-03-15", "endDate": "2022-12-31", "role": { "localName": "DIREKTOR" }, "individual": { "name": { "fullName": "Morten Hansen" } } }
  ]
}
Note: Closed companies have active: false, status OPHORT. Legal representatives may have endDate set. Sole proprietorships typically do not have shareholders or UBO data.
{
  "company": {
    "id": "55667788",
    "countryCode": "DK",
    "identifiers": { "cvr": "55667788" },
    "legalName": "Kobenhavns Idraetsforening",
    "registrationDate": "2015-08-20",
    "incorporationDate": "2015-08-20",
    "activityDescription": "Sportsaktiviteter i ovrigt.",
    "status": { "localName": "NORMAL", "active": true, "statusDetailsBeta": { "status": "ACTIVE" } },
    "legalForm": { "localName": "Frivillig forening", "standardized": "Nonprofit Organization" },
    "activities": {
      "DBR": [{ "code": "931900", "description": "Andre sportsaktiviteter", "isAIInferred": false }],
      "NACE": [{ "code": "931900", "description": "Andre sportsaktiviteter", "isAIInferred": false }],
      "ISIC": [{ "code": "9319", "description": "Other sports activities", "isAIInferred": true }]
    },
    "legalAddress": { "addressLine1": "Idraetvej 12", "city": "Kobenhavn", "postalCode": "2100", "countryCode": "DK" }
  },
  "legalRepresentatives": [
    { "type": "individual", "startDate": "2015-08-20", "role": { "localName": "FORMAND", "standardized": "Chairman" }, "individual": { "name": { "fullName": "Karen Pedersen" } } }
  ]
}
Note: Non-profits typically do not have shareholders or UBOs. Legal representatives are extracted from the same LEDELSESORGAN management data.
Query with "dataPoints": ["ultimateBeneficialOwners"]:
{
  "ultimateBeneficialOwners": [
    {
      "name": { "fullName": "Lars Nielsen" },
      "residenceAddress": { "addressLine1": "Noerrebrogade 25", "city": "Kobenhavn", "countryCode": "DK" },
      "control": {
        "types": ["ownership-of-shares", "voting-rights"],
        "description": "Beneficial owner with 100% ownership",
        "details": [
          { "type": "shares", "percentageValue": 100, "nature": "direct" },
          { "type": "voting-rights", "percentageValue": 100, "nature": "direct" }
        ]
      }
    }
  ]
}
Note: UBOs are always individuals (never corporate entities). They are identified by FUNKTION = "Reel ejer" in the CVR REGISTER organizations. Ownership and voting rights percentages are derived from the CVR EJERANDEL data. The beneficial ownership percentage may differ from the legal shareholding percentage.
Documents are returned when "dataPoints": ["availableDocuments"] is requested.
API CategoryDocumentNotes
tradeRegisterExtractCVR Erhvervsudtog PDFAlways available (~2 min delivery)
financialStatements[]Annual reports (XBRL/XHTML/PDF)When filed, with period data
officialPublications[]Corporate documents (articles, decisions)When filed, AI-classified

Data Source Priority & Routing

For a given entity, all data comes from a single source: the CVR โ€” Denmark does not have multiple competing registries. Financial documents are the only exception, sourced from the separate ERST publication index.
Data Flow:
  1. Company Profile โ€” CVR Elasticsearch API (distribution.virk.dk:8443/cvr-re) via authenticated API call
  2. Financial Statements โ€” ERST Offentliggorelsesindeks (distribution.virk.dk/offentliggoerelser) via proxied API call
  3. Official Publications & Trade Register Extract โ€” CVR Gateway (datacvr.virk.dk/gateway) via Cloudflare bypass (ZenRows)
Shared data fetch: The company profile, legal representatives, shareholders, and UBOs all share the same raw CVR data fetch. CVR data is fetched only once per request, regardless of how many data points need it.

Ultimate Beneficial Owners

UBOs are extracted from the same CVR data as shareholders but are filtered specifically for individuals with FUNKTION = "Reel ejer" (beneficial owner). UBO ownership percentages may differ from legal shareholding percentages.
FieldDescriptionSource
ownershipPercentageBeneficial ownership percentageEJERANDEL / EJERANDEL_PROCENT from the โ€œReel ejerโ€ org entry
votingRightsPercentageVoting rights percentageSame as ownership (assumed equal)
control.typesControl typesownership-of-shares and voting-rights
UBOs are available as a separate data point (ultimateBeneficialOwners) with its own SKU (DNK_UBO_DATA). This allows fetching UBO data independently of the full company profile.