ediverse Explorer la plateforme

À la une PEPPOL BIS Billing 3.0 L’obligation européenne d’e-invoicing arrive : France sept 2026, Belgique janv 2026, Allemagne 2025.

CVR — le registre central des entreprises danois

Le CVR (Centralt Virksomhedsregister), opéré par Erhvervsstyrelsen depuis 1990, est le pivot identitaire de toute l'économie danoise : 8 chiffres uniques par entité, intégration native dans PEPPOL via l'ICD 0184, API publique gratuite et accès complet aux fiches entreprises. Aucune facture électronique danoise n'existe sans un CVR émetteur et un CVR destinataire.

Historique — du Handelsregister au CVR moderne

Le registre des entreprises danois trouve son origine dans le Handelsregister du XIXᵉ siècle, tenu par les tribunaux. Plusieurs modernisations successives ont conduit au CVR actuel :

  • 1862 : création des registres locaux du commerce tenus par les Skifteretter (tribunaux des successions/commerce).
  • 1973 : centralisation au Aktieselskabs-Registeret (registre des sociétés par actions), précurseur du CVR.
  • 1990 : Lov nr. 417 om Det Centrale Virksomhedsregister crée le CVR moderne — identifiant unique à 8 chiffres pour toutes les entités juridiques danoises.
  • 1995 : couverture étendue à toutes les entreprises personnelles (Enkeltmandsvirksomhed) immatriculées auprès de Skat.
  • 2003 : ouverture publique de CVR.dk avec moteur de recherche grand public.
  • 2010 : IT- og Telestyrelsen devient Erhvervsstyrelsen, reprise du CVR sous une seule autorité.
  • 2018 : API REST publique gratuite lancée pour faciliter l'écosystème des éditeurs comptables.
  • 2024 : intégration native CVR-PEPPOL — ICD 0184 remplace progressivement l'ancien ICD 0096 / GLN 0088 hérité.

Le numéro CVR — format et règles

Le numéro CVR est un identifiant à 8 chiffres décimaux assigné séquentiellement par Erhvervsstyrelsen :

  • Format : NNNNNNNN (8 chiffres exactement, pas de tiret, pas d'espace en représentation canonique).
  • Plage : 10 000 000 → 99 999 999 (les numéros < 10M sont des codes réservés historiques).
  • Pas de checksum : contrairement au numéro de TVA français ou belge, le CVR n'embarque pas de chiffre de contrôle mathématique. Toute vérification doit passer par l'API.
  • Préfixe DK pour TVA : dans le contexte intra-communautaire, le CVR devient SE-nummer en ajoutant « DK » (ex : DK12345678).
  • Pérennité : le CVR survit à la dissolution d'une entreprise et reste réservé pour traçabilité historique.

P-numre — les unités de production

Une entreprise (CVR) peut avoir plusieurs unités de production physiques (succursales, usines, dépôts). Chaque unité reçoit un P-nummer (Production unit number) à 10 chiffres assigné par Erhvervsstyrelsen :

  • Format : 10 chiffres décimaux (souvent commençant par 100 ou 101).
  • Adressabilité : chaque P-nummer a sa propre adresse postale, ce qui permet la facturation à des sites différents d'une même entité juridique.
  • Usage e-facture : un destinataire peut être identifié au P-nummer plutôt qu'au CVR si la facturation est adressée à un site précis (ex : usines pharmaceutiques de Novo Nordisk à Måløv vs Bagsværd).
  • ICD : P-nummer utilise l'ICD 0096 (Denmark Producer numbers) plutôt que 0184 (CVR).

CVR dans PEPPOL — ICD 0184

Dans l'annuaire PEPPOL (SMP), une entité danoise se déclare avec son CVR sous le schème 0184 :

xml cvr-peppol-xml-snippet.xml
<!-- PartyIdentification dans une facture OIOUBL/PEPPOL -->
<cac:PartyIdentification>
  <cbc:ID schemeID="0184">12345678</cbc:ID>
</cac:PartyIdentification>

<!-- EndpointID pour le routage PEPPOL -->
<cbc:EndpointID schemeID="0184">12345678</cbc:EndpointID>

<!-- Identifiant TVA correspondant (SE-nummer) -->
<cac:PartyTaxScheme>
  <cbc:CompanyID schemeID="DK:CVR">DK12345678</cbc:CompanyID>
  <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
</cac:PartyTaxScheme>

API CVR publique gratuite

Erhvervsstyrelsen expose plusieurs API publiques gratuites pour consulter le CVR :

  • CVR Online API (cvrapi.dk) — service gratuit JSON REST jusqu'à 1000 requêtes/jour, plus avec authentification.
  • DataCVR API (datacvr.virk.dk) — API officielle ERST avec authentification OAuth 2.0, accès complet (propriétaires, bilans, comptes annuels XBRL).
  • Virk.dk API — surcouche métier pour les intégrations bancaires et logicielles.
  • SOLR/ElasticSearch CVR — endpoint de recherche full-text sur l'ensemble des fiches entreprises.

Exemple de requête :

http cvrapi-request-response.http
GET https://cvrapi.dk/api?country=dk&search=12345678 HTTP/1.1
Accept: application/json
User-Agent: ediverse.io v1 (contact@ediverse.io)

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
  "vat": 12345678,
  "name": "Eksempel A/S",
  "address": "Vesterbrogade 1",
  "zipcode": "1620",
  "city": "København V",
  "protected": false,
  "phone": "+45 33 14 22 14",
  "email": "kontakt@eksempel.dk",
  "fax": null,
  "startdate": "1995-04-12",
  "enddate": null,
  "employees": "10-19",
  "addressco": null,
  "industrycode": 581900,
  "industrydesc": "Anden udgivelse af bøger, brochurer mv.",
  "companycode": 80,
  "companydesc": "Aktieselskab",
  "creditstartdate": "1995-04-12",
  "creditstatus": 1,
  "creditbankrupt": false,
  "owners": [],
  "productionunits": [
    {
      "pno": 1003456789,
      "main": true,
      "name": "Eksempel A/S - Hovedkontor",
      "address": "Vesterbrogade 1",
      "zipcode": "1620",
      "city": "København V",
      "startdate": "1995-04-12",
      "employees": "10-19"
    }
  ]
}

OpenData mensuel — DataCVR

En complément de l'API live, Erhvervsstyrelsen publie chaque mois un dump complet du CVR dans plusieurs formats :

  • JSON-LD — pour les usages sémantiques et graphes de connaissances
  • CSV — pour les chercheurs et analyses statistiques
  • XBRL — pour les comptes annuels publiés des sociétés tenues de déposer
  • API delta — flux différentiel quotidien pour rester à jour

Ces données alimentent un grand nombre de services tiers : Proff (analyse financière), Bisnode (credit scoring), Greens Analyse, KOMPASS DK, etc.

Liens transverses