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
- TaxTotal vs. LegalMonetaryTotal. Ersteres bricht die Steuer nach Satz auf, Letzteres ist der konsolidierte Zahlbetrag. Nicht verwechseln.
- AllowanceCharge kann ein Rabatt oder ein Aufschlag sein — gesteuert über ChargeIndicator (false = Rabatt, true = Aufschlag). Falscher Indikator → falsche Summe.
- Endpoint-IDs brauchen ein scheme-Attribut (schemeID="0088" usw.). Ohne das geben Validatoren kryptische Fehler über fehlende IDs.
- Mengen nutzen einen Einheitencode aus UN/CEFACT (EA = Stück, KGM = Kilogramm, HUR = Stunde). "piece" ist kein gültiger Wert.
- 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.