From 722699f5d00c68cde3e9f9cc3c521c0bc55c620f Mon Sep 17 00:00:00 2001 From: Sven Carstensen Date: Mon, 13 Jul 2026 17:45:51 +0200 Subject: [PATCH] =?UTF-8?q?Sign-Endpoint=20liefert=20HTTP=20422=20bei=20un?= =?UTF-8?q?g=C3=BCltiger=20Rechnung,=20ZIP=20in=20beiden=20F=C3=A4llen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- .../assecutor/pdftool/api/InvoiceSigningController.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/de/assecutor/pdftool/api/InvoiceSigningController.java b/src/main/java/de/assecutor/pdftool/api/InvoiceSigningController.java index 56e6470..73910b0 100644 --- a/src/main/java/de/assecutor/pdftool/api/InvoiceSigningController.java +++ b/src/main/java/de/assecutor/pdftool/api/InvoiceSigningController.java @@ -60,6 +60,11 @@ public class InvoiceSigningController { this.validator = validator; } + /** + * Erzeugt aus PDF und Metadaten eine ZUGFeRD-Rechnung als ZIP (PDF + Prüfbericht). + * HTTP 200 bei gültiger, HTTP 422 bei ungültiger Rechnung; das ZIP wird in + * beiden Fällen geliefert. + */ @PostMapping(value = "/sign", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public ResponseEntity sign(@RequestPart("file") MultipartFile file, @RequestPart("metadata") String metadataJson) throws IOException { @@ -70,7 +75,8 @@ public class InvoiceSigningController { headers.setContentType(MediaType.parseMediaType("application/zip")); headers.setContentDisposition(ContentDisposition.attachment().filename(result.zipFileName()).build()); headers.set(VALIDATION_HEADER, String.valueOf(result.valid())); - return new ResponseEntity<>(result.zip(), headers, HttpStatus.OK); + return new ResponseEntity<>(result.zip(), headers, + result.valid() ? HttpStatus.OK : HttpStatus.UNPROCESSABLE_ENTITY); } /**