XRechnung mit PHP und Laravel erstellen
Der deutsche Standard nach EN 16931, Pflicht für Rechnungen an Bundesbehörden. Mit Quittio eine Zeile Unterschied.
Was ist XRechnung?
XRechnung ist der deutsche Standard für E-Rechnungen nach EN 16931. Es ist reines XML, wahlweise in der Syntax CII oder UBL, mit zusätzlichen deutschen Regeln (BR-DE). Rechnungen an Behörden brauchen die Leitweg-ID als Käuferreferenz.
Für wen?
- Rechnungen an Bundes- und viele Landesbehörden
- Unternehmen, die reines XML ohne PDF wollen
- Systeme, die Rechnungen automatisch verarbeiten
So geht es mit Quittio
use Quittio\Core\Builder\Party;
use Quittio\Laravel\Facades\Quittio;
$result = Quittio::invoice()
->number('RE-2026-0042')
->deliveryDate('2026-09-30')
->buyer(Party::make('Kunde AG')
->vatId('DE987654321')
->address('Bahnhofstraße 5', '54321', 'Beispielstadt', 'DE'))
->line('Web development', netPrice: '95.00', quantity: 24)
->buyerReference('04011000-12345-03') // Leitweg-ID der Behörde
->format('xrechnung-cii')
->render();use Quittio\Core\Builder\InvoiceBuilder;
use Quittio\Core\Builder\Party;
use Quittio\Core\Quittio;
use Quittio\Core\Tax\CountryDefaultVat;
use Quittio\Country\DE\CountryDE;
// einmal beim Start: Länderpaket und Standard-USt
$quittio = Quittio::create([], [new CountryDE]);
InvoiceBuilder::useDefaultVat(new CountryDefaultVat($quittio->countries()));
$invoice = InvoiceBuilder::make()
->seller($company) // Verkäufer und Bank im Code
->number('RE-2026-0042')
->deliveryDate('2026-09-30')
->buyer(Party::make('Kunde AG')
->vatId('DE987654321')
->address('Bahnhofstraße 5', '54321', 'Beispielstadt', 'DE'))
->line('Web development', netPrice: '95.00', quantity: 24)
->buyerReference('04011000-12345-03'); // Leitweg-ID der Behörde
$result = $quittio->make($invoice)->format('xrechnung-cii')->render();Ohne Laravel brauchst du nur quittio/core und quittio/country-de. Das ganze Skript steht im Ratgeber E-Rechnungen mit PHP, ganz ohne Laravel.
Geprüft mit: KoSIT-Validator mit der offiziellen XRechnung-Konfiguration
Beispieldateien: RE-2026-0042-xrechnung-cii.xml, RE-2026-0042-xrechnung-ubl.xml, KoSIT-Prüfbericht
Profile und Varianten
- xrechnung-ciiCII-Syntax
- xrechnung-ublUBL-Syntax
- ZUGFeRD-Profil XRECHNUNGXRechnung eingebettet in ein PDF
- xrechnung-extensionProfil mit Unterpositionen und Drittzahlungen (nur UBL) und XML-Anhängen
- xrechnung-cvdProfil für Fahrzeuge nach der Clean Vehicles Directive
Version 3.0, BR-DE-Regeln aus dem Länderpaket Deutschland. Extension und CVD wählst du ausdrücklich mit ->profile(…); ihre Regeln (BR-DEX, BR-DE-CVD) prüft Quittio schon in PHP, wie die offizielle Validator-Konfiguration.
Häufige Fragen zu XRechnung
Was ist eine Leitweg-ID?
Die Adresse der Behörde für die Rechnung. Sie steht als Käuferreferenz (BT-10) in der XRechnung. Fehlt sie, meldet Quittio die Regel BR-DE-15.
CII oder UBL?
Beide sind gleichwertig. Nimm, was dein Empfänger oder dessen Portal bevorzugt; mit Quittio ist es nur ein anderer Formatname.
Brauche ich zusätzlich ein PDF?
Nein, die XRechnung ist die Rechnung. Ein zusätzliches Sicht-PDF ist möglich, sollte aber nicht als zweite Rechnung verstanden werden.
Wann brauche ich die XRechnung-Extension?
Wenn dein Empfänger Angaben erwartet, die XRechnung 3.0 nicht erlaubt: Unterpositionen, Zahlungen Dritter oder XML-Dateien als Anhang. Unterpositionen und Drittzahlungen gibt es nur in UBL. Quittio wechselt nie von selbst in die Extension.
Was ist XRechnung CVD?
XRechnung 3.0 für Straßenfahrzeuge, die eine Behörde nach der Clean Vehicles Directive beschafft. Die Rechnung nennt Vertrag (BT-12) und Vergabe oder Los (BT-17); jede Fahrzeugposition trägt die Fahrzeugklasse (M1 bis N3) und ob das Fahrzeug sauber, emissionsfrei oder keins von beiden ist. Quittio prüft das mit den Regeln BR-DE-CVD.
Ab wann welche Rechnung Pflicht ist, steht im Ratgeber zur E-Rechnungspflicht.