Invocie

Tech

UBL 2.1 verständlich erklärt: der XML-Standard hinter moderner E-Rechnung

Fast jedes große E-Rechnungs-Mandat weltweit gibt unter der Haube UBL 2.1 aus. Hier ein Rundgang ohne Fachjargon durch die Teile, die Sie wirklich verstehen müssen.

Invocie Team · 21. Januar 2026 · 5 Min. Lesezeit


UBL — Universal Business Language — ist der OASIS-Standard, der Peppol BIS, EN 16931, ZATCA Phase 2, das PINT-Profil der VAE, Indiens IRP/E-Invoice-Schema (mit Erweiterungen) und mehreren LATAM-Regimen zugrunde liegt. Wenn Ihre E-Invoicing-Strategie keinen Frieden mit UBL 2.1 schließt, werden Sie dasselbe XML immer wieder reimplementieren.

Die Form einer UBL-Rechnung

Eine UBL-Rechnung ist ein XML-Dokument mit drei wichtigen Namespaces: cbc (Common Basic Components — primitive Typen wie ID und Amount), cac (Common Aggregate Components — komplexe Typen wie Party und TaxTotal), und der Dokument-Namespace selbst. Jedes UBL-Dokument folgt demselben Muster:

<Invoice
    xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
    xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
    xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
  <cbc:CustomizationID>urn:cen.eu:en16931:2017</cbc:CustomizationID>
  <cbc:ID>INV-2026-0001</cbc:ID>
  <cbc:IssueDate>2026-01-15</cbc:IssueDate>
  <cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
  <cac:AccountingSupplierParty>...</cac:AccountingSupplierParty>
  <cac:AccountingCustomerParty>...</cac:AccountingCustomerParty>
  <cac:TaxTotal>...</cac:TaxTotal>
  <cac:LegalMonetaryTotal>...</cac:LegalMonetaryTotal>
  <cac:InvoiceLine>...</cac:InvoiceLine>
</Invoice>

Fünf Konzepte, die fast immer falsch verstanden werden

  1. TaxTotal vs. LegalMonetaryTotal. Ersteres bricht die Steuer nach Satz auf, Letzteres ist der konsolidierte Zahlbetrag. Nicht verwechseln.
  2. AllowanceCharge kann ein Rabatt oder ein Aufschlag sein — gesteuert über ChargeIndicator (false = Rabatt, true = Aufschlag). Falscher Indikator → falsche Summe.
  3. Endpoint-IDs brauchen ein scheme-Attribut (schemeID="0088" usw.). Ohne das geben Validatoren kryptische Fehler über fehlende IDs.
  4. Mengen nutzen einen Einheitencode aus UN/CEFACT (EA = Stück, KGM = Kilogramm, HUR = Stunde). "piece" ist kein gültiger Wert.
  5. TaxCategory-Codes sind UNCL5305: S = Standardsatz, Z = Nullsatz, E = befreit, AE = Reverse-Charge. Erfinden Sie keine neuen Codes.

Invocies EUStrategy gibt UBL 2.1 konform zu BIS Billing 3.0 aus — dasselbe XML funktioniert für Peppol-APs, das UAE-PINT-Profil und jedes System, das EN 16931 konsumiert.


Verwandte Beiträge

Versenden Sie konforme Rechnungen in jedem Markt

ZATCA, FTA, Peppol und globales Post-Audit — eine API.

Mit unserem Team sprechen