Syntax

UBL (Universal Business Language)

Definition

UBL (Universal Business Language) ist ein von OASIS normiertes XML-Vokabular für Geschäftsdokumente, darunter Rechnungen, Bestellungen und Lieferscheine. UBL 2.1 ist eine der zwei zulässigen Syntaxen für EN-16931-konforme Rechnungen und wird unter anderem für XRechnung sowie Peppol BIS Billing 3.0 verwendet. UBL-Rechnungen verwenden den Namespace `urn:oasis:names:specification:ubl:schema:xsd:Invoice-2`.

Hintergrund & Kontext

UBL (Universal Business Language) ist ein offener, von OASIS standardisierter Satz von XML-Schemata für elektronische Geschäftsdokumente. Über die Rechnung hinaus umfasst UBL über 80 Dokumenttypen wie Bestellung (Order), Lieferschein (DespatchAdvice), Gutschrift (CreditNote) und Mahnung. UBL trennt die Komponenten in zwei Bausteinbibliotheken: CBC (Common Basic Components, einfache Werte wie cbc:ID oder cbc:IssueDate) und CAC (Common Aggregate Components, zusammengesetzte Strukturen wie cac:AccountingSupplierParty). Eine UBL-Rechnung beginnt mit dem Wurzelelement `<Invoice>` im Namespace `urn:oasis:names:specification:ubl:schema:xsd:Invoice-2`; eine Gutschrift mit `<CreditNote>`. UBL 2.1 ist eine der beiden von EN 16931 zugelassenen Syntaxen und bildet die technische Grundlage von XRechnung sowie Peppol BIS Billing 3.0. Wer XRechnung im UBL-Format erzeugt, mappt also die syntaxunabhängigen Business Terms (z.B. BT-1 Rechnungsnummer) auf konkrete UBL-Elemente (cbc:ID).

In der Praxis — ein Beispiel

Die Rechnungsnummer (Business Term BT-1) wird in UBL als `<cbc:ID>RE-2024-00123</cbc:ID>` direkt unter dem Wurzelelement abgebildet, das Rechnungsdatum (BT-2) als `<cbc:IssueDate>2024-07-15</cbc:IssueDate>`. Der Verkäufer (BG-4) steht in `<cac:AccountingSupplierParty>` mit verschachtelten Elementen für Name (cbc:RegistrationName), Adresse (cac:PostalAddress) und Steuerregistrierung (cac:PartyTaxScheme). Genau diese Struktur prüft der KoSIT-Validator gegen das UBL-2.1-XSD und anschließend gegen die EN-16931- und BR-DE-Schematron-Regeln.

Häufige Fehler

  • CBC und CAC nicht verwechseln: einfache Werte gehören in cbc-Elemente, zusammengesetzte Strukturen in cac-Elemente — falsche Namespaces brechen die Schemavalidierung.
  • Für Gutschriften muss das Wurzelelement `<CreditNote>` mit eigenem Namespace verwendet werden, nicht `<Invoice>` mit Typ-Code 381.
  • UBL und CII dürfen niemals im selben Dokument gemischt werden — das führt zu SCHEMA-002-Fehlern.

Häufig gestellte Fragen

Was bedeuten cbc und cac in UBL?

cbc steht für Common Basic Components (einfache Datenfelder wie IDs, Datumsangaben, Beträge), cac für Common Aggregate Components (zusammengesetzte Strukturen wie Parteien, Adressen, Steuergruppen). Sie sind die zwei zentralen UBL-Namespaces.

Ist UBL besser als CII?

Keine der beiden Syntaxen ist überlegen — EN 16931 behandelt sie gleichwertig. UBL ist im B2G- und Peppol-Umfeld verbreiteter, CII bildet die Basis von ZUGFeRD/Factur-X. Die Wahl hängt von Empfänger und Software ab.

Welchen Namespace nutzt eine UBL-Rechnung?

Eine UBL-Rechnung nutzt urn:oasis:names:specification:ubl:schema:xsd:Invoice-2, eine Gutschrift den entsprechenden CreditNote-2-Namespace. Ein falscher oder fehlender Namespace führt zum Fehler SCHEMA-002.

Verwandte Begriffe

CII (UN/CEFACT Cross Industry Invoice)CII steht für Cross Industry Invoice und ist das XML-Dokumentenformat der UN/CEFACT-Organisation für Rechnungen. Es ist eine der zwei von EN 16931 zugelassenen Syntaxen neben UBL und wird von ZUGFeRD und Factur-X als Grundlage verwendet. CII-Dokumente verwenden den Namespace `urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100`.EN 16931EN 16931 ist die europäische Norm für das semantische Datenmodell einer Kernrechnung. Sie definiert die Pflicht- und optionalen Felder (Business Terms), deren Bedeutung und die Validierungsregeln, die für alle konformen elektronischen Rechnungen in der EU gelten. National implementierte Standards wie XRechnung, ZUGFeRD (EN-16931-Profil) und Factur-X müssen diese Norm erfüllen.XRechnungXRechnung ist der deutsche Standard für strukturierte elektronische Rechnungen im öffentlichen Auftragswesen (B2G). Er basiert auf der europäischen Norm EN 16931 und ist in zwei Syntaxen verfügbar: UBL 2.1 und UN/CEFACT CII. Seit dem 27. November 2020 sind öffentliche Auftraggeber des Bundes verpflichtet, elektronische Rechnungen im XRechnung-Format zu akzeptieren, und schrittweise wurden auch Landes- und Kommunalbehörden einbezogen.PeppolPeppol (Pan-European Public Procurement On-Line) ist ein internationales Netzwerk und eine Infrastruktur für den sicheren elektronischen Austausch von Geschäftsdokumenten, insbesondere Rechnungen und Bestellungen. Es basiert auf einem Vier-Ecken-Modell mit Access Points, einem zentralen Verzeichnis (SMP/SML) und standardisierten Dokumentenformaten (z.B. Peppol BIS Billing 3.0 auf Basis von UBL). In Deutschland betreibt die KoSIT das Peppol-Verzeichnis.SchematronSchematron ist eine regelbasierte Validierungssprache für XML-Dokumente, die auf XPath-Ausdrücken basiert. Im Kontext von XRechnung und EN 16931 werden Schematron-Regeln eingesetzt, um inhaltliche Plausibilitätsprüfungen durchzuführen, die über die reine Schema-Validierung (XSD) hinausgehen. Die offiziellen Schematron-Regeln für XRechnung werden von KoSIT gepflegt und sind Teil des Open-Source-Validators.