Validator til danske e-fakturaer: OIOUBL 2.1

Tjek en OIOUBL-faktura, kreditnota eller rykker, før den sendes via NemHandel: UBL 2.1-skemaet og OIOUBL-reglerne i Schematron, med hvert fund på sin linje. Peppol BIS-fakturaer med de danske regler virker også, og intet bliver uploadet.

E-fakturering i Danmark kort fortalt

Fakturaer til det offentlige i Danmark er elektroniske: de sendes via NemHandel, den danske infrastruktur for e-fakturering, og 99 % af dem kommer som e-fakturaer. Formatet er OIOUBL, den danske tilpasning af UBL (version 2.1 siden 2022), eller Peppol BIS Billing 3.0.

Mellem virksomheder er e-fakturering ikke et krav. I stedet har bogføringsloven trin for trin fra 2022 til 2026 gjort digitale bogføringssystemer obligatoriske, og de systemer skal kunne sende og modtage e-fakturaer. Efter bekendtgørelse nr. 811 af 22. september 2026 skal registrerede systemer senest 1. marts 2027 lade brugerne bekræfte deres identitet med MitID og vise muligheden for e-fakturaer, med de øvrige krav fra 1. januar 2028; en virksomhed bliver så tilmeldt modtagelse af e-fakturaer, medmindre den fravælger det inden for fire uger. Grænseoverskridende fakturaer mellem virksomheder i EU bliver elektroniske senest 1. juli 2030 efter ViDA-direktivet.

Sådan tjekker du et OIOUBL-dokument

  1. Åbn validatoren med OIOUBL-fakturaprofilen, eller profilen for kreditnota eller rykker. En fil med CustomizationID OIOUBL-2.1 vælger selv den rigtige.
  2. Indsæt XML'en eller træk filen ind, og klik på Validate.
  3. Klik på et regel-id for at se, hvad reglen tjekker.

Hvad der bliver tjekket

UBL 2.1-skemaet og derefter NemHandels OIOUBL-Schematron 1.17.2. Reglerne navngiver sig selv i deres meddelelser, F- for fejl og W- for advarsler, og sådan vises de her: CustomizationID og profil (F-LIB002), en ordrereference for de profiler, der kræver en (F-INV002), beløbet til betaling mod totalerne (F-INV133), beløb med to decimaler (F-INV149), momsvalutaen (F-INV016), identifikatorer for parterne som CVR- og EAN-numre og kodelisterne.

En Peppol BIS Billing 3.0-faktura kører Peppol-reglerne, som har danske regler for danske leverandører og kunder, f.eks. CVR-nummeret (DK-R-002, DK-R-014).

Profiler at tjekke med

De regler, fakturaer oftest bryder

Hver har en side med, hvad den tjekker, dens test og for mange, hvordan du retter fejlen.

  • F-LIB002: Invalid CustomizationID. Must be either 'OIOUBL-2.01', 'OIOUBL-2.02' or 'OIOUBL-2.1'
  • F-INV002: There must be an OrderReference class for this profileID
  • F-INV133: PayableAmount is calculated incorrectly - PayableAmount ('…' ) don't match total calculation ('…' )
  • F-INV149: Invalid LineExtensionAmount. Must have at least 2 decimals
  • F-INV016: TaxCurrencyCode must be either DKK or EUR
  • DK-R-002: Danish suppliers MUST provide legal entity (CVR-number)
  • DK-R-014: For Danish Suppliers it is mandatory to specify schemeID as "0184" (DK CVR-number) when PartyLegalEntity/CompanyID is used for AccountingSupplierParty

Spørgsmål

Bliver fakturaen uploadet?

Nej. Skemakontrollen og reglerne kører begge i din browser. Kun API'et og URL-overvågningen validerer på vores servere.

Hvorfor ser regel-id'erne ud som F-INV133?

OIOUBL's Schematron sætter regelens id og niveau forrest i hver meddelelse, f.eks. [F-INV133]. Vi bruger det id til reglen og dens side, og F eller W til dens niveau.

Hvilken version af reglerne bruges?

OIOUBL-Schematron 1.17.2 (maj 2026). En ugentlig kontrol fortæller os, når en nyere version udkommer.

Kan jeg tjekke fakturaer fra kode?

Ja: med API'et og kommandolinjeklienten med --schema dk-oioubl-invoice, eller --schema auto for en mappe med forskellige dokumenter.

Officielle kilder

Andre lande