ZUGFeRD-Rechnungen mit PHP und Laravel erstellen
Ein PDF für Menschen, ein XML für die Buchhaltung, beides in einer Datei. Quittio erzeugt ZUGFeRD als Standardformat.
Was ist ZUGFeRD / Factur-X?
ZUGFeRD (in Frankreich Factur-X) ist ein PDF/A-3, in das die Rechnung als CII-XML eingebettet ist. Menschen lesen das PDF, Software liest das XML. Beide zeigen dieselben Daten, weil Quittio sie aus einem Datenmodell erzeugt.
Für wen?
- Rechnungen an Unternehmen in Deutschland und Frankreich
- Empfänger, die ein lesbares PDF erwarten
- Shops und SaaS-Produkte, die ein Format für alle wollen
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)
->render(); // ZUGFeRD: PDF/A-3 mit eingebettetem XML
$result->pdf();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);
$result = $quittio->make($invoice)->render(); // ZUGFeRD: PDF/A-3 mit eingebettetem XML
$result->pdf();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 (EN 16931) für das XML, veraPDF für PDF/A-3b
Beispieldatei: RE-2026-0042.pdf
Profile und Varianten
- MINIMUMkeine E-Rechnung im Sinne des UStG
- BASIC WLkeine E-Rechnung im Sinne des UStG
- BASIC
- EN 16931empfohlen
- EXTENDED
- XRECHNUNG
Häufige Fragen zu ZUGFeRD / Factur-X
ZUGFeRD oder XRechnung?
Für Unternehmen ist ZUGFeRD im Profil EN 16931 meist die bequemste Wahl, weil Empfänger ein lesbares PDF bekommen. Bundesbehörden verlangen XRechnung.
Welche Profile gelten als E-Rechnung?
BASIC, EN 16931, EXTENDED und XRECHNUNG. MINIMUM und BASIC WL enthalten zu wenige Angaben und gelten in Deutschland nicht als E-Rechnung.
Muss ich mich um PDF/A-3 kümmern?
Nein. Quittio erzeugt das PDF/A-3b mit eingebettetem XML und den nötigen Metadaten. veraPDF prüft es, lokal oder in deiner CI. In der CI von Quittio selbst prüft veraPDF die ZUGFeRD-PDFs aller EN-16931-Szenarien.
Ab wann welche Rechnung Pflicht ist, steht im Ratgeber zur E-Rechnungspflicht.