E-invoicing in Denmark: A Complete Guide for Businesses

Overview

Denmark is one of the earliest adopters of structured e-invoicing in Europe. The country built its national e-invoicing infrastructure around NemHandel — a Danish public e-document exchange network that predates the EU-wide Peppol rollout. Today, Denmark operates as a full Peppol participant and routes B2G and B2B e-invoices through the Peppol network using the EAS (Electronic Address Scheme) identifier 0096.

The competent authority for Danish e-invoicing policy is Erhvervsstyrelsen (ERST) — the Danish Business Authority — operating under the Ministry of Industry, Business and Financial Affairs. ERST maintains the NemHandel infrastructure and the Danish Peppol access point registry.

Denmark uses the Danish krone (DKK) as its currency. The standard VAT rate is 25%, one of the highest in the EU, with limited reduced rates. All amounts in Danish invoices are denominated in DKK unless the trading relationship is explicitly cross-border in another agreed currency.

Mandate and Timeline

Denmark has operated a B2G e-invoicing mandate since 2005, making it one of the first countries in the world to require structured electronic invoices for public sector transactions. The mandate covers all suppliers to Danish central government, regional authorities, and municipalities.

Key dates:

B2B e-invoicing is voluntary but commercially prevalent. Danish enterprises and accounting platforms (e.g., Dinero, e-conomic, Billy) support NemHandel/Peppol natively, so suppliers to Danish businesses are increasingly expected to send via Peppol even without a legal obligation.

Format and Network

Denmark uses Peppol BIS Billing 3.0 as the standard invoice format for cross-border and domestic structured e-invoicing. NemHandel serves as the national exchange layer, and Danish participants are registered in the Peppol SML/SMP infrastructure.

Technical specifics:

Required Fields

For Danish Peppol invoices the following fields are mandatory beyond the EN 16931 baseline:

Integration Example

Send a Danish invoice via the Clearvo API. The endpointId uses scheme 0096 with the recipient's CVR number. No tax engine configuration is required — Clearvo maps taxCode and vatRate directly to the correct BIS 3.0 tax elements.

curl -X POST https://api.clearvo.io/v1/invoices \
  -H "Authorization: Bearer $CLEARVO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "country": "DK",
    "documentType": "invoice",
    "invoiceNumber": "DK-INV-2026-001",
    "issueDate": "2026-06-16",
    "dueDate": "2026-07-16",
    "currency": "DKK",
    "buyerReference": "PO-2026-001",
    "supplier": {
      "name": "Clearvo Technologies Ltd",
      "taxId": "12345678",
      "taxIdCountry": "DK",
      "address": { "street": "Vesterbrogade 1", "city": "Copenhagen", "postalCode": "1620", "country": "DK" },
      "endpointId": "0096:12345678",
      "endpointSchemeId": "0096"
    },
    "buyer": {
      "name": "Denmark Buyer AS",
      "taxId": "BUYERDK001",
      "taxIdCountry": "DK",
      "address": { "street": "Buyer Street 1", "city": "Copenhagen", "postalCode": "1620", "country": "DK" },
      "endpointId": "0096:BUYERDK001",
      "endpointSchemeId": "0096"
    },
    "lines": [
      { "description": "Software consulting services", "quantity": 5, "unitPrice": 1000, "taxCode": "S", "vatRate": 25 },
      { "description": "Platform subscription annual", "quantity": 1, "unitPrice": 3600, "taxCode": "S", "vatRate": 25 }
    ]
  }'

Clearvo performs a live SMP lookup against the Peppol network to verify the buyer's 0096 endpoint registration before dispatch. The response includes the Peppol message ID, AS4 delivery receipt, and the generated UBL 2.1 XML payload.

Key Rules

Clearvo is a developer-first Peppol access point. You provide structured invoice data via a single REST API; Clearvo handles participant lookup, UBL 2.1 generation, AS4 packaging, and delivery receipts. No Danish-specific tax engine or ERP integration is required on your side.

Related country guides

Ready to handle e-invoicing in Denmark?

One API, all 31 countries. Sign up and get your API key within 24 hours.

Get started free →