diff --git a/bescheid-manager/pom.xml b/bescheid-manager/pom.xml
index 7231d95b86b9348d8b46fac3ae37bebb0f25db3f..7e5356426db314f5fa3b38c0cc08d9954fe27ce6 100644
--- a/bescheid-manager/pom.xml
+++ b/bescheid-manager/pom.xml
@@ -17,7 +17,7 @@
 	<properties>
 		<vorgang-manager.version>2.13.0</vorgang-manager.version>
 		<nachrichten-manager.version>2.9.0</nachrichten-manager.version>
-		<api-lib.version>0.11.0</api-lib.version>
+		<api-lib.version>0.12.0</api-lib.version>
 	</properties>
 
 	<dependencies>
diff --git a/vorgang-manager-server/pom.xml b/vorgang-manager-server/pom.xml
index 478f3d17fb9010b506e7c68e29941fc125e41ce5..ed8f383c0cc12d942e6c55167227b69a55abfe9d 100644
--- a/vorgang-manager-server/pom.xml
+++ b/vorgang-manager-server/pom.xml
@@ -53,12 +53,12 @@
 		<zufi-manager-interface.version>1.0.0</zufi-manager-interface.version>
 
 		<user-manager-interface.version>2.1.0</user-manager-interface.version>
-		<bescheid-manager.version>1.17.0</bescheid-manager.version>
+		<bescheid-manager.version>1.18.0-SNAPSHOT</bescheid-manager.version>
 		<processor-manager.version>0.4.1</processor-manager.version>
 		<nachrichten-manager.version>2.11.0</nachrichten-manager.version>
-		<ozgcloud-starter.version>0.10.0</ozgcloud-starter.version>
+		<ozgcloud-starter.version>0.12.0</ozgcloud-starter.version>
 		<notification-manager.version>2.10.0</notification-manager.version>
-		<collaboration-manager.version>0.2.0</collaboration-manager.version>
+		<collaboration-manager.version>0.3.0-PR-5-SNAPSHOT</collaboration-manager.version>
 
 		<zip.version>2.11.1</zip.version>
 		<jsoup.version>1.15.3</jsoup.version>
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationITCase.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationITCase.java
index 32db2a67bebf61625a2e5eea835a61eaa5c87665..2c87abc4a00c6675c1c96c931fedbca8da8572c8 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationITCase.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationITCase.java
@@ -24,7 +24,6 @@
 package de.ozgcloud.vorgang.collaboration;
 
 import static org.assertj.core.api.Assertions.*;
-import static org.assertj.core.api.InstanceOfAssertFactories.*;
 import static org.awaitility.Awaitility.*;
 import static org.junit.jupiter.api.Assertions.fail;
 import static org.mockito.ArgumentMatchers.*;
@@ -41,6 +40,8 @@ import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
 import org.mockito.Mock;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
@@ -60,7 +61,11 @@ import de.ozgcloud.collaboration.CollaborationServiceGrpc.CollaborationServiceBl
 import de.ozgcloud.collaboration.GrpcGetFileContentRequest;
 import de.ozgcloud.command.Command;
 import de.ozgcloud.command.CommandStatus;
+import de.ozgcloud.common.errorhandling.TechnicalException;
 import de.ozgcloud.common.test.DataITCase;
+import de.ozgcloud.nachrichten.postfach.PostfachAddress;
+import de.ozgcloud.nachrichten.postfach.PostfachNachricht;
+import de.ozgcloud.nachrichten.postfach.PostfachRemoteService;
 import de.ozgcloud.vorgang.attached_item.VorgangAttachedItem;
 import de.ozgcloud.vorgang.callcontext.CallContext;
 import de.ozgcloud.vorgang.callcontext.TestCallContextAttachingInterceptor;
@@ -71,6 +76,7 @@ import de.ozgcloud.vorgang.command.CreateCommandRequest;
 import de.ozgcloud.vorgang.files.FileService;
 import de.ozgcloud.vorgang.files.GridFsTestFactory;
 import de.ozgcloud.vorgang.files.OzgFileTestFactory;
+import de.ozgcloud.vorgang.servicekonto.PostfachAddressTestFactory;
 import de.ozgcloud.vorgang.vorgang.Vorgang;
 import de.ozgcloud.vorgang.vorgang.VorgangHead;
 import de.ozgcloud.vorgang.vorgang.VorgangTestFactory;
@@ -89,6 +95,10 @@ import net.devh.boot.grpc.client.inject.GrpcClient;
 @DirtiesContext
 class CollaborationITCase {
 
+	private static final String FIELD_COLLABORATION_VORGANG_ID = "collaborationVorgangId";
+	private static final String TITEL = "Collaboration Vorgang";
+	private static final String ANFRAGE = "Anfrage";
+
 	@Autowired
 	private CommandService commandService;
 
@@ -97,85 +107,35 @@ class CollaborationITCase {
 
 	@MockBean
 	private OzgCloudUserProfileService ozgCloudUserProfileService;
+	@MockBean
+	private PostfachRemoteService postfachRemoteService;
 
 	@Mock
 	private OzgCloudUserProfile ozgCloudUserProfile;
 
-	@Nested
-	class TestCreateCollaborationVorgang {
-
-		@BeforeEach
-		void init() {
-			mongoOperations.dropCollection(Command.class);
-			mongoOperations.dropCollection(Vorgang.class);
-			mongoOperations.dropCollection(VorgangAttachedItem.class);
-			when(ozgCloudUserProfile.getId()).thenReturn(OzgCloudUserId.from(CommandTestFactory.CREATED_BY));
-			when(ozgCloudUserProfileService.getById(any())).thenReturn(ozgCloudUserProfile);
-
-			vorgangId = mongoOperations.save(VorgangTestFactory.createBuilder().id(null).version(0L).build()).getId();
-		}
-
-		private static final String FIELD_COLLABORATION_VORGANG_ID = "collaborationVorgangId";
-		private static final String TITEL = "Collaboration Vorgang";
-		private static final String ANFRAGE = "Anfrage";
-
-		private String vorgangId;
-
-		@Test
-		void shouldSetCollaborationVorgangId() {
-			var command = commandService.createCommand(buildCreateCollaborationVorgangCommand(vorgangId));
-
-			waitUntilCommandFinished(command.getId());
-
-			var collaborationRequests = loadCollaborationRequest(vorgangId);
-			assertThat(collaborationRequests).hasSize(1).first().extracting(VorgangAttachedItem::getItem, MAP)
-					.containsKey(FIELD_COLLABORATION_VORGANG_ID);
-		}
-
-		@Test
-		void shouldCreateCollaborationVorgang() {
-			var command = commandService.createCommand(buildCreateCollaborationVorgangCommand(vorgangId));
-
-			waitUntilCommandFinished(command.getId());
-
-			var collaborationVorgang = loadCollaborationVorgang(vorgangId);
-			assertThat(collaborationVorgang.getHeader()).extracting(VorgangHead::getCollaborationLevel)
-					.isEqualTo(CreateCollaborationVorgangRequestTestFactory.COLLABORATION_LEVEL);
-			assertThat(collaborationVorgang.getHeader()).extracting(VorgangHead::getOrganisationsEinheitId)
-					.isEqualTo(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID);
-			assertThat(collaborationVorgang.getClientAttributes()).isEmpty();
-		}
-
-		private CreateCommandRequest buildCreateCollaborationVorgangCommand(String vorgangId) {
-			return CreateCommandRequest.builder()
-					.callContext(CallContext.builder().client("test").build())
-					.vorgangId(vorgangId)
-					.relationId(vorgangId)
-					.order("CREATE_COLLABORATION_REQUEST")
-					.bodyObject(Map.of(
-							"titel", TITEL,
-							"anfrage", ANFRAGE,
-							"zustaendigeStelle", ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID))
-					.build();
-		}
+	private String vorgangId;
 
-		private void waitUntilCommandFinished(String commandId) {
-			await().atMost(60, TimeUnit.SECONDS).until(
-					() -> mongoOperations.findById(commandId, Command.class),
-					command -> command.getStatus() == CommandStatus.FINISHED);
-		}
+	@BeforeEach
+	void init() {
+		mongoOperations.dropCollection(Command.class);
+		mongoOperations.dropCollection(Vorgang.class);
+		mongoOperations.dropCollection(VorgangAttachedItem.class);
 
-		private Vorgang loadCollaborationVorgang(String sourceVorgangId) {
-			var collaborationVorgangId = loadCollaborationRequest(sourceVorgangId).getFirst().getItem().get(FIELD_COLLABORATION_VORGANG_ID);
-			return mongoOperations.findById(collaborationVorgangId, Vorgang.class);
-		}
+		vorgangId = mongoOperations.save(VorgangTestFactory.createBuilder().id(null).version(0L).build()).getId();
+	}
 
-		private List<VorgangAttachedItem> loadCollaborationRequest(String vorgangId) {
-			var query = new Query(new Criteria().andOperator(
-					Criteria.where(VorgangAttachedItem.FIELDNAME_VORGANG_ID).is(vorgangId),
-					Criteria.where(VorgangAttachedItem.FIELDNAME_ITEM_NAME).is("CollaborationRequest")));
-			return mongoOperations.find(query, VorgangAttachedItem.class);
-		}
+	private CreateCommandRequest buildCreateCollaborationVorgangCommand(String vorgangId, int collaborationLevel) {
+		return CreateCommandRequest.builder()
+				.callContext(CallContext.builder().client("test").build())
+				.vorgangId(vorgangId)
+				.relationId(vorgangId)
+				.order("CREATE_COLLABORATION_REQUEST")
+				.bodyObject(Map.of(
+						"titel", TITEL,
+						"anfrage", ANFRAGE,
+						"collaborationLevel", collaborationLevel,
+						"zustaendigeStelle", ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID))
+				.build();
 	}
 
 	@DisplayName("Get file content")
@@ -244,4 +204,110 @@ class CollaborationITCase {
 			return collaborationStub.withInterceptors(new TestCallContextAttachingInterceptor());
 		}
 	}
+
+	private List<VorgangAttachedItem> loadCollaborationRequest(String vorgangId) {
+		var query = new Query(new Criteria().andOperator(
+				Criteria.where(VorgangAttachedItem.FIELDNAME_VORGANG_ID).is(vorgangId),
+				Criteria.where(VorgangAttachedItem.FIELDNAME_ITEM_NAME).is("CollaborationRequest")));
+		return mongoOperations.find(query, VorgangAttachedItem.class);
+	}
+
+	private void waitUntilCommandFinished(String commandId) {
+		await().atMost(60, TimeUnit.SECONDS).until(
+				() -> mongoOperations.findById(commandId, Command.class),
+				command -> command.getStatus() == CommandStatus.FINISHED);
+	}
+
+	private void waitUntilCommandError(String commandId) {
+		await().atMost(60, TimeUnit.SECONDS).until(
+				() -> mongoOperations.findById(commandId, Command.class),
+				command -> command.getStatus() == CommandStatus.ERROR);
+	}
+
+	@Nested
+	class TestCreateCollaborationVorgang {
+
+		@BeforeEach
+		void init() {
+			when(ozgCloudUserProfile.getId()).thenReturn(OzgCloudUserId.from(CommandTestFactory.CREATED_BY));
+			when(ozgCloudUserProfileService.getById(any())).thenReturn(ozgCloudUserProfile);
+		}
+
+		@Test
+		void shouldSetCollaborationVorgangId() {
+			var command = commandService.createCommand(buildCreateCollaborationVorgangCommand(vorgangId, 1));
+
+			waitUntilCommandFinished(command.getId());
+
+			var collaborationRequests = loadCollaborationRequest(vorgangId);
+			assertThat(collaborationRequests).hasSize(1).first().extracting(VorgangAttachedItem::getItem, MAP)
+					.containsKey(FIELD_COLLABORATION_VORGANG_ID);
+		}
+
+		@Test
+		void shouldCreateCollaborationVorgang() {
+			var command = commandService.createCommand(buildCreateCollaborationVorgangCommand(vorgangId, 1));
+
+			waitUntilCommandFinished(command.getId());
+
+			var collaborationVorgang = loadCollaborationVorgang(vorgangId);
+			assertThat(collaborationVorgang.getHeader()).extracting(VorgangHead::getCollaborationLevel)
+					.isEqualTo(CreateCollaborationVorgangRequestTestFactory.COLLABORATION_LEVEL);
+			assertThat(collaborationVorgang.getHeader()).extracting(VorgangHead::getOrganisationsEinheitId)
+					.isEqualTo(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID);
+			assertThat(collaborationVorgang.getClientAttributes()).isEmpty();
+		}
+
+		private Vorgang loadCollaborationVorgang(String sourceVorgangId) {
+			var collaborationVorgangId = loadCollaborationRequest(sourceVorgangId).getFirst().getItem().get(FIELD_COLLABORATION_VORGANG_ID);
+			return mongoOperations.findById(collaborationVorgangId, Vorgang.class);
+		}
+
+	}
+
+	@Nested
+	class TestCreateFachstellenBeteiligungRequest {
+
+		@Captor
+		private ArgumentCaptor<PostfachNachricht> postfachMailCaptor;
+
+		@BeforeEach
+		void init() {
+			when(ozgCloudUserProfile.getId()).thenReturn(OzgCloudUserId.from(CommandTestFactory.CREATED_BY));
+			when(ozgCloudUserProfileService.getById(any())).thenReturn(ozgCloudUserProfile);
+		}
+
+		@Test
+		void shouldCreateCollaborationRequest() {
+			var command = commandService.createCommand(buildCreateCollaborationVorgangCommand(vorgangId, 4));
+
+			waitUntilCommandFinished(command.getId());
+
+			var collaborationRequests = loadCollaborationRequest(vorgangId);
+			assertThat(collaborationRequests).hasSize(1).first().extracting(VorgangAttachedItem::getItem, MAP)
+					.containsEntry(FIELD_COLLABORATION_VORGANG_ID, vorgangId);
+		}
+
+		@Test
+		void shouldSendPostfachMail() {
+			var command = commandService.createCommand(buildCreateCollaborationVorgangCommand(vorgangId, 4));
+
+			waitUntilCommandFinished(command.getId());
+
+			verify(postfachRemoteService).sendMessage(postfachMailCaptor.capture());
+			assertThat(postfachMailCaptor.getValue().getPostfachAddress()).extracting(PostfachAddress::getIdentifier)
+					.hasToString(PostfachAddressTestFactory.STRING_BASED_IDENTIFIER_POSTFACH_ID_VALUE);
+		}
+
+		@Test
+		void shouldDeleteCollaborationRequest() {
+			doThrow(TechnicalException.class).when(postfachRemoteService).sendMessage(any());
+			var command = commandService.createCommand(buildCreateCollaborationVorgangCommand(vorgangId, 4));
+
+			waitUntilCommandError(command.getId());
+
+			assertThat(loadCollaborationRequest(vorgangId)).isEmpty();
+		}
+	}
+
 }
\ No newline at end of file