XRechnung-Beispiel: So sieht eine XRechnung als XML aus
Eine vollständige XRechnung als Beispiel: lesbarer Rechnungsblock, gekürztes UBL-XML mit CustomizationID, Leitweg-ID, Steuern und Summen, Tabelle der wichtigsten BT-Felder und der Unterschied zu ZUGFeRD.
„Wie sieht eine XRechnung aus?" ist die Frage, die jeder stellt, der zum ersten Mal an eine Behörde fakturieren soll – und die eine ungewohnte Antwort hat: gar nicht. Eine XRechnung hat kein Aussehen. Sie ist eine XML-Datei, also strukturierter Text für Maschinen, ohne Logo, ohne Layout, ohne Seite eins. Dieser Artikel zeigt an einer durchgängigen Beispielrechnung, was in der Datei steht, wie das XML aufgebaut ist, welche Felder die wichtigsten sind und wie Sie die Datei trotzdem lesen können.
Eine XRechnung hat kein Aussehen – und wird trotzdem gelesen
Die XRechnung ist die deutsche Ausprägung der Norm EN 16931. Sie enthält alle Rechnungsdaten in benannten Feldern, sogenannten Business Terms (BT-1 bis BT-160 und einige mehr), in einer von zwei XML-Syntaxen: UBL oder UN/CEFACT CII. Das Behördenportal liest die Felder aus und verbucht; kein Mensch muss die Datei je ansehen.
Wenn doch, gibt es drei Wege:
- Viewer: Der kostenlose ELSTER E-Rechnungs-Viewer (online) oder der Quba-Viewer (lokal) erzeugen aus dem XML eine tabellarische Rechnungsansicht.
- Visualisierung der KoSIT: Die KoSIT liefert Stylesheets, die eine XRechnung in HTML oder PDF darstellen; viele Viewer und Portale nutzen genau diese Darstellung.
- Buchhaltungssoftware: Programme, die E-Rechnungen einlesen, zeigen die Daten im gewohnten Erfassungsdialog.
Wie Empfang und Anzeige praktisch funktionieren, steht im Artikel E-Rechnung empfangen. Hier geht es um die Datei selbst.
Die Beispielrechnung
Meier Elektrotechnik hat für das Bauamt der Stadt Musterstadt die Flurbeleuchtung im Erdgeschoss erneuert. Zwei Positionen, Regelbesteuerung mit 19 % USt, Zahlungsziel 30 Tage. So sähe die Rechnung als Dokument aus:
Meier Elektrotechnik · Industriestraße 8 · 12345 Beispielstadt USt-IdNr. DE123456789 · Ansprechpartner: Thomas Meier · 0511 1234567 · rechnung@meier-elektrotechnik.de
An: Stadt Musterstadt, Bauamt · Rathausplatz 1 · 54321 Musterstadt Leitweg-ID: 04011000-12345-67 · Bestellnummer: BA-2026-0457
Rechnung Nr. 0018-2609-STADT · Rechnungsdatum 11.09.2026 · Leistungszeitraum 01.09.–08.09.2026
| Pos. | Leistung | Menge | Einzelpreis | Netto |
|---|---|---|---|---|
| 1 | Elektroinstallation Flurbeleuchtung EG | 12 Std. | 68,00 € | 816,00 € |
| 2 | LED-Feuchtraumleuchte 36 W, geliefert und montiert | 6 Stk. | 89,50 € | 537,00 € |
Nettobetrag 1.353,00 € · USt 19 % 257,07 € · Rechnungsbetrag 1.610,07 €
Zahlbar bis 11.10.2026 ohne Abzug auf IBAN DE89 3704 0044 0532 0130 00 (SEPA-Überweisung).
Die Rechnungsnummer 0018-2609-STADT folgt dem Muster, das Pennio verwendet: die firmenweit fortlaufende Nummer 18 vorn, Jahr und Monat dahinter, das Kürzel des Kunden am Ende. Warum das hilft, erklärt der Artikel Rechnungsnummer pro Kunde. Die Leitweg-ID 04011000-12345-67 hat die Form <Grobadressierung>-<Feinadressierung>-<Prüfziffer>; die Behörde teilt sie mit, Sie kopieren sie.
Dasselbe als XRechnung: der UBL-Ausschnitt
Und so steht dieselbe Rechnung in der XML-Datei. Der Ausschnitt ist gekürzt – Namensräume, die zweite Position und einige Wiederholungen fehlen –, aber jedes gezeigte Element ist so, wie es in einer gültigen XRechnung 3.0 stehen muss:
<ubl:Invoice xmlns:ubl="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:xeinkauf.de:kosit:xrechnung_3.0</cbc:CustomizationID>
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
<cbc:ID>0018-2609-STADT</cbc:ID>
<cbc:IssueDate>2026-09-11</cbc:IssueDate>
<cbc:DueDate>2026-10-11</cbc:DueDate>
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
<cbc:BuyerReference>04011000-12345-67</cbc:BuyerReference>
<cac:InvoicePeriod>
<cbc:StartDate>2026-09-01</cbc:StartDate>
<cbc:EndDate>2026-09-08</cbc:EndDate>
</cac:InvoicePeriod>
<cac:OrderReference>
<cbc:ID>BA-2026-0457</cbc:ID>
</cac:OrderReference>
<cac:AccountingSupplierParty>
<cac:Party>
<cbc:EndpointID schemeID="EM">rechnung@meier-elektrotechnik.de</cbc:EndpointID>
<cac:PostalAddress>
<cbc:StreetName>Industriestraße 8</cbc:StreetName>
<cbc:CityName>Beispielstadt</cbc:CityName>
<cbc:PostalZone>12345</cbc:PostalZone>
<cac:Country><cbc:IdentificationCode>DE</cbc:IdentificationCode></cac:Country>
</cac:PostalAddress>
<cac:PartyTaxScheme>
<cbc:CompanyID>DE123456789</cbc:CompanyID>
<cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
</cac:PartyTaxScheme>
<cac:PartyLegalEntity>
<cbc:RegistrationName>Meier Elektrotechnik</cbc:RegistrationName>
</cac:PartyLegalEntity>
<cac:Contact>
<cbc:Name>Thomas Meier</cbc:Name>
<cbc:Telephone>0511 1234567</cbc:Telephone>
<cbc:ElectronicMail>rechnung@meier-elektrotechnik.de</cbc:ElectronicMail>
</cac:Contact>
</cac:Party>
</cac:AccountingSupplierParty>
<cac:AccountingCustomerParty>
<cac:Party>
<cbc:EndpointID schemeID="EM">rechnungen@musterstadt.de</cbc:EndpointID>
<cac:PostalAddress>
<cbc:StreetName>Rathausplatz 1</cbc:StreetName>
<cbc:CityName>Musterstadt</cbc:CityName>
<cbc:PostalZone>54321</cbc:PostalZone>
<cac:Country><cbc:IdentificationCode>DE</cbc:IdentificationCode></cac:Country>
</cac:PostalAddress>
<cac:PartyLegalEntity>
<cbc:RegistrationName>Stadt Musterstadt, Bauamt</cbc:RegistrationName>
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingCustomerParty>
<cac:PaymentMeans>
<cbc:PaymentMeansCode>58</cbc:PaymentMeansCode>
<cac:PayeeFinancialAccount>
<cbc:ID>DE89370400440532013000</cbc:ID>
<cbc:Name>Meier Elektrotechnik</cbc:Name>
</cac:PayeeFinancialAccount>
</cac:PaymentMeans>
<cac:PaymentTerms>
<cbc:Note>Zahlbar innerhalb von 30 Tagen ohne Abzug.</cbc:Note>
</cac:PaymentTerms>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="EUR">257.07</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="EUR">1353.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">257.07</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>19</cbc:Percent>
<cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="EUR">1353.00</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="EUR">1353.00</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="EUR">1610.07</cbc:TaxInclusiveAmount>
<cbc:PayableAmount currencyID="EUR">1610.07</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="HUR">12</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="EUR">816.00</cbc:LineExtensionAmount>
<cac:Item>
<cbc:Name>Elektroinstallation Flurbeleuchtung EG</cbc:Name>
<cac:ClassifiedTaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>19</cbc:Percent>
<cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID="EUR">68.00</cbc:PriceAmount>
</cac:Price>
</cac:InvoiceLine>
<!-- Position 2: 6 Stück (unitCode="H87") à 89.50 → 537.00, gleicher Aufbau -->
</ubl:Invoice>
Ein paar Dinge fallen sofort auf. Daten stehen als JJJJ-MM-TT, Beträge mit Punkt und zwei Nachkommastellen – das deutsche 11.09.2026 oder 1.353,00 wäre ein Schemafehler. Mengeneinheiten sind Codes: HUR für Stunde, H87 für Stück, aus der Codeliste UN/ECE Recommendation 20. Die Steuer steht zweimal: einmal je Position als Kategorie S mit 19 %, einmal im TaxTotal als Aufschlüsselung mit Bemessungsgrundlage und Betrag. Und die E-Mail-Adresse ist Pflicht – als EndpointID mit schemeID="EM" bei beiden Parteien.
Die Beträge müssen rechnerisch aufgehen, sonst schlägt die Validierung fehl: 816,00 + 537,00 = 1.353,00 (Summe der Positionen, BT-106), 1.353,00 × 19 % = 257,07 (BT-110), 1.353,00 + 257,07 = 1.610,07 (BT-112 und, ohne Vorauszahlung, auch BT-115). Wer hier eine Position nachträglich ändert und die Kopfsumme stehen lässt, bekommt vom XRechnung-Validator die Regel BR-CO-10 zurück.
Die wichtigsten Felder mit ihren BT-Nummern
Die Norm bezeichnet jedes Feld mit einem Business Term. Prüfberichte, Spezifikationen und Fehlermeldungen sprechen in diesen Nummern – es lohnt sich, die wichtigsten zu kennen:
| BT | Bedeutung | Im Beispiel | UBL-Element |
|---|---|---|---|
| BT-1 | Rechnungsnummer | 0018-2609-STADT | cbc:ID |
| BT-2 | Rechnungsdatum | 2026-09-11 | cbc:IssueDate |
| BT-3 | Rechnungstyp | 380 (Rechnung) | cbc:InvoiceTypeCode |
| BT-5 | Währung | EUR | cbc:DocumentCurrencyCode |
| BT-9 | Fälligkeitsdatum | 2026-10-11 | cbc:DueDate |
| BT-10 | Käuferreferenz / Leitweg-ID | 04011000-12345-67 | cbc:BuyerReference |
| BT-13 | Bestellnummer | BA-2026-0457 | cac:OrderReference/cbc:ID |
| BT-24 | Spezifikationskennung (Version) | …xrechnung_3.0 | cbc:CustomizationID |
| BT-27 | Name des Verkäufers | Meier Elektrotechnik | cac:PartyLegalEntity/cbc:RegistrationName |
| BT-31 | USt-IdNr. des Verkäufers | DE123456789 | cac:PartyTaxScheme/cbc:CompanyID |
| BT-44 | Name des Käufers | Stadt Musterstadt, Bauamt | cac:PartyLegalEntity/cbc:RegistrationName |
| BT-49 | Elektronische Adresse des Käufers | rechnungen@musterstadt.de | cbc:EndpointID |
| BT-84 | IBAN des Zahlungsempfängers | DE89…3000 | cac:PayeeFinancialAccount/cbc:ID |
| BT-106 | Summe der Positionsnettobeträge | 1353.00 | cbc:LineExtensionAmount |
| BT-110 | USt-Gesamtbetrag | 257.07 | cac:TaxTotal/cbc:TaxAmount |
| BT-112 | Rechnungsbetrag mit USt | 1610.07 | cbc:TaxInclusiveAmount |
| BT-115 | Fälliger Zahlbetrag | 1610.07 | cbc:PayableAmount |
Diese Felder decken sich weitgehend mit den Pflichtangaben des § 14 UStG – Name und Anschrift beider Seiten, Steuernummer oder USt-IdNr., Datum, Nummer, Menge und Art der Leistung, Entgelt, Steuersatz und Steuerbetrag. Die XRechnung fügt hinzu, was eine Maschine zum Verarbeiten braucht: Codes statt Freitext, Fälligkeit oder Zahlungsbedingung, elektronische Adressen, bei Behörden die Leitweg-ID. Die vollständige Liste der gesetzlichen Angaben steht im Artikel Pflichtangaben einer Rechnung.
Unterschied zum ZUGFeRD-Beispiel
Wer das ZUGFeRD-Beispiel daneben legt, sieht dieselbe Rechnung in anderer Verpackung:
- Syntax. ZUGFeRD verwendet ausschließlich CII. Dort heißt die Rechnungsnummer
ram:IDinrsm:ExchangedDocument, das Datum steht als20260911mitformat="102". Die XRechnung erlaubt UBL und CII; unser Beispiel ist UBL, das verbreitetere der beiden. Inhaltlich sind es dieselben BT-Felder. - Kein PDF. ZUGFeRD bettet das XML in eine PDF/A-3 ein, die jeder Reader öffnet. Die XRechnung ist die XML-Datei allein – 10 bis 20 Kilobyte, kein Logo, kein Briefpapier.
- Kennung. Eine ZUGFeRD-Datei im Profil EN 16931 trägt eine andere
CustomizationID-Entsprechung als eine XRechnung; nur im Profil XRECHNUNG stimmt sie überein, dann ist die Datei beides zugleich.
Was für wen sinnvoll ist, klärt der Artikel XRechnung oder ZUGFeRD?. Die kurze Fassung: Behörden bekommen XRechnung, alle anderen ZUGFeRD – und ein Programm, das beides aus derselben Eingabe erzeugt, erspart die Entscheidung.
Wo offizielle Beispieldateien liegen
Unser Ausschnitt ist gekürzt und dient dem Verständnis. Vollständige, gegen den Validator geprüfte Beispiele veröffentlicht die KoSIT in der XRechnung-Testsuite auf GitHub: github.com/itplr-kosit/xrechnung-testsuite. Dort liegen unter src Geschäftsfälle und technische Fälle in UBL und CII – vom einfachen Standardfall bis zu Gutschrift, Skonto, Anzahlung und Rechnungen mit allen Business Terms. Wer eine eigene Datei erzeugt, vergleicht sie am besten mit dem passenden Fall aus der Testsuite und lässt beide durch den Validator.
Alle Namen, Adressen, Kennungen und die Leitweg-ID in diesem Artikel sind erfunden. Die IBAN ist eine gängige Testnummer mit gültiger Prüfsumme, kein echtes Konto.
XRechnung und ZUGFeRD aus derselben Rechnung
Sie schreiben die Rechnung wie gewohnt: Kunde, Positionen, Zahlungsziel. Beim Festschreiben erzeugt Pennio daraus die XRechnung 3.0 und eine ZUGFeRD-PDF, prüft beide gegen KoSIT-Validator und Mustangproject und legt sie im Archiv ab. Die Leitweg-ID hinterlegen Sie einmal beim Kunden.
Keine Kreditkarte nötig
Häufige Fragen
Wie sieht eine XRechnung aus?
cbc:ID oder cac:InvoiceLine. Ein Layout gibt es nicht. Lesbar wird sie über einen Viewer, der die Felder tabellarisch darstellt.Ist eine XRechnung UBL oder CII?
Kann ich das Beispiel-XML als Muster für eigene Rechnungen verwenden?
Was bedeutet BT-10 in der XRechnung?
cbc:BuyerReference. Bei Behörden steht dort die Leitweg-ID, im B2B eine Referenz des Kunden. Das Feld ist in der XRechnung Pflicht.Woher weiß ich, welche XRechnung-Version eine Datei hat?
CustomizationID (BT-24) am Anfang der Datei. Endet sie auf xrechnung_3.0, ist es die aktuelle Version. Ältere Kennungen wie 2.3 nehmen die Portale nicht mehr an.Muss die Leitweg-ID ein bestimmtes Format haben?
Stand: September 2026. Quellen: XRechnung-Spezifikation 3.0 und XRechnung-Testsuite (KoSIT), EN 16931 Semantisches Datenmodell, UBL 2.1, Leitweg-ID-Formatspezifikation, § 14 UStG.
Die Pennio Redaktion schreibt über E-Rechnung, Rechnungsstellung und Umsatzsteuerrecht. Grundlage sind die aktuellen Gesetzestexte, die Norm EN 16931, die Spezifikationen von XRechnung und ZUGFeRD sowie die Veröffentlichungen des Bundesfinanzministeriums. Wir bauen selbst E-Rechnungs-Software und prüfen jede Aussage an den offiziellen Validatoren.
Das könnte Sie auch interessieren
XRechnung: Der deutsche E-Rechnungsstandard einfach erklärt
Was eine XRechnung ist, wer sie braucht, wie sie sich von ZUGFeRD unterscheidet, was Leitweg-ID und KoSIT bedeuten und wie Sie XRechnungen erstellen, prüfen und an Behörden übermitteln.
Rechnung an Behörden: XRechnung, Portale und Leitweg-ID
Wie Sie eine Rechnung an Bund, Länder und Kommunen stellen: Welche Portale es gibt, welche Fristen und Wertgrenzen gelten und was eine Rechnung an öffentliche Auftraggeber enthalten muss.
XRechnung erstellen: Anleitung, Werkzeuge und die typischen Fehler
Wie Sie eine gültige XRechnung erstellen – mit Rechnungsprogramm, Generator oder Bibliothek – welche Felder Behörden verlangen, wie Sie gegen den KoSIT-Validator prüfen und wo die meisten Dateien scheitern.