Denmark — OIOUBL, NemHandel & Peppol BIS
OIOUBL/Peppol BIS · B2G live since 2005 · Bookkeeping Act phasing 2024–2026 — regulator: Erhvervsstyrelsen (Danish Business Authority). Facts last refreshed: 2026-05-05.
POST /v1/documents/send.
TL;DR
- Denmark has had a universal B2G e-invoicing mandate since 2005 — one of the oldest in Europe.
- Domestic format: OIOUBL (a Danish UBL profile predating Peppol), still used by legacy public-sector ERPs.
- The Bookkeeping Act (2024) requires every business to use a digital bookkeeping system that supports OIOUBL and Peppol BIS receipt by 2026.
- Flowie auto-converts between OIOUBL and Peppol BIS — caller never needs to choose.
Deadlines
| Date | Who | What |
|---|---|---|
| 2005-02-01 | Public sector (B2G) | All public buyers must receive e-invoices (Lov om offentlige betalinger). |
| 2024-07-01 | Class B/C/D companies | Bookkeeping Act: must use a registered digital bookkeeping system. |
| 2026-01-01 | Class A companies | Same Bookkeeping Act obligation extended to smaller companies. |
Background
Denmark was the first EU country to mandate B2G e-invoicing — twenty years before the EU directive. The infrastructure is NemHandel ("easy commerce"), originally a closed Danish network using OIOUBL XML. NemHandel now bridges to Peppol so that an OIOUBL invoice from a Danish ERP reaches any European Peppol AP and vice-versa.
The 2024 Bookkeeping Act (Bogføringsloven) is not strictly an e-invoicing mandate but it has the same effect: every commercially-active company must use a digital bookkeeping system that natively supports OIOUBL and Peppol BIS receipt — meaning the practical reach of e-invoicing in Denmark by 2026 is essentially every business.
Format profile
- OIOUBL 2.1 for legacy NemHandel routes.
- Peppol BIS 3.0 for everything else; what the Bookkeeping Act normalised on.
- Danish CVR number (8 digits) on both parties for B2G; for B2B it's required if available.
Required fields
-
seller.cvrstring (8 digits)required for DK domestic
Danish business registry number (CVR).
-
buyer.cvrstring (8 digits)required for B2G
Public authority's CVR.
Public sector (B2G)
| Hub | Peppol identifier scheme | Lookup |
|---|---|---|
| NemHandel | 0184:DK-<cvr> | https://nemhandel.dk |
Every Danish public buyer is registered on NemHandel and reachable via the EAN/GLN or CVR identifier scheme over Peppol.
B2B reporting / clearance
No central B2B reporting hub — pure transmission only.
Error codes
| Code | Meaning | Fix |
|---|---|---|
OIOUBL-CHK-200 | OIOUBL schematron failure. | Inspect error.details; usually a profile-specific cardinality. |
Testing in sandbox
| What you want to test | How |
|---|---|
| DK B2G via NemHandel | Recipient 0184:DK-12345678 with valid sandbox CVR. |
| Force OIOUBL rendering | Set format: "oioubl". |
FAQ
Is NemHandel separate from Peppol?
Operationally yes, but bridged: Flowie's AP transparently routes a Peppol BIS invoice through the NemHandel bridge when the recipient is on the Danish-only side, and vice-versa.
References
Primary sources (government / regulator / standards body):
- EU Commission · eInvoicing in Denmark — Pan-EU reference factsheet.
- OpenPeppol · Denmark profile — Authoritative Peppol facts.
- ERST · Danish Business Authority (Peppol Authority) — Danish Peppol Authority running NemHandel.
- NemHandel · national infrastructure — Danish national e-document network.
- Bookkeeping Act 2022 (Danish Business Authority) — Digital Bookkeeping Act mandate source.
Industry analyses (vendor trackers — useful for cross-referencing):
- Storecove · Denmark B2B mandate guide — Industry tracker — Bookkeeping Act rollout.
