dk-oioubl-v2
Module: github.com/invopop/gobl.dk.oioubl
Support for the Danish OIOUBL 2.1 standard used on the NemHandel
e-invoicing network, mandatory for business-to-government (B2G)
transactions in Denmark since 2005.
OIOUBL 2.1 is a national profile of UBL 2.1, maintained by
Erhvervsstyrelsen (the Danish Business Authority). Unlike many
European profiles it predates and does not extend EN 16931.
This addon translates the OIOUBL Schematron rules (v1.17.2, the
hotfix live since 2026-05-18) into GOBL
validations. OIOUBL 2.1 is scheduled to be replaced by NemHandel
BIS 4 starting in 2028.
Sources
- OIOUBL 2.1 documentation overview
- OIOUBL Schematron v1.17.2 (hotfix, live 2026-05-18)
- OIOUBL Schematron rules (browsable source, referenced by rule citations)
Extensions
SKAT excise duty code
Code identifying a Danish excise duty (“punktafgift”) from the SKAT tax scheme codelist (OIOUBLurn:oioubl:id:taxschemeid), set on a
document or line charge whose key is excise. OIOUBL emits the
charge as its own cac:TaxTotal with this code as the
cac:TaxScheme/cbc:ID.
For example, 16 is the duty on chocolate and confectionery
(“Chokolade- og sukkervarerafgift”) and 66 the vehicle
registration tax (“Registreringsafgift af motorkøretøjer”).
The value set is deliberately left open: the codelist has both
gained and lost codes across taxschemeid versions, and includes
non-numeric codes (e.g. 21d).
dk-oioubl-duty-code
dk-oioubl-duty-code
Validation Rules
bill.Invoice
bill.Invoice
tax.Combo
tax.Combo
bill.Charge
bill.Charge
bill.LineCharge
bill.LineCharge
pay.Instructions
pay.Instructions