diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidEventListener.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidEventListener.java
index 8fd50e588aabbf6f67f6af76b760657750e40f3f..ada68e5d7b3dcc83dd1aeacc8998ba32b8702820 100644
--- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidEventListener.java
+++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidEventListener.java
@@ -44,7 +44,6 @@ import de.ozgcloud.bescheid.attacheditem.AttachedItemService;
 import de.ozgcloud.bescheid.binaryfile.BinaryFileService;
 import de.ozgcloud.bescheid.common.callcontext.CurrentUserService;
 import de.ozgcloud.bescheid.common.user.UserProfileService;
-import de.ozgcloud.bescheid.nachricht.NachrichtService;
 import de.ozgcloud.bescheid.vorgang.VorgangId;
 import de.ozgcloud.command.Command;
 import de.ozgcloud.command.CommandCreatedEvent;
@@ -94,14 +93,12 @@ class BescheidEventListener {
 
 	private final BescheidService service;
 	private final BinaryFileService fileService;
-	private final NachrichtService nachrichtService;
 	private final AttachedItemService attachedItemService;
 	private final DocumentService documentService;
 
 	private final ApplicationEventPublisher eventPublisher;
 	private final CurrentUserService userService;
 	private final UserProfileService userProfileService;
-	private final BescheidFeatureProperties bescheidFeatureProperties;
 
 	@EventListener(condition = IS_CREATE_BESCHEID)
 	public void onCreateBescheidCommand(CommandCreatedEvent event) {
@@ -109,12 +106,6 @@ class BescheidEventListener {
 	}
 
 	void doCreateBescheid(Command command) {
-		if (bescheidFeatureProperties.isKielHackathonRoute()) {
-			var bescheid = doCreateBescheidBiz(command);
-			nachrichtService.createNachrichtDraft(bescheid);
-			eventPublisher.publishEvent(new BescheidCreatedEvent(command));
-			return;
-		}
 		var createdItemId = attachedItemService.createBescheidDraft(command);
 		eventPublisher.publishEvent(new BescheidCreatedEvent(command, createdItemId));
 	}
diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidFeatureProperties.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidFeatureProperties.java
deleted file mode 100644
index 1b0011890ab72654176613f9dfd31ec1eb41fdc8..0000000000000000000000000000000000000000
--- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidFeatureProperties.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-package de.ozgcloud.bescheid;
-
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.context.annotation.Configuration;
-
-import lombok.Getter;
-import lombok.Setter;
-
-@Configuration
-@ConfigurationProperties(prefix = "ozgcloud.feature.bescheid")
-@Getter
-@Setter
-public class BescheidFeatureProperties {
-
-	private boolean storeAsDocument = false;
-
-	private boolean kielHackathonRoute = false;
-}
diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidService.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidService.java
index aa027989797574f34930c1249e922d370029d2da..fb010f5dff17f3406354455944fab3a4f168be2c 100644
--- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidService.java
+++ b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/BescheidService.java
@@ -26,7 +26,6 @@ import de.ozgcloud.bescheid.attacheditem.AttachedItem;
 import de.ozgcloud.bescheid.attacheditem.AttachedItemService;
 import de.ozgcloud.bescheid.attributes.ClientAttributeService;
 import de.ozgcloud.bescheid.common.user.UserProfileService;
-import de.ozgcloud.bescheid.nachricht.NachrichtService;
 import de.ozgcloud.bescheid.vorgang.Vorgang;
 import de.ozgcloud.bescheid.vorgang.VorgangId;
 import de.ozgcloud.bescheid.vorgang.VorgangService;
@@ -43,10 +42,19 @@ import lombok.extern.log4j.Log4j2;
 class BescheidService {
 
 	private static final String ERROR_MESSAGE_NO_SERVICE = "No Bescheid Endpoint is configured.";
+
 	static final String VORGANG_BESCHEIDEN_ORDER = "VORGANG_BESCHEIDEN";
 	static final String SUBCOMMANDS_EXECUTION_MODE = "PARALLEL";
 	static final String SEND_POSTFACH_NACHRICHT_ORDER = "SEND_POSTFACH_NACHRICHT";
 
+	static final String FIELD_POSTFACH_ID = "postfachId";
+	static final String FIELD_REPLY_OPTION = "replyOption";
+	static final String REPLY_OPTION = "FORBIDDEN";
+	static final String FIELD_SUBJECT = "subject";
+	static final String FIELD_MAIL_BODY = "mailBody";
+	static final String FIELD_ATTACHMENTS = "attachments";
+	static final String SUBJECT = "Ihr Bescheid zum Antrag";
+
 	private final VorgangService vorgangService;
 	private final AttachedItemService attachedItemService;
 	private final UserProfileService userProfileService;
@@ -210,10 +218,10 @@ class BescheidService {
 
 	Map<String, Object> buildSendNachrichtCommandBody(AttachedItem bescheidItem, Map<String, Object> postfachAddress) {
 		return Map.of(
-				NachrichtService.FIELD_REPLY_OPTION, NachrichtService.REPLY_OPTION,
-				NachrichtService.FIELD_SUBJECT, getNachrichtSubject(bescheidItem).orElse(NachrichtService.SUBJECT),
-				NachrichtService.FIELD_MAIL_BODY, getNachrichtText(bescheidItem).orElse(StringUtils.EMPTY),
-				NachrichtService.FIELD_ATTACHMENTS, buildAttachments(bescheidItem),
+				FIELD_REPLY_OPTION, REPLY_OPTION,
+				FIELD_SUBJECT, getNachrichtSubject(bescheidItem).orElse(SUBJECT),
+				FIELD_MAIL_BODY, getNachrichtText(bescheidItem).orElse(StringUtils.EMPTY),
+				FIELD_ATTACHMENTS, buildAttachments(bescheidItem),
 				Vorgang.ServiceKonto.FIELD_POSTFACH_ADDRESS, postfachAddress);
 
 	}
diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/nachricht/Nachricht.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/nachricht/Nachricht.java
deleted file mode 100644
index 1f352d1d9efab6714236d1fbd00b01b33c1ea0dc..0000000000000000000000000000000000000000
--- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/nachricht/Nachricht.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package de.ozgcloud.bescheid.nachricht;
-
-import java.time.ZonedDateTime;
-
-import de.ozgcloud.bescheid.UserId;
-import de.ozgcloud.bescheid.vorgang.Vorgang;
-import de.ozgcloud.bescheid.vorgang.VorgangId;
-import de.ozgcloud.common.binaryfile.FileId;
-import lombok.Builder;
-import lombok.Getter;
-import lombok.NonNull;
-
-@Getter
-@Builder
-public class Nachricht {
-
-	private NachrichtId id;
-	private VorgangId vorgangId;
-
-	@NonNull
-	private String subject;
-	@NonNull
-	private String mailBody;
-
-	private FileId bescheidFileId;
-
-	@NonNull
-	private UserId createdBy;
-	@Builder.Default
-	private ZonedDateTime createdAt = ZonedDateTime.now();
-
-	private Vorgang.PostfachAddress postfachAddress;
-}
diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/nachricht/NachrichtId.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/nachricht/NachrichtId.java
deleted file mode 100644
index b8fd29a9345542580177104549207a731e2c7139..0000000000000000000000000000000000000000
--- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/nachricht/NachrichtId.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package de.ozgcloud.bescheid.nachricht;
-
-import de.ozgcloud.common.datatype.StringBasedValue;
-
-public class NachrichtId extends StringBasedValue {
-
-	NachrichtId(String nachrichtId) {
-		super(nachrichtId);
-	}
-
-	public static NachrichtId from(String nachrichtId) {
-		return new NachrichtId(nachrichtId);
-	}
-}
diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/nachricht/NachrichtMapper.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/nachricht/NachrichtMapper.java
deleted file mode 100644
index 45bba2af3b3d076f92ed3b114fccd601a52ea2b4..0000000000000000000000000000000000000000
--- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/nachricht/NachrichtMapper.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package de.ozgcloud.bescheid.nachricht;
-
-import org.mapstruct.CollectionMappingStrategy;
-import org.mapstruct.Mapper;
-import org.mapstruct.Mapping;
-import org.mapstruct.NullValueCheckStrategy;
-import org.mapstruct.ReportingPolicy;
-
-import de.ozgcloud.bescheid.UserId;
-import de.ozgcloud.bescheid.vorgang.Vorgang;
-import de.ozgcloud.common.binaryfile.FileId;
-import de.ozgcloud.nachrichten.postfach.GrpcPostfachNachricht;
-import de.ozgcloud.vorgang.common.grpc.GrpcObjectMapper;
-import de.ozgcloud.vorgang.vorgang.GrpcPostfachAddress;
-
-@Mapper(collectionMappingStrategy = CollectionMappingStrategy.ADDER_PREFERRED, //
-		nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS, unmappedTargetPolicy = ReportingPolicy.ERROR, uses = { GrpcObjectMapper.class })
-public interface NachrichtMapper {
-
-	@Mapping(target = "createdAtBytes", ignore = true)
-	@Mapping(target = "mergePostfachAddress", ignore = true)
-	@Mapping(target = "mergeFrom", ignore = true)
-	@Mapping(target = "clearField", ignore = true)
-	@Mapping(target = "clearOneof", ignore = true)
-	@Mapping(target = "mergeUnknownFields", ignore = true)
-	@Mapping(target = "idBytes", ignore = true)
-	@Mapping(target = "mailBodyBytes", ignore = true)
-	@Mapping(target = "replyOptionBytes", ignore = true)
-	@Mapping(target = "subjectBytes", ignore = true)
-	@Mapping(target = "unknownFields", ignore = true)
-	@Mapping(target = "allFields", ignore = true)
-
-	@Mapping(target = "id", ignore = true)
-	@Mapping(target = "attachmentList", source = "bescheidFileId")
-	@Mapping(target = "replyOption", constant = "FORBIDDEN")
-	GrpcPostfachNachricht mapToGrpc(Nachricht nachricht);
-
-	@Mapping(target = "mergeFrom", ignore = true)
-	@Mapping(target = "clearField", ignore = true)
-	@Mapping(target = "clearOneof", ignore = true)
-	@Mapping(target = "mergeIdentifier", ignore = true)
-	@Mapping(target = "mergeUnknownFields", ignore = true)
-	@Mapping(target = "unknownFields", ignore = true)
-	@Mapping(target = "versionBytes", ignore = true)
-	@Mapping(target = "allFields", ignore = true)
-	GrpcPostfachAddress mapAddress(Vorgang.PostfachAddress address);
-
-	default String mapToString(FileId fileId) {
-		return fileId.toString();
-	}
-
-	default String mapToString(UserId userId) {
-		return userId.toString();
-	}
-}
diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/nachricht/NachrichtRemoteService.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/nachricht/NachrichtRemoteService.java
deleted file mode 100644
index 594c6eb77ab84ffa026550f5fa4c0c65b1f1b698..0000000000000000000000000000000000000000
--- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/nachricht/NachrichtRemoteService.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package de.ozgcloud.bescheid.nachricht;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import de.ozgcloud.nachrichten.postfach.GrpcSaveNachrichtDraftRequest;
-import de.ozgcloud.nachrichten.postfach.PostfachServiceGrpc.PostfachServiceBlockingStub;
-import io.grpc.ClientInterceptor;
-import net.devh.boot.grpc.client.inject.GrpcClient;
-
-@Service
-class NachrichtRemoteService {
-
-	@GrpcClient("nachrichten-manager")
-	private PostfachServiceBlockingStub serviceStub;
-
-	@Autowired
-	private NachrichtMapper mapper;
-
-	@Autowired
-	private ClientInterceptor bescheidCallContextInterceptor;
-
-	public void saveDraft(Nachricht nachricht) {
-		serviceStub.withInterceptors(bescheidCallContextInterceptor)
-				.saveNachrichtDraft(buildRequest(nachricht));
-	}
-
-	GrpcSaveNachrichtDraftRequest buildRequest(Nachricht nachricht) {
-		return GrpcSaveNachrichtDraftRequest.newBuilder()
-				.setVorgangId(nachricht.getVorgangId().toString())
-				.setNachricht(mapper.mapToGrpc(nachricht))
-				.build();
-	}
-}
diff --git a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/nachricht/NachrichtService.java b/bescheid-manager/src/main/java/de/ozgcloud/bescheid/nachricht/NachrichtService.java
deleted file mode 100644
index 4c3655447451ffdd42a19676c0f9216259b16d3c..0000000000000000000000000000000000000000
--- a/bescheid-manager/src/main/java/de/ozgcloud/bescheid/nachricht/NachrichtService.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package de.ozgcloud.bescheid.nachricht;
-
-import java.util.Objects;
-import java.util.Optional;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Service;
-
-import de.ozgcloud.apilib.common.command.OzgCloudCommandService;
-import de.ozgcloud.apilib.common.command.grpc.CommandMapper;
-import de.ozgcloud.bescheid.Bescheid;
-import de.ozgcloud.bescheid.common.freemarker.TemplateHandler;
-import de.ozgcloud.bescheid.vorgang.Vorgang.PostfachAddress;
-import lombok.extern.log4j.Log4j2;
-
-@Service
-@Log4j2
-public class NachrichtService {
-
-	public static final String FIELD_POSTFACH_ID = "postfachId";
-	public static final String FIELD_REPLY_OPTION = "replyOption";
-	public static final String REPLY_OPTION = "FORBIDDEN";
-	public static final String FIELD_SUBJECT = "subject";
-	public static final String FIELD_MAIL_BODY = "mailBody";
-	public static final String FIELD_ATTACHMENTS = "attachments";
-	public static final String SUBJECT = "Ihr Bescheid zum Antrag";
-
-	@Autowired
-	private NachrichtRemoteService remoteService;
-	@Autowired
-	@Qualifier("bescheid_OzgCloudCommandService")
-	private OzgCloudCommandService commandService;
-	@Autowired
-	private CommandMapper commandMapper;
-	@Autowired
-	private TemplateHandler templateHandler;
-
-
-	private static final String TEMPLATE_FILE = "bescheid.nachrichtTemplate.txt.ftlh";
-
-	public void createNachrichtDraft(Bescheid bescheid) {
-		buildNachricht(bescheid).ifPresentOrElse(remoteService::saveDraft, () -> LOG.warn("No ServiceKonto given on Vorgang."));
-	}
-
-	Optional<Nachricht> buildNachricht(Bescheid bescheid) {
-		return getAddress(bescheid).map(address -> Nachricht.builder()
-				.vorgangId(bescheid.getVorgangId())
-				.postfachAddress(address)
-				.subject(bescheid.getNachrichtSubject().orElse(SUBJECT))
-				.mailBody(buildMessage(bescheid))
-				.createdBy(bescheid.getCreatedBy())
-				.bescheidFileId(bescheid.getBescheidFileId())
-				.build());
-	}
-
-	String buildMessage(Bescheid bescheid) {
-		return bescheid.getNachrichtText()
-				.orElseGet(() -> templateHandler.fillTemplate(TEMPLATE_FILE, bescheid));
-	}
-
-	Optional<PostfachAddress> getAddress(Bescheid bescheid) {
-		var serviceKonto = bescheid.getServiceKonto();
-		if (Objects.nonNull(serviceKonto)) {
-			return Optional.of(serviceKonto.getPostfachAddresses().get(0));
-		}
-		return Optional.empty();
-	}
-
-}
diff --git a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidEventListenerITCase.java b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidEventListenerITCase.java
index 6347a9570ea12e841e2c6231ed798394daf809d2..a4c77b54a873cf167eb1ce027467114391322744 100644
--- a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidEventListenerITCase.java
+++ b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidEventListenerITCase.java
@@ -33,8 +33,6 @@ class BescheidEventListenerITCase {
 	private ApplicationEventPublisher publisher;
 	@SpyBean
 	private BescheidEventListener listener;
-	@Autowired
-	private BescheidFeatureProperties bescheidFeatureProperties;
 
 	@MockBean
 	private BescheidService service;
@@ -62,16 +60,11 @@ class BescheidEventListenerITCase {
 
 		private final Command command = CommandTestFactory.createBuilder().order(BescheidEventListener.CREATE_BESCHEID_ORDER).build();
 
-		@BeforeEach
-		void init() {
-			bescheidFeatureProperties.setKielHackathonRoute(true);
-		}
-
 		@Test
 		void shouldCallService() {
 			publisher.publishEvent(CommandCreatedEventTestFactory.withCommand(command));
 
-			verify(service).createBescheid(any());
+			verify(attachedItemService).createBescheidDraft(command);
 		}
 
 		@Test
diff --git a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidEventListenerTest.java b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidEventListenerTest.java
index 1940fb2bf4294d0d48bfab82be1b5550d7986c00..ba29a266aeb99969217d43cee2a15a485b12718a 100644
--- a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidEventListenerTest.java
+++ b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidEventListenerTest.java
@@ -32,7 +32,6 @@ import de.ozgcloud.bescheid.common.freemarker.TemplateHandler;
 import de.ozgcloud.bescheid.common.user.UserProfile;
 import de.ozgcloud.bescheid.common.user.UserProfileService;
 import de.ozgcloud.bescheid.common.user.UserProfileTestFactory;
-import de.ozgcloud.bescheid.nachricht.NachrichtService;
 import de.ozgcloud.command.Command;
 import de.ozgcloud.command.CommandCreatedEventTestFactory;
 import de.ozgcloud.command.CommandExecutedEvent;
@@ -55,12 +54,8 @@ class BescheidEventListenerTest {
 	@Mock
 	private BinaryFileService fileService;
 	@Mock
-	private NachrichtService nachrichtService;
-	@Mock
 	private AttachedItemService attachedItemService;
 	@Mock
-	private BescheidFeatureProperties featureProperties;
-	@Mock
 	private DocumentService documentService;
 
 	@Mock
@@ -105,77 +100,36 @@ class BescheidEventListenerTest {
 		@Captor
 		private ArgumentCaptor<BescheidCreatedEvent> eventCaptor;
 
-		@Nested
-		class TestKielConfigured {
-
-			@BeforeEach
-			void init() {
-				when(featureProperties.isKielHackathonRoute()).thenReturn(true);
-			}
-
-			@Test
-			void shouldCallDoCreateBescheidBiz() {
-				listener.doCreateBescheid(COMMAND);
-
-				verify(listener).doCreateBescheidBiz(COMMAND);
-				verify(attachedItemService, never()).createBescheidDraft(any());
-			}
-
-			@Test
-			void shouldCallNachrichtService() {
-				var bescheid = BescheidTestFactory.create();
-				doReturn(bescheid).when(listener).doCreateBescheidBiz(any());
-
-				listener.doCreateBescheid(COMMAND);
-
-				verify(nachrichtService).createNachrichtDraft(bescheid);
-			}
-
-			@Test
-			void shouldPublishBescheidCreatedEvent() {
-				listener.doCreateBescheid(COMMAND);
+		@Test
+		void shouldCallCreateBescheidDraft() {
+			listener.doCreateBescheid(COMMAND);
 
-				verify(eventPublisher).publishEvent(eventCaptor.capture());
-				assertThat(eventCaptor.getValue().getSource()).isEqualTo(CommandTestFactory.ID);
-			}
+			verify(attachedItemService).createBescheidDraft(COMMAND);
 		}
 
-		@Nested
-		class TestNotKielConfigured {
-
-			@Test
-			void shouldCallCreateBescheidDraft() {
-				listener.doCreateBescheid(COMMAND);
-
-				verify(attachedItemService).createBescheidDraft(COMMAND);
-				verify(listener, never()).doCreateBescheidBiz(any());
-			}
-
-			@Test
-			@DisplayName("should publish BescheidCreatedEvent after creating BescheidDraft")
-			void shouldPublishBescheidCreatedEventWithCommand() {
-				var createdResource = "item-id";
-				when(attachedItemService.createBescheidDraft(any())).thenReturn(createdResource);
+		@Test
+		@DisplayName("should publish BescheidCreatedEvent after creating BescheidDraft")
+		void shouldPublishBescheidCreatedEventWithCommand() {
+			var createdResource = "item-id";
+			when(attachedItemService.createBescheidDraft(any())).thenReturn(createdResource);
 
-				listener.doCreateBescheid(COMMAND);
+			listener.doCreateBescheid(COMMAND);
 
-				verify(eventPublisher).publishEvent(eventCaptor.capture());
-				assertThat(eventCaptor.getValue().getCommand()).isSameAs(COMMAND);
-			}
+			verify(eventPublisher).publishEvent(eventCaptor.capture());
+			assertThat(eventCaptor.getValue().getCommand()).isSameAs(COMMAND);
+		}
 
-			@Test
-			@DisplayName("should publish BescheidCreatedEvent with created resource")
-			void shouldPublishBescheidCreatedEventWithCreatedResource() {
-				var createdResource = "item-id";
-				when(attachedItemService.createBescheidDraft(any())).thenReturn(createdResource);
+		@Test
+		@DisplayName("should publish BescheidCreatedEvent with created resource")
+		void shouldPublishBescheidCreatedEventWithCreatedResource() {
+			var createdResource = "item-id";
+			when(attachedItemService.createBescheidDraft(any())).thenReturn(createdResource);
 
-				listener.doCreateBescheid(COMMAND);
+			listener.doCreateBescheid(COMMAND);
 
-				verify(eventPublisher).publishEvent(eventCaptor.capture());
-				assertThat(eventCaptor.getValue().getCreatedResource()).isEqualTo(createdResource);
-			}
+			verify(eventPublisher).publishEvent(eventCaptor.capture());
+			assertThat(eventCaptor.getValue().getCreatedResource()).isEqualTo(createdResource);
 		}
-
 	}
 
 	@Nested
diff --git a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidServiceTest.java b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidServiceTest.java
index 6db0af2e5937ab0084001a0727e0be54689ddac6..c810b402d1b51e1b1cea5017f3fcaf7530c1d690 100644
--- a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidServiceTest.java
+++ b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/BescheidServiceTest.java
@@ -1,6 +1,7 @@
 package de.ozgcloud.bescheid;
 
 import static org.assertj.core.api.Assertions.*;
+import static org.assertj.core.api.InstanceOfAssertFactories.*;
 import static org.junit.jupiter.api.Assertions.*;
 import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
@@ -45,7 +46,6 @@ import de.ozgcloud.bescheid.attributes.ClientAttributeService;
 import de.ozgcloud.bescheid.common.user.UserProfile;
 import de.ozgcloud.bescheid.common.user.UserProfileService;
 import de.ozgcloud.bescheid.common.user.UserProfileTestFactory;
-import de.ozgcloud.bescheid.nachricht.NachrichtService;
 import de.ozgcloud.bescheid.vorgang.PostfachAddressTestFactory;
 import de.ozgcloud.bescheid.vorgang.ServiceKontoTestFactory;
 import de.ozgcloud.bescheid.vorgang.Vorgang;
@@ -930,7 +930,7 @@ class BescheidServiceTest {
 			var result = buildPostfachAddress();
 
 			assertThat(result).extracting(Vorgang.PostfachAddress.FIELD_IDENTIFIER, MAP)
-					.containsEntry(NachrichtService.FIELD_POSTFACH_ID, PostfachAddressTestFactory.POSTFACH_ID);
+					.containsEntry(BescheidService.FIELD_POSTFACH_ID, PostfachAddressTestFactory.POSTFACH_ID);
 		}
 
 		@Test
@@ -971,7 +971,7 @@ class BescheidServiceTest {
 			void shouldSetReplyOption() {
 				var result = buildSendNachrichtCommandBody();
 
-				assertThat(result).containsEntry(NachrichtService.FIELD_REPLY_OPTION, NachrichtService.REPLY_OPTION);
+				assertThat(result).containsEntry(BescheidService.FIELD_REPLY_OPTION, BescheidService.REPLY_OPTION);
 			}
 
 			@Test
@@ -985,7 +985,7 @@ class BescheidServiceTest {
 			void shouldSetSubject() {
 				var result = buildSendNachrichtCommandBody();
 
-				assertThat(result).containsEntry(NachrichtService.FIELD_SUBJECT, AttachedItemTestFactory.NACHRICHT_SUBJECT);
+				assertThat(result).containsEntry(BescheidService.FIELD_SUBJECT, AttachedItemTestFactory.NACHRICHT_SUBJECT);
 			}
 
 			@Test
@@ -999,7 +999,7 @@ class BescheidServiceTest {
 			void shouldSetMailBody() {
 				var result = buildSendNachrichtCommandBody();
 
-				assertThat(result).containsEntry(NachrichtService.FIELD_MAIL_BODY, AttachedItemTestFactory.NACHRICHT_TEXT);
+				assertThat(result).containsEntry(BescheidService.FIELD_MAIL_BODY, AttachedItemTestFactory.NACHRICHT_TEXT);
 			}
 
 			@Test
@@ -1013,7 +1013,7 @@ class BescheidServiceTest {
 			void shouldSetAttachments() {
 				var result = buildSendNachrichtCommandBody();
 
-				assertThat(result).extracting(NachrichtService.FIELD_ATTACHMENTS, LIST).containsExactly(AttachedItemTestFactory.ATTACHMENT);
+				assertThat(result).extracting(BescheidService.FIELD_ATTACHMENTS, LIST).containsExactly(AttachedItemTestFactory.ATTACHMENT);
 			}
 
 			@Test
@@ -1038,14 +1038,14 @@ class BescheidServiceTest {
 			void shouldSetSubject() {
 				var result = buildSendNachrichtCommandBody();
 
-				assertThat(result).containsEntry(NachrichtService.FIELD_SUBJECT, NachrichtService.SUBJECT);
+				assertThat(result).containsEntry(BescheidService.FIELD_SUBJECT, BescheidService.SUBJECT);
 			}
 
 			@Test
 			void shouldSetMailBody() {
 				var result = buildSendNachrichtCommandBody();
 
-				assertThat(result).containsEntry(NachrichtService.FIELD_MAIL_BODY, StringUtils.EMPTY);
+				assertThat(result).containsEntry(BescheidService.FIELD_MAIL_BODY, StringUtils.EMPTY);
 			}
 		}
 	}
diff --git a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/nachricht/GrpcPostfachNachrichtTestFactory.java b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/nachricht/GrpcPostfachNachrichtTestFactory.java
deleted file mode 100644
index c42e9fb32e68ea5a86de3e41e682927c87d77019..0000000000000000000000000000000000000000
--- a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/nachricht/GrpcPostfachNachrichtTestFactory.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package de.ozgcloud.bescheid.nachricht;
-
-import de.ozgcloud.nachrichten.postfach.GrpcPostfachNachricht;
-
-public class GrpcPostfachNachrichtTestFactory {
-
-	public static final GrpcPostfachNachricht create() {
-		return createBuilder().build();
-	}
-
-	public static final GrpcPostfachNachricht.Builder createBuilder() {
-		return GrpcPostfachNachricht.newBuilder()
-				.setCreatedAt(NachrichtTestFactory.CREATED_AT.toString())
-				.setMailBody(NachrichtTestFactory.MAIL_BODY)
-				.setSubject(NachrichtTestFactory.SUBJECT);
-	}
-}
diff --git a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/nachricht/NachrichtMapperTest.java b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/nachricht/NachrichtMapperTest.java
deleted file mode 100644
index ac7a466e044dcd7e0c5a95b3a0f1f6e1332e1230..0000000000000000000000000000000000000000
--- a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/nachricht/NachrichtMapperTest.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package de.ozgcloud.bescheid.nachricht;
-
-import static org.assertj.core.api.Assertions.*;
-
-import org.junit.jupiter.api.Nested;
-import org.junit.jupiter.api.Test;
-import org.mapstruct.factory.Mappers;
-import org.mockito.InjectMocks;
-
-class NachrichtMapperTest {
-
-	@InjectMocks
-	private NachrichtMapper mapper = Mappers.getMapper(NachrichtMapper.class);;
-
-	@Nested
-	class TestMapToGrpc {
-		@Test
-		void shouldMapNachricht() {
-			var mapped = mapper.mapToGrpc(NachrichtTestFactory.create());
-
-			assertThat(mapped).usingRecursiveComparison()
-					.ignoringFields("replyOption_", "memoizedHashCode")
-					.isEqualTo(GrpcPostfachNachrichtTestFactory.create());
-		}
-
-		@Test
-		void shouldIgnoreMissingFileId() {
-			var mapped = mapper.mapToGrpc(NachrichtTestFactory.createBuilder().bescheidFileId(null).build());
-
-			assertThat(mapped.getAttachmentList()).isEmpty();
-		}
-
-		@Test
-		void shouldSetReplyOption() {
-			var mapped = mapper.mapToGrpc(NachrichtTestFactory.create());
-
-			assertThat(mapped.getReplyOption()).isEqualTo("FORBIDDEN");
-		}
-
-		@Test
-		void shouldNotMapId() {
-			var mapped = mapper.mapToGrpc(NachrichtTestFactory.create());
-
-			assertThat(mapped.getId()).isEmpty();
-		}
-	}
-
-}
diff --git a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/nachricht/NachrichtRemoteServiceTest.java b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/nachricht/NachrichtRemoteServiceTest.java
deleted file mode 100644
index fb796252a7f562a824b4f1b1e9dd1a323e7fc8ed..0000000000000000000000000000000000000000
--- a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/nachricht/NachrichtRemoteServiceTest.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package de.ozgcloud.bescheid.nachricht;
-
-import static org.assertj.core.api.Assertions.*;
-import static org.mockito.ArgumentMatchers.*;
-import static org.mockito.Mockito.*;
-
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Nested;
-import org.junit.jupiter.api.Test;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-
-import de.ozgcloud.bescheid.vorgang.VorgangTestFactory;
-import de.ozgcloud.nachrichten.postfach.GrpcPostfachNachricht;
-
-class NachrichtRemoteServiceTest {
-
-	@InjectMocks
-	private NachrichtRemoteService remoteService;
-
-	@Mock
-	private NachrichtMapper mapper;
-
-	@Nested
-	class TestSaveDarft {
-		@Nested
-		class BuildRequest {
-			private Nachricht nachricht = NachrichtTestFactory.create();
-			private GrpcPostfachNachricht grpcNachricht = GrpcPostfachNachrichtTestFactory.create();
-
-			@BeforeEach
-			void initMocks() {
-				when(mapper.mapToGrpc(any())).thenReturn(grpcNachricht);
-			}
-
-			@Test
-			void shouldCallMapper() {
-				remoteService.buildRequest(nachricht);
-
-				verify(mapper).mapToGrpc(nachricht);
-			}
-
-			@Test
-			void shouldSetNachricht() {
-				var request = remoteService.buildRequest(nachricht);
-
-				assertThat(request.getNachricht()).isSameAs(grpcNachricht);
-			}
-
-			@Test
-			void shouldSetVorgangId() {
-				var request = remoteService.buildRequest(nachricht);
-
-				assertThat(request.getVorgangId()).isEqualTo(VorgangTestFactory.ID.toString());
-			}
-		}
-	}
-
-}
diff --git a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/nachricht/NachrichtServiceITCase.java b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/nachricht/NachrichtServiceITCase.java
deleted file mode 100644
index 47a6694e656de4082a3bdaf7d2e3e799793636f1..0000000000000000000000000000000000000000
--- a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/nachricht/NachrichtServiceITCase.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package de.ozgcloud.bescheid.nachricht;
-
-import static org.assertj.core.api.Assertions.*;
-
-import org.junit.jupiter.api.DisplayName;
-import org.junit.jupiter.api.Nested;
-import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.mock.mockito.MockBean;
-
-import de.ozgcloud.apilib.common.command.OzgCloudCommandService;
-import de.ozgcloud.apilib.common.command.grpc.CommandMapper;
-import de.ozgcloud.bescheid.BescheidTestFactory;
-import de.ozgcloud.common.test.ITCase;
-
-@ITCase
-class NachrichtServiceITCase {
-
-	@Autowired
-	private NachrichtService service;
-	@MockBean
-	private OzgCloudCommandService commandService;
-	@MockBean
-	private CommandMapper commandMapper;
-
-	@DisplayName("Build message")
-	@Nested
-	class TestBuildMessage {
-		@Test
-		void shouldBuildMessage() {
-			var message = service.buildMessage(BescheidTestFactory.create());
-
-			assertThat(message).isNotBlank();
-		}
-	}
-}
\ No newline at end of file
diff --git a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/nachricht/NachrichtServiceTest.java b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/nachricht/NachrichtServiceTest.java
deleted file mode 100644
index 5974a286fb170a9c04db124f1b80220f84d66496..0000000000000000000000000000000000000000
--- a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/nachricht/NachrichtServiceTest.java
+++ /dev/null
@@ -1,110 +0,0 @@
-package de.ozgcloud.bescheid.nachricht;
-
-import static org.assertj.core.api.Assertions.*;
-import static org.mockito.ArgumentMatchers.*;
-import static org.mockito.Mockito.*;
-
-import java.util.Optional;
-
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Nested;
-import org.junit.jupiter.api.Test;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.Spy;
-
-import de.ozgcloud.bescheid.BescheidTestFactory;
-import de.ozgcloud.bescheid.common.freemarker.TemplateHandler;
-import de.ozgcloud.bescheid.vorgang.VorgangTestFactory;
-
-class NachrichtServiceTest {
-
-	@Spy
-	@InjectMocks
-	private NachrichtService service;
-
-	@Mock
-	private NachrichtRemoteService remoteService;
-	@Mock
-	private TemplateHandler templateHandler;
-
-	@Nested
-	class TestCreateNachrichtDraft {
-
-		private final Nachricht nachricht = NachrichtTestFactory.create();
-
-		@Test
-		void shouldCallRemoteService() {
-			doReturn(Optional.of(nachricht)).when(service).buildNachricht(any());
-
-			service.createNachrichtDraft(BescheidTestFactory.create());
-
-			verify(remoteService).saveDraft(nachricht);
-		}
-
-		@Nested
-		class BuildNachricht {
-
-			@BeforeEach
-			void init() {
-				doReturn(NachrichtTestFactory.MAIL_BODY).when(service).buildMessage(any());
-			}
-
-			@Test
-			void shouldFillMailBody() {
-				var nachricht = service.buildNachricht(BescheidTestFactory.create()).get();
-
-				assertThat(nachricht.getMailBody()).isEqualTo(NachrichtTestFactory.MAIL_BODY);
-			}
-
-			@Test
-			void shouldSetSubject() {
-				var nachricht = service.buildNachricht(BescheidTestFactory.create()).get();
-
-				assertThat(nachricht.getSubject()).isEqualTo(BescheidTestFactory.NACHRICHT_SUBJECT);
-			}
-
-			@Test
-			void shouldSetDefaultSubject() {
-				var bescheid = BescheidTestFactory.createBuilder().nachrichtSubject(Optional.empty()).build();
-
-				var nachricht = service.buildNachricht(bescheid).get();
-
-				assertThat(nachricht.getSubject()).isEqualTo(NachrichtService.SUBJECT);
-			}
-
-			@Test
-			void shouldSetUser() {
-				var nachricht = service.buildNachricht(BescheidTestFactory.create()).get();
-
-				assertThat(nachricht.getCreatedBy()).isEqualTo(BescheidTestFactory.CREATED_BY);
-			}
-
-			@Test
-			void shouldSetVorgangId() {
-				var nachricht = service.buildNachricht(BescheidTestFactory.create()).get();
-
-				assertThat(nachricht.getVorgangId()).isEqualTo(VorgangTestFactory.ID);
-			}
-		}
-	}
-
-	@Nested
-	class TestBuildMessage {
-		@Test
-		void shouldUseTextFromBescheid() {
-			var message = service.buildMessage(BescheidTestFactory.create());
-
-			assertThat(message).isEqualTo(BescheidTestFactory.NACHRICHT_TEXT);
-		}
-
-		@Test
-		void shouldUseDefaultTemplate() {
-			doReturn("FROM_TEMPLATE").when(templateHandler).fillTemplate(any(), any());
-
-			var message = service.buildMessage(BescheidTestFactory.createBuilder().nachrichtText(Optional.empty()).build());
-
-			assertThat(message).isEqualTo("FROM_TEMPLATE");
-		}
-	}
-}
diff --git a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/nachricht/NachrichtTestFactory.java b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/nachricht/NachrichtTestFactory.java
deleted file mode 100644
index a82751dcc7ac14b7ba16a677d2fd2ad3476e73a9..0000000000000000000000000000000000000000
--- a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/nachricht/NachrichtTestFactory.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package de.ozgcloud.bescheid.nachricht;
-
-import java.time.ZonedDateTime;
-import java.util.UUID;
-
-import de.ozgcloud.bescheid.UserId;
-import de.ozgcloud.bescheid.vorgang.VorgangTestFactory;
-
-public class NachrichtTestFactory {
-
-	public static final NachrichtId ID = NachrichtId.from(UUID.randomUUID().toString());
-
-	public static final String SUBJECT = "subject of message";
-	public static final String MAIL_BODY = "Lorem ipsum";
-
-	public static final UserId CREATED_BY = UserId.from(UUID.randomUUID().toString());
-	public static final ZonedDateTime CREATED_AT = ZonedDateTime.now().withNano(0);
-
-	public static Nachricht create() {
-		return createBuilder().build();
-	}
-
-	public static Nachricht.NachrichtBuilder createBuilder() {
-		return Nachricht.builder()
-				.id(ID)
-				.vorgangId(VorgangTestFactory.ID)
-				.subject(SUBJECT)
-				.mailBody(MAIL_BODY)
-				.createdBy(CREATED_BY)
-				.createdAt(CREATED_AT);
-	}
-}
diff --git a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/vorgang/PostfachAddressTestFactory.java b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/vorgang/PostfachAddressTestFactory.java
index 7f7ef749025025cc565b4b04b6a5db8183eb3fb1..5d01a8b7573c16643a61e602ff06bc94aa0cd155 100644
--- a/bescheid-manager/src/test/java/de/ozgcloud/bescheid/vorgang/PostfachAddressTestFactory.java
+++ b/bescheid-manager/src/test/java/de/ozgcloud/bescheid/vorgang/PostfachAddressTestFactory.java
@@ -26,12 +26,13 @@ package de.ozgcloud.bescheid.vorgang;
 import java.util.Map;
 import java.util.UUID;
 
-import de.ozgcloud.bescheid.nachricht.NachrichtService;
 import de.ozgcloud.bescheid.vorgang.Vorgang.PostfachAddress.PostfachAddressBuilder;
 
 public class PostfachAddressTestFactory {
 
 	public static final String POSTFACH_ID = UUID.randomUUID().toString();
+	public static final String FIELD_POSTFACH_ID = "postfachId";
+
 	public static final int TYPE = 1;
 	public static final String VERSION = "1.0";
 
@@ -43,6 +44,6 @@ public class PostfachAddressTestFactory {
 		return Vorgang.PostfachAddress.builder()
 				.type(TYPE)
 				.version(VERSION)
-				.identifier(Map.of(NachrichtService.FIELD_POSTFACH_ID, POSTFACH_ID));
+				.identifier(Map.of(FIELD_POSTFACH_ID, POSTFACH_ID));
 	}
 }