diff --git a/info-manager-server/src/main/java/de/ozgcloud/info/nachricht/NachrichtGrpcService.java b/info-manager-server/src/main/java/de/ozgcloud/info/nachricht/NachrichtGrpcService.java
index 8b415760bdcf5555300a8ee9b91a0b5f8d2c4a5e..4bae8077690e8f41248ec23576e321846cdeb574 100644
--- a/info-manager-server/src/main/java/de/ozgcloud/info/nachricht/NachrichtGrpcService.java
+++ b/info-manager-server/src/main/java/de/ozgcloud/info/nachricht/NachrichtGrpcService.java
@@ -20,9 +20,14 @@
 
 package de.ozgcloud.info.nachricht;
 
+import java.util.Set;
+
+import jakarta.validation.ConstraintViolation;
 import jakarta.validation.ConstraintViolationException;
+import jakarta.validation.Validator;
 
 import de.ozgcloud.info.common.InvalidNachrichtenListUrlException;
+import de.ozgcloud.info.common.NachrichtEvent;
 import io.grpc.Status;
 import io.grpc.stub.StreamObserver;
 import lombok.RequiredArgsConstructor;
@@ -35,6 +40,7 @@ public class NachrichtGrpcService extends NachrichtServiceGrpc.NachrichtServiceI
 
 	private final NachrichtService nachrichtService;
 	private final NachrichtMapper nachrichtenMapper;
+	private final Validator validator;
 
 	@Override
 	public void saveNewNachricht(GrpcNewNachrichtRequest request, StreamObserver<GrpcNewNachrichtReply> responseObserver) {
@@ -49,7 +55,20 @@ public class NachrichtGrpcService extends NachrichtServiceGrpc.NachrichtServiceI
 	}
 
 	private void saveNachricht(GrpcNewNachrichtRequest request) {
-		nachrichtService.save(nachrichtenMapper.fromGrpcNachricht(request.getNachricht()));
+		var nachricht = nachrichtenMapper.fromGrpcNachricht(request.getNachricht());
+
+		if (isValid(nachricht)) {
+			nachrichtService.save(nachricht);
+		}
+	}
+
+	private boolean isValid(NachrichtEvent nachrichtEvent) {
+		Set<ConstraintViolation<NachrichtEvent>> violations = validator.validate(nachrichtEvent);
+		if (!violations.isEmpty()) {
+			throw new ConstraintViolationException(violations);
+		}
+
+		return true;
 	}
 
 	@Override
diff --git a/info-manager-server/src/test/java/de/ozgcloud/info/nachricht/NachrichtenGrpcServiceITCase.java b/info-manager-server/src/test/java/de/ozgcloud/info/nachricht/NachrichtenGrpcServiceITCase.java
index 93025e8f1da78b8583cd058aeb8b0bfdd559b2d9..03a58213faef6c7bdee5d8cfc73a046ffedeaafa 100644
--- a/info-manager-server/src/test/java/de/ozgcloud/info/nachricht/NachrichtenGrpcServiceITCase.java
+++ b/info-manager-server/src/test/java/de/ozgcloud/info/nachricht/NachrichtenGrpcServiceITCase.java
@@ -30,6 +30,7 @@ import org.springframework.test.annotation.DirtiesContext;
 import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
 
 import de.ozgcloud.info.NachrichtEventTestFactory;
+import io.grpc.StatusRuntimeException;
 import net.devh.boot.grpc.client.inject.GrpcClient;
 
 @SpringBootTest(properties = {
@@ -54,6 +55,15 @@ class NachrichtenGrpcServiceITCase {
 
 			assertThat(response.getStatus()).isEqualTo(STATUS_OK);
 		}
+
+		@Test
+		@DirtiesContext
+		void shouldNotSaveInvalidNewNachricht() {
+			var nachricht = GrpcNachricht.newBuilder().setNachrichtenListUrl("lala").build();
+			var request = NachrichtEventTestFactory.createNewNachrichtRequest().toBuilder().setNachricht(nachricht).build();
+
+			assertThatExceptionOfType(StatusRuntimeException.class).isThrownBy(() -> service.saveNewNachricht(request));
+		}
 	}
 
 	@Nested
diff --git a/info-manager-server/src/test/java/de/ozgcloud/info/nachricht/NachrichtenGrpcTestConfiguration.java b/info-manager-server/src/test/java/de/ozgcloud/info/nachricht/NachrichtenGrpcTestConfiguration.java
index daac2ed2246f451fc05d39e3f2a8d548807c0a4f..1585b165118a2753a910b4e30404a8bf61b0f6d9 100644
--- a/info-manager-server/src/test/java/de/ozgcloud/info/nachricht/NachrichtenGrpcTestConfiguration.java
+++ b/info-manager-server/src/test/java/de/ozgcloud/info/nachricht/NachrichtenGrpcTestConfiguration.java
@@ -24,9 +24,13 @@ package de.ozgcloud.info.nachricht;
 
 import static org.mockito.Mockito.*;
 
+import jakarta.validation.Validator;
+
 import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.core.env.Environment;
+import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;
 
 import net.devh.boot.grpc.client.autoconfigure.GrpcClientAutoConfiguration;
 import net.devh.boot.grpc.server.autoconfigure.GrpcServerAutoConfiguration;
@@ -40,7 +44,12 @@ import net.devh.boot.grpc.server.autoconfigure.GrpcServerFactoryAutoConfiguratio
 class NachrichtenGrpcTestConfiguration {
 	@Bean
 	NachrichtService nachrichtenService() {
-		return mock(NachrichtService.class);
+		return new NachrichtService(nachrichtenRepository());
+	}
+
+	@Bean
+	Validator validator() {
+		return new LocalValidatorFactoryBean();
 	}
 
 	@Bean
@@ -50,11 +59,11 @@ class NachrichtenGrpcTestConfiguration {
 
 	@Bean
 	NachrichtMapper nachrichtenMapper() {
-		return mock(NachrichtMapper.class);
+		return new NachrichtMapper(mock(Environment.class));
 	}
 
 	@Bean
 	NachrichtGrpcService nachrichtenGrpcService() {
-		return new NachrichtGrpcService(nachrichtenService(), nachrichtenMapper());
+		return new NachrichtGrpcService(nachrichtenService(), nachrichtenMapper(), validator());
 	}
 }