ZUGFeRD erstellen per API (Factur-X, PDF/A-3)
Mit "format": "zugferd" liefert POST https://veriport.io/api/v1/einvoice/create eine hybride Rechnung: ein PDF/A-3, dessen sichtbare Seite aus denselben Daten gezeichnet ist wie die eingebettete Datei factur-x.xml (CII, Profil EN 16931). ZUGFeRD 2.x und Factur-X 1.0 sind dasselbe Format; das Profil EN 16931 heißt bei ZUGFeRD « COMFORT ». Jede Beispieldatei der Prüfreihe hat veraPDF als PDF/A-3B-konform und Mustang als gültige ZUGFeRD-Rechnung bewertet. 20 Aufrufe je Rechnung.
- Das PDF erfüllt PDF/A-3b: eingebettete Schrift (IBM Plex Sans), sRGB-Ausgabeprofil, XMP-Metadaten mit der Factur-X-Erweiterung, die XML als Anhang mit AFRelationship « Alternative ».
- Die eingebettete XML ist reines EN 16931 (Kennung
urn:cen.eu:en16931:2017), ohne XRechnung-Zusatzregeln: für Behörden, die XRechnung verlangen, istxrechnung-ubloderxrechnung-ciidas richtige Format. - Die sichtbare Seite gibt es auf Deutsch, Englisch, Französisch und Niederländisch (
language); Beträge, Steuer und Summen kommen aus demselben Modell wie die XML. - Belegt: veraPDF 1.30.3 und Mustang 2.26.0 auf allen 31 ZUGFeRD-PDFs der Prüfreihe, der KoSIT-Validator auf jeder eingebetteten XML.
Warum ZUGFeRD statt reiner XML?
Der Empfänger kann das PDF lesen wie jede Rechnung, und seine Buchhaltung liest die XML. Seit 2025 gilt eine ZUGFeRD-Rechnung ab Profil EN 16931 in Deutschland als E-Rechnung im Sinne des § 14 UStG; die Profile MINIMUM und BASIC WL genügen dafür nicht. In Frankreich ist Factur-X eines der drei Formate der Reform (Empfang ab 1. September 2026, Ausstellung für KMU ab 1. September 2027).
Die Anfrage
Dasselbe JSON wie für XRechnung, nur das Format ändert sich. Für die sichtbare Seite können Sie language setzen (de, en, fr, nl); ohne Angabe gilt Deutsch für einen deutschen Verkäufer. Das Beispiel ist der Fall « allowance-and-charge » (3 % Treuerabatt auf eine Basis, ein fester Nachlass zu 7 %, Versand zu 19 %).
{
"format": "zugferd",
"number": "2026-040",
"issueDate": "2026-10-20",
"paymentTermsDays": 14,
"buyerReference": "EK-2026-0345",
"deliveryDate": "2026-10-15",
"seller": {
"name": "Lena Hartmann — Webdesign",
"address": {
"street": "Lindenstraße 14",
"postalCode": "10969",
"city": "Berlin",
"countryCode": "DE"
},
"vatId": "DE136695976",
"contact": {
"name": "Lena Hartmann",
"phone": "+49 30 1234567",
"email": "rechnung@hartmann-webdesign.example"
}
},
"buyer": {
"name": "Mustermann Maschinenbau GmbH",
"address": {
"street": "Industrieweg 7",
"postalCode": "70565",
"city": "Stuttgart",
"countryCode": "DE"
},
"contact": {
"email": "buchhaltung@mustermann.example"
}
},
"payment": {
"iban": "DE02120300000000202051"
},
"lines": [
{
"name": "Relaunch Website",
"quantity": 20,
"unitCode": "HUR",
"unitPrice": 95,
"vat": {
"category": "S",
"rate": 19
}
},
{
"name": "Fachbuch Barrierefreiheit",
"quantity": 10,
"unitCode": "C62",
"unitPrice": 19.99,
"vat": {
"category": "S",
"rate": 7
}
}
],
"allowances": [
{
"percent": 3,
"baseAmount": 1900,
"reason": "Treuerabatt 3 %",
"reasonCode": "95",
"vat": {
"category": "S",
"rate": 19
}
},
{
"amount": 10,
"reason": "Mengenrabatt Bücher",
"vat": {
"category": "S",
"rate": 7
}
}
],
"charges": [
{
"amount": 24.9,
"reason": "Versand",
"reasonCode": "FC",
"vat": {
"category": "S",
"rate": 19
}
}
]
}curl -X POST "https://veriport.io/api/v1/einvoice/create" \
-H "Authorization: Bearer vp_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 2026-040" \
-D headers.txt -o rechnung.pdf \
-d @invoice.jsonWas zurückkommt
application/pdf mit Veriport-Validation: valid; profile=en16931; …. Mit ?envelope=json dieselbe Datei in Base64 plus Prüfbericht. Pro Anfrage prüft die API die eingebettete XML gegen Schema und EN-16931-Regeln; die PDF/A-Konformität ist durch die Prüfreihe belegt (veraPDF) und wird nicht bei jeder Anfrage neu gemessen.
Eine erhaltene ZUGFeRD-Rechnung lesen
POST https://veriport.io/api/v1/einvoice/parse öffnet ein ZUGFeRD- oder Factur-X-PDF, liest die eingebettete XML und gibt sie als dasselbe JSON zurück, das create annimmt, mit einer Liste dessen, was das JSON nicht abbildet (notInJson). Mit ?as=pdf gibt es eine lesbare PDF/A-Kopie. Ohne Konto zeigt der E-Rechnungs-Viewer eine Rechnung im Browser an.
Was nicht dabei ist
- Die Profile MINIMUM, BASIC WL und EXTENDED sowie das ZUGFeRD-Profil XRECHNUNG werden in v1 nicht erzeugt; geprüft wird EN 16931 und BASIC.
- Die besonderen Angaben der französischen Plattformen (PA) der Reform 2026/2027 sind nicht umgesetzt.
- Kein Versand: die API erzeugt und prüft Dateien, sie übermittelt nichts (kein Peppol-Zugangspunkt, keine E-Mail an den Empfänger).
- Keine Speicherung: Eingabe und Datei existieren nur während der Anfrage; die GoBD-konforme Archivierung bleibt beim Rechnungssteller.
- Keine Steuerberatung: die Datei enthält die Angaben, die Sie senden; welche Steuerkategorie gilt, entscheidet der Rechnungssteller.
Questions
- Ist ZUGFeRD dasselbe wie Factur-X?
- Ja, seit ZUGFeRD 2.1 sind beide technisch identisch; Factur-X ist der französische Name, die Kennungen der Profile sind gleich. Eine Rechnung im Profil EN 16931 ist in beiden Ländern dieselbe Datei.
- Kann ich eine Factur-X-Datei kostenlos prüfen?
- Ja, auf Factur-X valider (Französisch) oder XRechnung prüfen, ohne Konto, 4 Prüfungen am Tag.
- Wird das PDF gespeichert?
- Nein. Es entsteht im Speicher der Anfrage und wird nur Ihnen geliefert; eine Wiederholung mit demselben Idempotency-Key erzeugt es neu, byte-gleich.
ZUGFeRD-Rechnungen aus Ihrem eigenen Code: 100 Aufrufe im Monat ohne Karte.
Kostenlosen API-Schlüssel holenSources
- ZUGFeRD 2.x (identical to Factur-X 1.0; the EN 16931 profile is « COMFORT ») — FeRD (Forum elektronische Rechnung Deutschland), consulted 2026-10-28
- Factur-X 1.0 (the Franco-German hybrid invoice: PDF/A-3 with CII, profiles MINIMUM to EXTENDED) — FNFE-MPE, consulted 2026-10-28
- veraPDF, the industry-supported PDF/A validator (release 1.30.3) — veraPDF consortium (PDF Association, Open Preservation Foundation), consulted 2026-10-28
- Mustang project (ZUGFeRD / Factur-X library and validator, release 2.26.0) — Mustang project (open source), consulted 2026-10-28
- § 14 UStG (Ausstellung von Rechnungen): the e-invoice for domestic B2B supplies, receipt since 1 January 2025, issue from 1 January 2027 (turnover above €800,000) and 1 January 2028 — Bundesministerium der Justiz (gesetze-im-internet.de), consulted 2026-10-28
- Facturation électronique et plateformes agréées: reception by every business from 1 September 2026, issue by SMEs from 1 September 2027 — DGFiP (impots.gouv.fr), consulted 2026-10-28