diff --git a/cannamanage-api/pom.xml b/cannamanage-api/pom.xml
index cdcdf3f..a30c9d8 100644
--- a/cannamanage-api/pom.xml
+++ b/cannamanage-api/pom.xml
@@ -113,6 +113,11 @@
spring-boot-testcontainers
test
+
+
+ org.springframework.boot
+ spring-boot-starter-mail
+
diff --git a/cannamanage-api/src/main/java/de/cannamanage/api/controller/AuthController.java b/cannamanage-api/src/main/java/de/cannamanage/api/controller/AuthController.java
index 2bd4cc8..0fa7cb9 100644
--- a/cannamanage-api/src/main/java/de/cannamanage/api/controller/AuthController.java
+++ b/cannamanage-api/src/main/java/de/cannamanage/api/controller/AuthController.java
@@ -3,6 +3,7 @@ package de.cannamanage.api.controller;
import de.cannamanage.api.dto.auth.LoginRequest;
import de.cannamanage.api.dto.auth.LoginResponse;
import de.cannamanage.api.dto.auth.RefreshRequest;
+import de.cannamanage.api.dto.auth.SetPasswordRequest;
import de.cannamanage.api.service.AuthService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -14,6 +15,8 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import java.util.Map;
+
@RestController
@RequestMapping("/api/v1/auth")
@RequiredArgsConstructor
@@ -35,4 +38,12 @@ public class AuthController {
LoginResponse response = authService.refresh(request);
return ResponseEntity.ok(response);
}
+
+ @PostMapping("/set-password")
+ @Operation(summary = "Set password via invite token",
+ description = "Public endpoint — validates invite token, sets password, activates account")
+ public ResponseEntity