PDF Service: ZUGFeRD-REST-API als eigenständiges Projekt (aus dem PDF Tool herausgelöst)

Endpoints /api/invoices/sign und /api/invoices/validate; Eingabe ist immer ein
fertiges Rechnungs-PDF, Template-Rendering verbleibt im PDF Tool.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-17 11:20:58 +02:00
co-authored by Claude Fable 5
commit cf691649a1
18 changed files with 1424 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
# PDF Service
REST-API zur Erzeugung und Prüfung rechtskonformer ZUGFeRD-E-Rechnungen
(PDF/A-3 mit eingebettetem EN16931-XML, [Mustangproject](https://www.mustangproject.org/)).
Aus dem PDF Tool herausgelöst: Das PDF Tool enthält die Weboberfläche
(Rechnungserzeugung aus Templates), dieser Service stellt ausschließlich die
API bereit — Eingabe ist immer ein fertiges Rechnungs-PDF.
## Starten
```bash
./mvnw spring-boot:run
```
Der Service läuft standardmäßig auf Port `8084` (überschreibbar per `SERVER_PORT`).
## Endpoints
### PDF in ZUGFeRD-Rechnung umwandeln
```bash
curl -X POST http://localhost:8084/api/invoices/sign \
-F "file=@rechnung.pdf" \
-F "metadata=@metadata.json;type=application/json" \
-o rechnung-zugferd.zip
```
Antwort: ZIP mit ZUGFeRD-PDF und Mustang-Prüfbericht (`validation-report.xml`).
HTTP 200 bei gültiger, HTTP 422 bei ungültiger Rechnung (ZIP in beiden Fällen);
der Header `X-Zugferd-Valid` enthält das Prüfergebnis.
### ZUGFeRD-Rechnung validieren
```bash
curl -X POST http://localhost:8084/api/invoices/validate \
-F "file=@rechnung-zugferd.pdf"
```
Antwort: Mustang-Prüfbericht als XML; HTTP 200 bei gültiger, HTTP 422 bei
ungültiger Rechnung.