Überblick
Zwei Einstiege: schnell prüfen oder systematisch integrieren
XInvoice deckt zwei unterschiedliche Nutzungsszenarien ab: einzelne Rechnungen im Browser prüfen oder E-Rechnungen per API in bestehende Software integrieren. Dieser Überblick hilft dir, den passenden Pfad sofort zu finden.
Ich will eine einzelne Rechnung prüfen
Nutze den Web-Validator für schnelle Browser-Tests mit XML oder ZUGFeRD-PDF.
Zum ValidatorIch will E-Rechnungen automatisieren
Nutze die API für wiederkehrende Validierung, Erzeugung und Abruf in deinem Produkt oder Backend.
Zur EntwicklerseiteWeb-Validator: E-Rechnungen im Browser prüfen
Der Web-Validator ist für direkte Einzelprüfungen gedacht. Er eignet sich für XRechnung-Dateien im XML-Format und für ZUGFeRD-Dateien als PDF. Bei erfolgreicher Prüfung kann der Rechnungsinhalt im Browser zusätzlich strukturiert angezeigt werden.
Welche Dienste bietet diese App hier?
- Validierung von XRechnung-XML im Browser.
- Validierung von ZUGFeRD-PDF im Browser für eingeloggte Benutzer.
- Lesbare HTML-Anzeige erfolgreicher XRechnungen und ZUGFeRD-PDFs im Browser für eingeloggte Benutzer.
Nach welchen Normen und Kriterien wird validiert?
- XRechnung wird gegen UBL/XSD, EN 16931 und XRechnung-CIUS geprüft.
- ZUGFeRD wird gegen CII/XSD und EN-16931-Regeln geprüft.
- Zusätzlich wird bei ZUGFeRD der PDF/A-Pfad mit veraPDF geprüft.
Welche Formate kann diese App erzeugen?
- XRechnung als UBL gemäß EN 16931 und XRechnung-CIUS.
- ZUGFeRD / Factur-X als CII plus Hybrid-PDF gemäß EN 16931.
So funktioniert der Test im Browser
- 1. Die Seite »Validator« öffnen und eine XML- oder PDF-Datei hochladen. XML kann alternativ direkt in das Textfeld eingefügt werden.
- 2. Auf »E-Rechnung validieren« klicken und auf das Prüfergebnis unterhalb des Buttons warten.
- 3. Bei erfolgreicher Prüfung kann mit »Inhalt der Rechnung anzeigen« eine strukturierte HTML-Ansicht geöffnet werden.
Wo ist das Ergebnis zu finden?
- Das Ergebnis erscheint direkt unter dem Formular auf derselben Seite.
- Gäste sehen nur den Status gültig oder fehlerhaft.
- Eingeloggte Benutzer sehen die einzelnen Fehlermeldungen und bei erfolgreicher Prüfung zusätzlich den Rechnungsinhalt.
Einschränkungen
- Gäste können nur XML- und TXT-Dateien hochladen. ZUGFeRD-PDFs sind im Web-Validator nur für eingeloggte Benutzer verfügbar.
- Gäste sind auf drei Prüfungen pro Stunde begrenzt. Mit Konto ist das Kontingent höher.
- Der Web-Validator ist für Einzelprüfungen gedacht, nicht für automatisierte Produktivprozesse.
API: Schnelleinstieg für Entwickler
Die API richtet sich an Integratoren, die Rechnungen wiederkehrend validieren, erzeugen, speichern und abrufen wollen. Die ausführliche Referenz wird separat gehostet. Hier steht der kompakte Einstieg mit den wichtigsten Endpunkten und der Datenstruktur für Generate.
Welche Dienste bietet diese App über die API?
- Validierung von Rechnungsdaten als JSON, XML oder ZUGFeRD-PDF.
- Erzeugung von XRechnung und ZUGFeRD aus strukturierten Rechnungsdaten.
- Abruf, Auflistung und Download erzeugter Artefakte pro API-Key.
Nach welchen Normen und Kriterien wird validiert?
- XRechnung: UBL/XSD, EN 16931 und XRechnung-CIUS.
- ZUGFeRD: CII/XSD, EN-16931-Regeln und PDF/A-Prüfung mit veraPDF.
- Die Ergebnisse werden strukturiert mit Quelle, Code, Schweregrad und Position zurückgegeben.
Welche Formate kann die API erzeugen?
- XRechnung als UBL-XML.
- ZUGFeRD / Factur-X als CII-XML und Hybrid-PDF.
- Für ZUGFeRD kann zusätzlich ein Logo eingebunden werden.
Schnelleinstieg
- 1. Konto registrieren, passenden Tarif wählen und im Dashboard einen API-Key erzeugen.
- 2. Mit »POST /v1/invoices/validate« zuerst Testdaten gegen die Validierung laufen lassen.
- 3. Mit »POST /v1/invoices/generate« die eigentliche Rechnung erzeugen, synchron oder asynchron.
- 4. Den Status über »GET /v1/invoices/{id}« abfragen und fertige Artefakte bei Bedarf herunterladen.
Ausführliche API-Dokumentation
Externe API-Doku öffnenDie vollständige Referenz mit allen Feldern, Antwortmodellen und Beispielen wird separat veröffentlicht. Der Überblick auf dieser Seite ist bewusst knapp und soll den schnellsten Weg in die Integration zeigen.
Wichtige Endpunkte mit Beispielen
POST /v1/invoices/validate
Validiert Rechnungsdaten als JSON, XML oder ZUGFeRD-PDF, ohne etwas zu speichern.
curl -X POST https://api.xinvoice.net/v1/invoices/validate \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d @payload.json
POST /v1/invoices/generate
Erzeugt eine Rechnung und liefert im Sync-Modus direkt XML bzw. PDF zurück.
curl -X POST https://api.xinvoice.net/v1/invoices/generate \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Prefer: respond-sync' \
-d @payload.json
GET /v1/invoices/{id}
Liefert Status, Validierung und Artefakte einer zuvor erzeugten Rechnung.
curl -X GET https://api.xinvoice.net/v1/invoices/{id} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY'
GET /v1/invoices/{id}/download-pdf
Lädt das Hybrid-PDF einer ZUGFeRD-Rechnung herunter.
curl -X GET https://api.xinvoice.net/v1/invoices/{id}/download-pdf \
-H 'Authorization: Bearer YOUR_API_KEY' \
-o invoice.pdf
Struktur der Rechnungsdaten für die Erzeugung
Für »generate« und »validate« mit JSON werden strukturierte Rechnungsdaten erwartet. Das folgende Beispiel zeigt die wichtigsten Blöcke für Seller, Buyer und Positionen.
{
"document_format": "zugferd",
"invoice_number": "RE-2026-001",
"issue_date": "2026-04-15",
"currency": "EUR",
"seller": {
"name": "Muster GmbH",
"vat_id": "DE123456789",
"street": "Musterstr. 1",
"postal_code": "12345",
"city": "Berlin",
"country_code": "DE",
"email": "seller@example.com"
},
"buyer": {
"name": "Kunde AG",
"street": "Kundenweg 5",
"postal_code": "54321",
"city": "Hamburg",
"country_code": "DE",
"email": "buyer@example.com"
},
"items": [
{
"name": "Beratung",
"quantity": 1,
"unit_code": "H87",
"price": 100.00,
"tax_rate": 19
}
]
}
FAQ
Häufige Fragen zu Web-Validator, Konto, API-Zugang und Downloads sind auf einer eigenen FAQ-Seite zusammengefasst.
Zur FAQSupport
Wenn der Überblick nicht reicht oder ein konkretes Problem vorliegt, kann das Support-Formular direkt im Browser genutzt werden.
Zum Support