Geplant Q4/2026

Converter API

Konvertiere E-Rechnungen zwischen XRechnung, ZUGFeRD/Factur-X und UBL – verlustfrei, soweit das Zielprofil es erlaubt. Nicht abbildbare Felder werden als Warnungen ausgewiesen.

In Planung

Heute schon möglich: Parser + Creator kombinieren

Live

Du musst nicht auf die Converter API warten: Die Parser API liefert für jede unterstützte Rechnung ein kanonisches invoice-JSON, das die Creator API direkt als Eingabe akzeptiert. Zwei API-Calls ergeben damit heute schon eine vollständige Konvertierung – im Beispiel: XRechnung zu ZUGFeRD.

  1. 1Quellrechnung parsen – POST /api/v1/invoice/parse akzeptiert XML oder ZUGFeRD/Factur-X-PDF (Base64) und erkennt Format und Land automatisch.
  2. 2Optional validieren – der Validate-Endpunkt prüft das invoice-JSON gegen die Länderregeln, ohne dein Kontingent zu belasten.
  3. 3Zielformat generieren – das invoice-JSON unverändert an den Generate-Endpunkt des Zielformats übergeben; ZUGFeRD-Profil per formatOptions.profile.
bash
1# Funktioniert heute Parser + Creator API kombiniert
2 
3# 1) Quelle parsen (Auto-Detect: Format & Land)
4INVOICE=$(curl -s -X POST https://service.invoice-api.xhub.io/api/v1/invoice/parse \
5 -H "Authorization: Bearer sk_live_abc123..." \
6 -H "Content-Type: application/json" \
7 -d '{"data": "'$(base64 -i xrechnung.xml)'", "filename": "xrechnung.xml"}' \
8 | jq '.invoice')
9 
10# 2) invoice-JSON unverändert ins Zielformat generieren
11jq -n --argjson inv "$INVOICE" '{invoice: $inv, formatOptions: {profile: "EN16931"}}' \
12 | curl -s -X POST https://service.invoice-api.xhub.io/api/v1/invoice/de/zugferd/generate \
13 -H "Authorization: Bearer sk_live_abc123..." \
14 -H "Content-Type: application/json" \
15 -d @- \
16 | jq -r '.data' | base64 -d > rechnung-zugferd.pdf

Grenzen: Als Eingabe werden Rechnungen aus 28 Ländern erkannt, als Ausgabe stehen 11 Formate in 14 Ländern bereit. Die Konvertierung läuft über das kanonische Rechnungsmodell – formatspezifische Sonderfelder, die es nicht abbildet, gehen verloren; die Parse-Response weist darauf in warnings hin.

Bidirektional

Konvertiere in beide Richtungen zwischen allen aktuellen Formaten

Validiert

Automatische Validierung von Quell- und Zielformat gegen die offiziellen Schemas (EN 16931, KoSIT)

PDF inklusive

Bei ZUGFeRD-Konvertierung wird automatisch ein PDF/A-3 generiert

Konvertierungs-Matrix

VonNach
XRechnung 3.0
ZUGFeRD / Factur-XUBL (Peppol BIS 3.0)
XRechnung 2.x
XRechnung 3.0ZUGFeRD / Factur-XUBL (Peppol BIS 3.0)
ZUGFeRD / Factur-X
XRechnung 3.0UBL (Peppol BIS 3.0)
UBL (Peppol BIS 3.0)
XRechnung 3.0ZUGFeRD / Factur-X

Dein Format ist nicht dabei?

Wir entwickeln individuelle Format-Konvertierungen als Auftragsarbeit – z. B. proprietäre ERP-Exporte, Legacy-Formate oder branchenspezifische Profile. Machbarkeit, Aufwand und Zeitplan klären wir gemeinsam mit dir.

Beispiel

bash
1# Geplante API noch nicht verfügbar
2curl -X POST https://service.invoice-api.xhub.io/api/v1/invoice/convert \
3 -H "Authorization: Bearer sk_live_abc123..." \
4 -H "Content-Type: application/json" \
5 -d '{
6 "xml": "<?xml version=\"1.0\"?>\n<Invoice xmlns=\"urn:oasis:names:specification:ubl:schema:xsd:Invoice-2\">...</Invoice>",
7 "sourceFormat": "xrechnung",
8 "targetFormat": "zugferd"
9 }'

Alternative: Multipart File Upload

bash
1# Geplante API noch nicht verfügbar
2curl -X POST https://service.invoice-api.xhub.io/api/v1/invoice/convert \
3 -H "Authorization: Bearer sk_live_abc123..." \
4 -H "Content-Type: multipart/form-data" \
5 -F "file=@xrechnung.xml" \
6 -F "targetFormat=zugferd"

Response

json
1{
2 "success": true,
3 "sourceFormat": "xrechnung",
4 "targetFormat": "zugferd",
5 "filename": "invoice-converted.pdf",
6 "mimeType": "application/pdf",
7 "hash": "sha256:xyz789...",
8 "data": "JVBERi0xLjcKCjEgMCBvYmoKPDwKL1R5cGUgL0NhdGFsb2cK...",
9 "errors": [],
10 "warnings": []
11}

Request Parameter

ParameterTypPflichtBeschreibung
xmlstringDie zu konvertierende XML-Rechnung
sourceFormatstring-Quellformat. Wird automatisch erkannt wenn nicht angegeben
targetFormatstringZielformat der Konvertierung
profilestring-ZUGFeRD-Profil: MINIMUM, BASIC, BASIC-WL, EN16931, EXTENDED (Default: EN16931)
validateSourceboolean-Quell-XML vor Konvertierung validieren (Default: true)
validateTargetboolean-Ziel-XML nach Konvertierung validieren (Default: true)

Format-Werte

xrechnung

XRechnung 3.0

zugferd

ZUGFeRD 2.x

facturx

Factur-X 1.0.x

ubl-peppol

UBL (Peppol BIS 3.0)

ZUGFeRD und Factur-X bezeichnen denselben deutsch-französischen Hybrid-Standard (PDF/A-3 mit eingebettetem EN-16931-XML) – beide Werte liefern dasselbe Ergebnis. Ältere Versionen werden als Quellformat automatisch erkannt; Zielformat ist immer die aktuelle Version.

ZUGFeRD Profile

Bei Konvertierung nach ZUGFeRD kannst du das Profil festlegen. Das Profil bestimmt, welche Felder im XML enthalten sind.

MINIMUM

Nur Pflichtfelder, für einfache Rechnungen

BASIC

Basis-Informationen für automatische Verarbeitung

BASIC-WL

BASIC ohne Positionen (Rechnungssummen only)

EN16931

EU-Norm, empfohlen für B2G (Default)

EXTENDED

Alle Felder, maximale Detailtiefe

ZUGFeRD PDF-Generierung

Bei Konvertierung zu ZUGFeRD wird automatisch ein PDF/A-3 erstellt, in dem das XML eingebettet ist. Das PDF verwendet ein Standard-Layout. Für individuelle PDF-Designs nutze die Visualizer API (geplant Q4/2026).

Typische Anwendungsfälle

XRechnung zu ZUGFeRD

Du hast XRechnungen für Behörden erstellt und willst dieselben Rechnungen als PDF mit eingebettetem XML an Geschäftskunden senden.

ZUGFeRD zu XRechnung

Du erhältst ZUGFeRD-Rechnungen von Lieferanten und musst diese zur Weiterverarbeitung in XRechnung konvertieren.

XRechnung 2.3 zu 3.0

Migration bestehender XRechnungen auf die aktuelle Version 3.0 für die Kompatibilität mit aktuellen Behörden-Systemen.

Factur-X zu XRechnung

Französische Factur-X Rechnungen für den deutschen Markt aufbereiten und an öffentliche Auftraggeber senden.

Individuelle Konvertierungen als Auftragsarbeit

Vom Spezialformat zur produktiven Konvertierung: Wir analysieren Quell- und Zielformat, entwickeln die Anpassung und stellen sie dir über die API bereit – auf Wunsch als Teil eines Enterprise-Pakets mit eigenem SLA.