Code-BeispieleFür Entwickler & Buchhaltung
E-Rechnung Beispiel – echte XML-Beispiele
So sieht eine E-Rechnung wirklich aus: Echte XML-Beispiele für XRechnung (UBL & CII), ZUGFeRD und Factur-X – Feld für Feld erklärt, mit BT-Code-Tabelle nach EN 16931.
GrundlagenWie sieht eine E-Rechnung aus?
Wie sieht eine E-Rechnung aus?
Eine E-Rechnung ist keine einfache PDF, sondern eine strukturierte Datei nach der Norm EN 16931. Zwei Hauptformate sind in Deutschland relevant:
- XRechnung: Eine reine XML-Datei, entweder im Syntax UBL (Universal Business Language) oder CII (Cross Industry Invoice).
- ZUGFeRD: Eine hybride PDF/A-3-Datei mit eingebettetem XML (CII). Die PDF ist menschenlesbar, das XML maschinenlesbar.
Beide Formate transportieren denselben semantischen Inhalt: Rechnungsnummer (BT-1), Rechnungsdatum (BT-2), Positionen, Beträge, Steuerbetrag und Käufer-Referenz (bei B2G die Leitweg-ID). Der Unterschied liegt in der XML-Struktur.
Beispiel 1XRechnung UBL
XRechnung – UBL Beispiel
Minimalbeispiel einer XRechnung im UBL-Syntax. Im Code sind die wichtigsten EN-16931-Felder als BT-Codes kommentiert.
<?xml version="1.0" encoding="UTF-8"?>
<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:xoev-de:kosit:standard:xrechnung_3.0</cbc:CustomizationID>
<cbc:ID>RE-2026-0042</cbc:ID> <!-- BT-1 -->
<cbc:IssueDate>2026-04-21</cbc:IssueDate> <!-- BT-2 -->
<cbc:DueDate>2026-05-21</cbc:DueDate> <!-- BT-9 -->
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode> <!-- BT-3 -->
<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode> <!-- BT-5 -->
<cbc:BuyerReference>04011000-12345-37</cbc:BuyerReference> <!-- BT-10 Leitweg-ID -->
<cac:AccountingSupplierParty>
<cac:Party>
<cac:PartyName>
<cbc:Name>Max Mustermann GmbH</cbc:Name> <!-- BT-27 -->
</cac:PartyName>
<cac:PartyTaxScheme>
<cbc:CompanyID>DE123456789</cbc:CompanyID> <!-- BT-31 -->
<cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme>
</cac:PartyTaxScheme>
</cac:Party>
</cac:AccountingSupplierParty>
<cac:AccountingCustomerParty>
<cac:Party>
<cac:PartyName>
<cbc:Name>Behörde XYZ</cbc:Name> <!-- BT-44 -->
</cac:PartyName>
</cac:Party>
</cac:AccountingCustomerParty>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="EUR">19.00</cbc:TaxAmount> <!-- BT-109 -->
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="EUR">100.00</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="EUR">100.00</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="EUR">119.00</cbc:TaxInclusiveAmount> <!-- BT-112 -->
<cbc:PayableAmount currencyID="EUR">119.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="C62">1</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="EUR">100.00</cbc:LineExtensionAmount>
<cac:Item>
<cbc:Name>Beratungsleistung</cbc:Name>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID="EUR">100.00</cbc:PriceAmount>
</cac:Price>
</cac:InvoiceLine>
</ubl:Invoice>Kern-Merkmal UBL: Namespace urn:oasis:names:specification:ubl:schema:xsd:Invoice-2, Wurzel-Element <ubl:Invoice>, Struktur über cbc:- (Basic) und cac:- (Aggregate) Präfixe.
Beispiel 2XRechnung CII
XRechnung – CII Beispiel
Dasselbe Geschäftsvorgang, aber im CII-Syntax (Cross Industry Invoice). Dies ist auch die Struktur, die ZUGFeRD intern nutzt.
<?xml version="1.0" encoding="UTF-8"?>
<rsm:CrossIndustryInvoice
xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100"
xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100"
xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100">
<rsm:ExchangedDocumentContext>
<ram:GuidelineSpecifiedDocumentContextParameter>
<ram:ID>urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_3.0</ram:ID>
</ram:GuidelineSpecifiedDocumentContextParameter>
</rsm:ExchangedDocumentContext>
<rsm:ExchangedDocument>
<ram:ID>RE-2026-0042</ram:ID> <!-- BT-1 -->
<ram:TypeCode>380</ram:TypeCode> <!-- BT-3 -->
<ram:IssueDateTime>
<udt:DateTimeString format="102">20260421</udt:DateTimeString> <!-- BT-2 -->
</ram:IssueDateTime>
</rsm:ExchangedDocument>
<rsm:SupplyChainTradeTransaction>
<ram:ApplicableHeaderTradeAgreement>
<ram:BuyerReference>04011000-12345-37</ram:BuyerReference> <!-- BT-10 -->
<ram:SellerTradeParty>
<ram:Name>Max Mustermann GmbH</ram:Name> <!-- BT-27 -->
<ram:SpecifiedTaxRegistration>
<ram:ID schemeID="VA">DE123456789</ram:ID> <!-- BT-31 -->
</ram:SpecifiedTaxRegistration>
</ram:SellerTradeParty>
<ram:BuyerTradeParty>
<ram:Name>Behörde XYZ</ram:Name> <!-- BT-44 -->
</ram:BuyerTradeParty>
</ram:ApplicableHeaderTradeAgreement>
<ram:ApplicableHeaderTradeSettlement>
<ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode> <!-- BT-5 -->
<ram:ApplicableTradeTax>
<ram:CalculatedAmount>19.00</ram:CalculatedAmount> <!-- BT-109 -->
<ram:TypeCode>VAT</ram:TypeCode>
<ram:BasisAmount>100.00</ram:BasisAmount>
<ram:CategoryCode>S</ram:CategoryCode>
<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
</ram:ApplicableTradeTax>
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
<ram:LineTotalAmount>100.00</ram:LineTotalAmount>
<ram:TaxBasisTotalAmount>100.00</ram:TaxBasisTotalAmount>
<ram:TaxTotalAmount currencyID="EUR">19.00</ram:TaxTotalAmount>
<ram:GrandTotalAmount>119.00</ram:GrandTotalAmount> <!-- BT-112 -->
<ram:DuePayableAmount>119.00</ram:DuePayableAmount>
</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
</ram:ApplicableHeaderTradeSettlement>
</rsm:SupplyChainTradeTransaction>
</rsm:CrossIndustryInvoice>Kern-Merkmal CII: Namespace urn:un:unece:uncefact:data:standard:CrossIndustryInvoice, Wurzel-Element <rsm:CrossIndustryInvoice>. Datumsfelder im UN/EDIFACT-Format (format="102" bedeutet YYYYMMDD).
EN 16931BT-Codes
Die wichtigsten BT-Codes im Überblick
BT ("Business Term") sind die standardisierten Feld-Codes der EN 16931. Insgesamt gibt es ~160 BT-Codes – hier die wichtigsten für Standardrechnungen.
| Code | Bedeutung | Beispiel |
|---|---|---|
| BT-1 | Rechnungsnummer | RE-2026-0042 |
| BT-2 | Rechnungsdatum | 2026-04-21 |
| BT-3 | Rechnungstyp | 380 (Rechnung) / 381 (Gutschrift) |
| BT-5 | Währung | EUR |
| BT-9 | Fälligkeitsdatum | 2026-05-21 |
| BT-10 | Käufer-Referenz (Leitweg-ID bei B2G) | 04011000-12345-37 |
| BT-24 | Customization ID | urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_3.0 |
| BT-27 | Name Verkäufer | Max Mustermann GmbH |
| BT-31 | USt-IdNr. Verkäufer | DE123456789 |
| BT-44 | Name Käufer | Behörde XYZ |
| BT-106 | Rechnungsbetrag netto | 100.00 |
| BT-109 | Steuerbetrag | 19.00 |
| BT-112 | Rechnungsbetrag brutto | 119.00 |
Vollständige BT-Code-Liste: KoSIT XRechnung-Spezifikation. Geschäftsregeln (BR-Codes) werden zusätzlich im Schematron definiert.
Hybrides FormatZUGFeRD
ZUGFeRD-Beispiel: XML in der PDF
Eine ZUGFeRD-Rechnung ist technisch eine PDF/A-3-Datei mit einem eingebetteten XML-Anhang. Das XML folgt der CII-Struktur (wie das Beispiel oben) und wird in der PDF als factur-x.xml (Profil EN 16931 / EXTENDED) oder zugferd-invoice.xml (ältere Profile) gespeichert.
Der customization ID bei ZUGFeRD im Profil EN 16931 lautet:
<ram:GuidelineSpecifiedDocumentContextParameter>
<ram:ID>urn:cen.eu:en16931:2017#compliant#urn:factur-x.eu:1p0:en16931</ram:ID>
</ram:GuidelineSpecifiedDocumentContextParameter>Factur-X Zwilling: Eine ZUGFeRD-Rechnung im Profil EN 16931 ist strukturell identisch mit einer Factur-X-Rechnung. Das sieht man schon in der ram:ID oben – „factur-x.eu“ steckt im Namespace.
DownloadsOffizielle Testdateien
Offizielle Beispiel-Dateien herunterladen
KoSIT XRechnung-Testsuite
Offizielle Beispiel-XMLs der KoSIT (UBL + CII) – mit Gutschriften, Teilrechnungen, Anwendungsfällen.
github.com/itplr-kosit/xrechnung-testsuiteFeRD ZUGFeRD-Beispiele
Offizielle Beispiel-PDFs mit eingebettetem XML aus verschiedenen ZUGFeRD-Profilen (MINIMUM bis EXTENDED).
ferd-net.de/standards/zugferd-2.3.2Factur-X Examples
Französische FNFE-MPE-Beispiele. Identisch zu ZUGFeRD EN 16931 in der Struktur.
fnfe-mpe.org/factur-x/factur-x_enFAQHäufige Fragen
Häufige Fragen zu E-Rechnung-Beispielen
Eigene E-Rechnung erstellen & validieren
Laden Sie Ihre PDF-Rechnung hoch und wir erzeugen daraus eine gültige XRechnung oder ZUGFeRD nach EN 16931 – inklusive Validierung.