UBL 2.1 XML-Format

Das technische Format für PEPPOL-Rechnungen. Verstehen Sie, wie Ihre Rechnungsdaten für die Maschine-zu-Maschine-Kommunikation strukturiert sind.

Was ist UBL?

UBL (Universal Business Language) ist ein internationaler Standard zur Strukturierung von Geschäftsdokumenten wie Rechnungen. Stellen Sie es sich als präzise Vorlage vor, die Computern genau sagt, wo jede Information zu finden ist – Rechnungsnummer, Beträge, MwSt., Verkäuferdaten usw.

Wenn Sie in aiDoks eine Rechnung erstellen, konvertieren wir Ihre Daten automatisch in dieses UBL XML-Format. Damit ist sichergestellt, dass jedes System, das Ihre Rechnung empfängt, sie korrekt lesen kann – unabhängig von der verwendeten Software.

Sie müssen kein XML schreiben

aiDoks erzeugt aus Ihren Eingaben automatisch perfektes UBL XML. Diese Seite ist für alle, die verstehen möchten, was hinter den Kulissen passiert, oder mit Rohdateien arbeiten müssen.

Rechnungsstruktur auf einen Blick

Jede PEPPOL-Rechnung enthält diese Hauptabschnitte in dieser Reihenfolge:

KopfdatenRechnungsnummer, Daten, Währung und PEPPOL-Kennungen
Verkäufer (Lieferant)Ihr Firmenname, Adresse, USt-IdNr., PEPPOL-ID
Käufer (Kunde)Unternehmensdaten des Kunden und PEPPOL-ID
ZahlungsinformationenBankkonto, Zahlungsmethode, Zahlungsbedingungen
SteuerübersichtMwSt.-Aufschlüsselung nach Kategorie und Satz
SummenZeilensumme, Steuersumme und zahlbarer Betrag
PositionenJedes Produkt/jede Dienstleistung mit Menge, Preis und MwSt.

Erklärung der wichtigsten Elemente

Hier sind die wichtigsten Teile einer UBL-Rechnung und was sie enthalten:

PEPPOL-Kennungen
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID> <cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>

Diese Kennungen sagen den empfangenden Systemen, dass es sich um eine PEPPOL BIS 3.0-konforme Rechnung handelt. Sie sind für Standardrechnungen immer gleich – aiDoks fügt sie automatisch hinzu.

Rechnungsdetails
<cbc:ID>INV-2025-001</cbc:ID> <cbc:IssueDate>2025-01-29</cbc:IssueDate> <cbc:DueDate>2025-02-28</cbc:DueDate> <cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode> <cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>

Ihre Rechnungsnummer, das Ausstellungsdatum, das Fälligkeitsdatum, der Typ (380 = Standardrechnung) und die Währung. Daten müssen im Format YYYY-MM-DD vorliegen.

Verkäuferinformationen
<cac:AccountingSupplierParty> <cac:Party> <cbc:EndpointID schemeID="0191">EE123456789</cbc:EndpointID> <cac:PartyName> <cbc:Name>Your Company OÜ</cbc:Name> </cac:PartyName> <!-- Address, VAT number, registration... --> </cac:Party> </cac:AccountingSupplierParty>

Die Daten Ihres Unternehmens. Die EndpointID mit schemeID ist Ihre PEPPOL-Teilnehmer-Kennung – so weiß das Netzwerk, wohin Antworten gesendet werden.

Rechnungsposition
<cac:InvoiceLine> <cbc:ID>1</cbc:ID> <cbc:InvoicedQuantity unitCode="HUR">40</cbc:InvoicedQuantity> <cbc:LineExtensionAmount currencyID="EUR">3000.00</cbc:LineExtensionAmount> <cac:Item> <cbc:Name>Web Development Services</cbc:Name> </cac:Item> <cac:Price> <cbc:PriceAmount currencyID="EUR">75.00</cbc:PriceAmount> </cac:Price> </cac:InvoiceLine>

Jeder Artikel, den Sie in Rechnung stellen. Enthält die Zeilennummer, die Menge (mit Einheitencode wie HUR für Stunden), die Zeilensumme, die Artikelbeschreibung und den Einzelpreis. Es können mehrere InvoiceLine-Elemente vorhanden sein.

Häufige Code-Referenz

PEPPOL-Teilnehmer-ID-Schemata

Schema-IDLandBeschreibung
0191EstlandUSt-IdNr. (EE + 9 Ziffern)
0192EstlandHandelsregistercode (8 Ziffern)
0193LettlandUSt-IdNr. (LV + 11 Ziffern)
0200LitauenUSt-IdNr. (LT + 9–12 Ziffern)
9915ÖsterreichUSt-IdNr.
9930ItalienUSt-IdNr.

Zahlungsmethoden-Codes

30Banküberweisung (am häufigsten)
58SEPA-Überweisung
49Lastschrift
48Kreditkarte

So funktioniert die Validierung

Bevor eine Rechnung über PEPPOL versendet werden kann, muss sie mehrere Validierungsprüfungen bestehen:

XML-Schema (XSD)Automatisch

Prüft, ob die XML-Struktur korrekt ist – ob alle erforderlichen Elemente vorhanden sind, ordnungsgemäß verschachtelt sind und die richtigen Datentypen verwenden.

Schematron-RegelnAutomatisch

Validiert Geschäftslogik-Regeln – z. B. dass MwSt.-Beträge mit den berechneten Werten übereinstimmen, erforderliche Felder kontextabhängig ausgefüllt sind und Code-Werte gültig sind.

PEPPOL-CodelistenAutomatisch

Stellt sicher, dass alle Codes (Währung, Land, Einheit, MwSt.-Kategorie) aus den offiziellen PEPPOL-genehmigten Listen stammen.

BerechnungsprüfungAutomatisch

Bestätigt, dass sich Zeilensummen korrekt addieren, die MwSt. richtig berechnet ist und der endgültige zahlbare Betrag stimmt.

Validierung in aiDoks

aiDoks führt all diese Validierungen vor dem Versand durch. Wenn Fehler vorliegen, sehen Sie konkrete Meldungen, die erklären, was korrigiert werden muss – meist ein fehlendes Feld oder ein falscher Wert.

Beispiel-Rechnungsdatei

Möchten Sie ein vollständiges Beispiel sehen? Hier ist eine minimale gültige PEPPOL-Rechnung:

XML
<?xml version="1.0" encoding="UTF-8"?>
<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#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
  <cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
  <cbc:ID>INV-2025-001</cbc:ID>
  <cbc:IssueDate>2025-01-29</cbc:IssueDate>
  <cbc:DueDate>2025-02-28</cbc:DueDate>
  <cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
  <cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>

  <cac:AccountingSupplierParty>
    <cac:Party>
      <cbc:EndpointID schemeID="0191">EE123456789</cbc:EndpointID>
      <cac:PartyName><cbc:Name>Seller Company OÜ</cbc:Name></cac:PartyName>
      <cac:PostalAddress>
        <cbc:StreetName>Main Street 1</cbc:StreetName>
        <cbc:CityName>Tallinn</cbc:CityName>
        <cbc:PostalZone>10001</cbc:PostalZone>
        <cac:Country><cbc:IdentificationCode>EE</cbc:IdentificationCode></cac:Country>
      </cac:PostalAddress>
      <cac:PartyTaxScheme>
        <cbc:CompanyID>EE123456789</cbc:CompanyID>
        <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
      </cac:PartyTaxScheme>
      <cac:PartyLegalEntity>
        <cbc:RegistrationName>Seller Company OÜ</cbc:RegistrationName>
        <cbc:CompanyID>12345678</cbc:CompanyID>
      </cac:PartyLegalEntity>
    </cac:Party>
  </cac:AccountingSupplierParty>

  <cac:AccountingCustomerParty>
    <cac:Party>
      <cbc:EndpointID schemeID="0192">87654321</cbc:EndpointID>
      <cac:PartyName><cbc:Name>Buyer Company AS</cbc:Name></cac:PartyName>
      <cac:PostalAddress>
        <cbc:CityName>Tallinn</cbc:CityName>
        <cac:Country><cbc:IdentificationCode>EE</cbc:IdentificationCode></cac:Country>
      </cac:PostalAddress>
      <cac:PartyLegalEntity>
        <cbc:RegistrationName>Buyer Company AS</cbc:RegistrationName>
      </cac:PartyLegalEntity>
    </cac:Party>
  </cac:AccountingCustomerParty>

  <cac:TaxTotal>
    <cbc:TaxAmount currencyID="EUR">220.00</cbc:TaxAmount>
    <cac:TaxSubtotal>
      <cbc:TaxableAmount currencyID="EUR">1000.00</cbc:TaxableAmount>
      <cbc:TaxAmount currencyID="EUR">220.00</cbc:TaxAmount>
      <cac:TaxCategory>
        <cbc:ID>S</cbc:ID>
        <cbc:Percent>22</cbc:Percent>
        <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
      </cac:TaxCategory>
    </cac:TaxSubtotal>
  </cac:TaxTotal>

  <cac:LegalMonetaryTotal>
    <cbc:LineExtensionAmount currencyID="EUR">1000.00</cbc:LineExtensionAmount>
    <cbc:TaxExclusiveAmount currencyID="EUR">1000.00</cbc:TaxExclusiveAmount>
    <cbc:TaxInclusiveAmount currencyID="EUR">1220.00</cbc:TaxInclusiveAmount>
    <cbc:PayableAmount currencyID="EUR">1220.00</cbc:PayableAmount>
  </cac:LegalMonetaryTotal>

  <cac:InvoiceLine>
    <cbc:ID>1</cbc:ID>
    <cbc:InvoicedQuantity unitCode="C62">10</cbc:InvoicedQuantity>
    <cbc:LineExtensionAmount currencyID="EUR">1000.00</cbc:LineExtensionAmount>
    <cac:Item>
      <cbc:Name>Consulting Services</cbc:Name>
      <cac:ClassifiedTaxCategory>
        <cbc:ID>S</cbc:ID>
        <cbc:Percent>22</cbc:Percent>
        <cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
      </cac:ClassifiedTaxCategory>
    </cac:Item>
    <cac:Price>
      <cbc:PriceAmount currencyID="EUR">100.00</cbc:PriceAmount>
    </cac:Price>
  </cac:InvoiceLine>
</Invoice>