diff --git a/Jenkinsfile b/Jenkinsfile
index 911a5f66401da2ca5bcc05f910a19b8a3cb2b5ee..d70d4193a939c1b097d6c46db850fb1194a8367c 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -58,13 +58,17 @@ pipeline {
                 script {
                     FAILED_STAGE=env.STAGE_NAME
                     JAR_TAG = getPomVersion('pom.xml').replace("SNAPSHOT", "${env.BRANCH_NAME}-SNAPSHOT")
+                    BESCHEID_MANAGER_TAG = getPomVersion('bescheid-manager/pom.xml').replace("SNAPSHOT", "${env.BRANCH_NAME}-SNAPSHOT")
+                    updateBescheidManagerDependencyVersion(BESCHEID_MANAGER_TAG)
                 }
                 configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) {
                     sh "mvn -s $MAVEN_SETTINGS versions:set -DnewVersion=${JAR_TAG} -DprocessAllModules=true"
-                    
+                    dir('bescheid-manager') {
+                        sh "mvn -s $MAVEN_SETTINGS versions:set -DnewVersion=${BESCHEID_MANAGER_TAG}"
+                    }
                 }
           }
-        } 
+        }
         
         stage('Build VorgangManager') {
           steps {
@@ -85,7 +89,6 @@ pipeline {
                 }
                 configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) {
                     sh 'mvn --no-transfer-progress -s $MAVEN_SETTINGS -DskipTests deploy -Dmaven.wagon.http.retryHandler.count=3'
-                    sh "mvn -s $MAVEN_SETTINGS versions:revert"
                 }
             }
         }
@@ -285,6 +288,14 @@ String getPomVersion(String pomFile){
     return pom.version
 }
 
+void updateBescheidManagerDependencyVersion(String snapshotVersion) {
+    def vorgangManagerServerPom = readMavenPom file: 'vorgang-manager-server/pom.xml'
+    if ( vorgangManagerServerPom.properties['bescheid-manager.version'] ==~ SNAPSHOT_REGEX ) {
+        vorgangManagerServerPom.properties['bescheid-manager.version'] = snapshotVersion
+        writeMavenPom model: vorgangManagerServerPom, file: 'vorgang-manager-server/pom.xml'
+    }
+}
+
 String generateImageTag(String pomFile) {
     def imageTag = "${env.BRANCH_NAME}-${getPomVersion(pomFile)}"
 
diff --git a/bescheid-manager/pom.xml b/bescheid-manager/pom.xml
index 0f7d64c45be81fd4a74e0ccc903d3fd5a4a895d8..bd10da5fa4d69478e1a1455cb46e0cbd5569619c 100644
--- a/bescheid-manager/pom.xml
+++ b/bescheid-manager/pom.xml
@@ -5,19 +5,19 @@
 	<parent>
 		<groupId>de.ozgcloud.common</groupId>
 		<artifactId>ozgcloud-common-parent</artifactId>
-		<version>4.3.0</version>
+		<version>4.3.1</version>
 		<relativePath />
 	</parent>
 
 	<groupId>de.ozgcloud.bescheid</groupId>
 	<artifactId>bescheid-manager</artifactId>
 	<name>OZG-Cloud Bescheid Manager</name>
-	<version>1.15.0-SNAPSHOT</version>
+	<version>1.16.0-SNAPSHOT</version>
 
 	<properties>
 		<vorgang-manager.version>2.9.0</vorgang-manager.version>
 		<nachrichten-manager.version>2.9.0</nachrichten-manager.version>
-		<api-lib.version>0.11.0-SNAPSHOT</api-lib.version>
+		<api-lib.version>0.11.0</api-lib.version>
 	</properties>
 
 	<dependencies>
diff --git a/pom.xml b/pom.xml
index 1b9b61485236e8343cc4790763c73dde40c7512f..0a20e3d2ec89a89d6e7103b2e53461e7447187ba 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>de.ozgcloud.vorgang</groupId>
 	<artifactId>vorgang-manager</artifactId>
-	<version>2.11.0-SNAPSHOT</version>
+	<version>2.12.0-SNAPSHOT</version>
 
 	<name>OZG-Cloud Vorgang Manager</name>
 	<packaging>pom</packaging>
diff --git a/vorgang-manager-base/pom.xml b/vorgang-manager-base/pom.xml
index 01a891cafa5c98d4a5bf87091817403b5c6a9f88..7b7dee119eeb34d56968792c0c3930487b9c2cde 100644
--- a/vorgang-manager-base/pom.xml
+++ b/vorgang-manager-base/pom.xml
@@ -6,13 +6,13 @@
 	<parent>
 		<groupId>de.ozgcloud.common</groupId>
 		<artifactId>ozgcloud-common-parent</artifactId>
-		<version>4.3.0</version>
+		<version>4.3.1</version>
 		<relativePath />
 	</parent>
 
 	<groupId>de.ozgcloud.vorgang</groupId>
 	<artifactId>vorgang-manager-base</artifactId>
-	<version>2.11.0-SNAPSHOT</version>
+	<version>2.12.0-SNAPSHOT</version>
 
 	<name>OZG-Cloud Vorgang Manager Base</name>
 
diff --git a/vorgang-manager-command/pom.xml b/vorgang-manager-command/pom.xml
index 1427d6e703f39962af7b6136e3319e01c87022e2..7d14579dc40eaa46841c7593ca57835504aeff36 100644
--- a/vorgang-manager-command/pom.xml
+++ b/vorgang-manager-command/pom.xml
@@ -4,13 +4,13 @@
 	<parent>
 		<groupId>de.ozgcloud.common</groupId>
 		<artifactId>ozgcloud-common-dependencies</artifactId>
-		<version>4.3.0</version>
+		<version>4.3.1</version>
 		<relativePath/>
 	</parent>
 	
 	<groupId>de.ozgcloud.command</groupId>
 	<artifactId>command-manager</artifactId>
-	<version>2.11.0-SNAPSHOT</version>
+	<version>2.12.0-SNAPSHOT</version>
 	<name>OZG-Cloud Command Manager</name>
 
 	<properties>
diff --git a/vorgang-manager-interface/pom.xml b/vorgang-manager-interface/pom.xml
index c64435edbd2a453b7b75be55b0647d46ac6d644b..1b23a9b26060e4215164dea88a39c6d4006130c4 100644
--- a/vorgang-manager-interface/pom.xml
+++ b/vorgang-manager-interface/pom.xml
@@ -30,13 +30,13 @@
 	<parent>
 		<groupId>de.ozgcloud.common</groupId>
 		<artifactId>ozgcloud-common-dependencies</artifactId>
-		<version>4.3.0</version>
+		<version>4.3.1</version>
 		<relativePath/>
 	</parent>
 
 	<groupId>de.ozgcloud.vorgang</groupId>
 	<artifactId>vorgang-manager-interface</artifactId>
-	<version>2.11.0-SNAPSHOT</version>
+	<version>2.12.0-SNAPSHOT</version>
 
 	<name>OZG-Cloud Vorgang Manager gRPC Interface</name>
 	<description>Interface (gRPC) for Vorgang Manager Server</description>
diff --git a/vorgang-manager-interface/src/main/protobuf/vorgang.model.proto b/vorgang-manager-interface/src/main/protobuf/vorgang.model.proto
index dc8cc1c5bc16b8277a61fd4b7741fc2fe921c924..76157a12e40b638a00ca020bfde221706b1cc3ef 100644
--- a/vorgang-manager-interface/src/main/protobuf/vorgang.model.proto
+++ b/vorgang-manager-interface/src/main/protobuf/vorgang.model.proto
@@ -197,3 +197,18 @@ message GrpcVorgangQueryExpression {
   }
 }
 
+message GrpcCreateCollaborationVorgangRequest {
+  oneof request {
+    GrpcCollaborationRequest collaborationRequest = 1;
+  }
+}
+
+message GrpcCollaborationRequest {
+  string vorgangId = 1;
+  int32 collaborationLevel = 2;
+  string zustaendigeStelle = 3;
+}
+
+message GrpcCreateCollaborationVorgangResponse {
+  string vorgangId = 1;
+}
\ No newline at end of file
diff --git a/vorgang-manager-interface/src/main/protobuf/vorgang.proto b/vorgang-manager-interface/src/main/protobuf/vorgang.proto
index 03e9adb797364be086db096b01e345cbae88fb85..ff73c52cb2a072c011e318fd88000c79300dc48b 100644
--- a/vorgang-manager-interface/src/main/protobuf/vorgang.proto
+++ b/vorgang-manager-interface/src/main/protobuf/vorgang.proto
@@ -44,6 +44,9 @@ service VorgangService {
 	
 	rpc FinishCreation(GrpcFinishCreationRequest) returns (GrpcFinishCreationResponse) {
 	}
+
+	rpc CreateCollaborationVorgang(GrpcCreateCollaborationVorgangRequest) returns (GrpcCreateCollaborationVorgangResponse) {
+	}
 }
 
 message GrpcCreateVorgangRequest {
diff --git a/vorgang-manager-server/pom.xml b/vorgang-manager-server/pom.xml
index 1d0e1c0689976082d253db668465fb2f937c4972..6c5eee9ef85737264699865c934f72541dff5260 100644
--- a/vorgang-manager-server/pom.xml
+++ b/vorgang-manager-server/pom.xml
@@ -32,13 +32,13 @@
 	<parent>
 		<groupId>de.ozgcloud.common</groupId>
 		<artifactId>ozgcloud-common-parent</artifactId>
-		<version>4.3.0</version>
+		<version>4.3.1</version>
 		<relativePath />
 	</parent>
 
 	<groupId>de.ozgcloud.vorgang</groupId>
 	<artifactId>vorgang-manager-server</artifactId>
-	<version>2.11.0-SNAPSHOT</version>
+	<version>2.12.0-SNAPSHOT</version>
 
 	<name>OZG-Cloud Vorgang Manager Server</name>
 	<description>Server Implementierung des VorgangManagers</description>
@@ -53,11 +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.15.0-SNAPSHOT</bescheid-manager.version>
+		<bescheid-manager.version>1.16.0-SNAPSHOT</bescheid-manager.version>
 		<processor-manager.version>0.4.1</processor-manager.version>
-		<nachrichten-manager.version>2.10.0-SNAPSHOT</nachrichten-manager.version>
+		<nachrichten-manager.version>2.11.0-SNAPSHOT</nachrichten-manager.version>
 		<ozgcloud-starter.version>0.10.0</ozgcloud-starter.version>
-		<notification-manager.version>2.8.0</notification-manager.version>
+		<notification-manager.version>2.9.0</notification-manager.version>
+		<collaboration-manager.version>0.1.0-SNAPSHOT</collaboration-manager.version>
 
 		<zip.version>2.11.1</zip.version>
 		<jsoup.version>1.15.3</jsoup.version>
@@ -151,6 +152,11 @@
 				</exclusion>
 			</exclusions>
 		</dependency>
+		<dependency>
+			<groupId>de.ozgcloud.collaboration</groupId>
+			<artifactId>collaboration-manager-server</artifactId>
+			<version>${collaboration-manager.version}</version>
+		</dependency>
 
 		<!-- Spring -->
 		<dependency>
diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CollaborationRepository.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CollaborationRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..a4dcbf254763851b9dc6980bc0102d0600827840
--- /dev/null
+++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CollaborationRepository.java
@@ -0,0 +1,42 @@
+/*
+ * 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.vorgang.collaboration;
+
+import org.springframework.data.mongodb.core.MongoOperations;
+import org.springframework.stereotype.Repository;
+
+import de.ozgcloud.vorgang.vorgang.Vorgang;
+import lombok.RequiredArgsConstructor;
+
+@Repository
+@RequiredArgsConstructor
+class CollaborationRepository {
+
+	private final MongoOperations mongoOperations;
+
+	public Vorgang save(Vorgang vorgang) {
+		return mongoOperations.save(vorgang);
+	}
+
+}
diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CollaborationService.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CollaborationService.java
new file mode 100644
index 0000000000000000000000000000000000000000..763856b36699f916425c90f13b512ffae5982bce
--- /dev/null
+++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CollaborationService.java
@@ -0,0 +1,65 @@
+/*
+ * 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.vorgang.collaboration;
+
+import org.springframework.context.ApplicationEventPublisher;
+import org.springframework.stereotype.Service;
+
+import de.ozgcloud.vorgang.vorgang.Vorgang;
+import de.ozgcloud.vorgang.vorgang.VorgangHead;
+import lombok.RequiredArgsConstructor;
+
+@Service
+@RequiredArgsConstructor
+public class CollaborationService {
+
+	private final CollaborationRepository collaborationRepository;
+	private final ApplicationEventPublisher publisher;
+
+	public Vorgang createCollaborationVorgang(CreateCollaborationVorgangRequest request) {
+		var vorgang = collaborationRepository.save(buildCollaborationVorgang(request));
+		// TODO: wieder aktivieren wenn OZG-6380 implementiert ist
+		// publisher.publishEvent(new VorgangCreatedEvent(vorgang.getId()));
+		return vorgang;
+	}
+
+	Vorgang buildCollaborationVorgang(CreateCollaborationVorgangRequest request) {
+		var srcVorgang = request.getVorgang();
+		return Vorgang.builder()
+				.name(srcVorgang.getName())
+				.nummer(srcVorgang.getNummer())
+				.formEngineName(srcVorgang.getFormEngineName())
+				.aktenzeichen(srcVorgang.getAktenzeichen())
+				.header(getHeader(request))
+				.eingangs(srcVorgang.getEingangs())
+				.build();
+	}
+
+	VorgangHead getHeader(CreateCollaborationVorgangRequest request) {
+		return request.getVorgang().getHeader().toBuilder()
+				.collaborationLevel(request.getCollaborationLevel())
+				.organisationsEinheitId(request.getZustaendigeStelle())
+				.build();
+	}
+}
diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CreateCollaborationVorgangBadRequestException.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CreateCollaborationVorgangBadRequestException.java
new file mode 100644
index 0000000000000000000000000000000000000000..b2d35ef9553325cc6b97b5be1deb09b0ef315b0d
--- /dev/null
+++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CreateCollaborationVorgangBadRequestException.java
@@ -0,0 +1,34 @@
+/*
+ * 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.vorgang.collaboration;
+
+import de.ozgcloud.vorgang.common.errorhandling.FunctionalException;
+
+public class CreateCollaborationVorgangBadRequestException extends FunctionalException {
+
+	public CreateCollaborationVorgangBadRequestException(String message) {
+		super(message, () -> "CREATE_COLLABORATION_VORGANG.BAD_REQUEST");
+	}
+
+}
diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CreateCollaborationVorgangRequest.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CreateCollaborationVorgangRequest.java
new file mode 100644
index 0000000000000000000000000000000000000000..44f61fed6d4ea63527907176ab79f790fdc534d0
--- /dev/null
+++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CreateCollaborationVorgangRequest.java
@@ -0,0 +1,37 @@
+/*
+ * 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.vorgang.collaboration;
+
+import de.ozgcloud.vorgang.vorgang.Vorgang;
+import lombok.Builder;
+import lombok.Getter;
+
+@Builder(toBuilder = true)
+@Getter
+public class CreateCollaborationVorgangRequest {
+
+	private Vorgang vorgang;
+	private int collaborationLevel;
+	private String zustaendigeStelle;
+}
diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CreateCollaborationVorgangRequestMapper.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CreateCollaborationVorgangRequestMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..28c23c3d257a9bc371fcd54dd1eaed57cd2166a7
--- /dev/null
+++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CreateCollaborationVorgangRequestMapper.java
@@ -0,0 +1,37 @@
+/*
+ * 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.vorgang.collaboration;
+
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.ReportingPolicy;
+
+import de.ozgcloud.vorgang.vorgang.GrpcCollaborationRequest;
+
+@Mapper(unmappedTargetPolicy = ReportingPolicy.WARN)
+public interface CreateCollaborationVorgangRequestMapper {
+
+	@Mapping(target = "vorgang", ignore = true)
+	CreateCollaborationVorgangRequest mapFrom(GrpcCollaborationRequest grpcCollaborationRequest);
+}
diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/GrpcVorgangService.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/GrpcVorgangService.java
index 56d7db937e4dc37c69cf806d51cce64a0aeb08f1..647303f1968fcf6ae80edad3dbe42e87497e6579 100644
--- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/GrpcVorgangService.java
+++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/GrpcVorgangService.java
@@ -23,33 +23,31 @@
  */
 package de.ozgcloud.vorgang.vorgang;
 
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 
+import de.ozgcloud.vorgang.collaboration.CollaborationService;
+import de.ozgcloud.vorgang.collaboration.CreateCollaborationVorgangBadRequestException;
+import de.ozgcloud.vorgang.collaboration.CreateCollaborationVorgangRequest;
+import de.ozgcloud.vorgang.collaboration.CreateCollaborationVorgangRequestMapper;
 import io.grpc.stub.StreamObserver;
+import lombok.RequiredArgsConstructor;
 import net.devh.boot.grpc.server.service.GrpcService;
 
 @GrpcService
+@RequiredArgsConstructor
 class GrpcVorgangService extends VorgangServiceGrpc.VorgangServiceImplBase {
 
-	@Autowired
-	private VorgangService vorgangService;
-	@Autowired
-	private VorgangHeaderService vorgangHeaderService;
-	@Autowired
-	private EingangMapper eingangMapper;
-	@Autowired
-	private VorgangHeaderMapper vorgangHeaderMapper;
-	@Autowired
-	private VorgangWithEingangMapper vorgangWithEingangMapper;
-	@Autowired
-	private FindVorgangRequestMapper findVorgangRequestMapper;
-	@Autowired
-	private FilterByMapper filterByMapper;
-	@Autowired
-	private IncomingFileMapper incomingFileMapper;
-	@Autowired
-	private IncomingFileGroupMapper incomingFileGroupMapper;
+	private final VorgangService vorgangService;
+	private final VorgangHeaderService vorgangHeaderService;
+	private final EingangMapper eingangMapper;
+	private final VorgangHeaderMapper vorgangHeaderMapper;
+	private final VorgangWithEingangMapper vorgangWithEingangMapper;
+	private final FindVorgangRequestMapper findVorgangRequestMapper;
+	private final FilterByMapper filterByMapper;
+	private final IncomingFileMapper incomingFileMapper;
+	private final IncomingFileGroupMapper incomingFileGroupMapper;
+	private final CollaborationService collaborationService;
+	private final CreateCollaborationVorgangRequestMapper createCollaborationVorgangRequestMapper;
 
 	@Override
 	public void startCreation(GrpcCreateVorgangRequest request, StreamObserver<GrpcCreateVorgangResponse> responseObserver) {
@@ -113,4 +111,31 @@ class GrpcVorgangService extends VorgangServiceGrpc.VorgangServiceImplBase {
 				.setVorgangWithEingang(vorgangWithEingangMapper.toVorgangWithEingang(vorgang))
 				.build();
 	}
+
+	@Override
+	public void createCollaborationVorgang(GrpcCreateCollaborationVorgangRequest request,
+			StreamObserver<GrpcCreateCollaborationVorgangResponse> responseObserver) {
+		GrpcCreateCollaborationVorgangResponse response;
+		if (request.hasCollaborationRequest()) {
+			response = createCollaborationVorgang(request.getCollaborationRequest());
+		} else {
+			throw new CreateCollaborationVorgangBadRequestException("Cannot create collaboration vorgang. Collaboration request is empty.");
+		}
+		responseObserver.onNext(response);
+		responseObserver.onCompleted();
+	}
+
+	GrpcCreateCollaborationVorgangResponse createCollaborationVorgang(GrpcCollaborationRequest request) {
+		var collaborationVorgang = collaborationService.createCollaborationVorgang(buildCreateCollaborationVorgangRequest(request));
+		return buildCreateCollaborationVorgangResponse(collaborationVorgang);
+	}
+
+	CreateCollaborationVorgangRequest buildCreateCollaborationVorgangRequest(GrpcCollaborationRequest request) {
+		var vorgang = vorgangService.getById(request.getVorgangId());
+		return createCollaborationVorgangRequestMapper.mapFrom(request).toBuilder().vorgang(vorgang).build();
+	}
+
+	GrpcCreateCollaborationVorgangResponse buildCreateCollaborationVorgangResponse(Vorgang vorgang) {
+		return GrpcCreateCollaborationVorgangResponse.newBuilder().setVorgangId(vorgang.getId()).build();
+	}
 }
\ No newline at end of file
diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangHead.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangHead.java
index cc6c36f1f60d8aa55082ffd0304ef699f5cf1041..13e858035e377296843b70740e23c96ca3c3485e 100644
--- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangHead.java
+++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangHead.java
@@ -6,7 +6,7 @@ import de.ozgcloud.vorgang.servicekonto.ServiceKonto;
 import lombok.Builder;
 import lombok.Getter;
 
-@Builder
+@Builder(toBuilder = true)
 @Getter
 @TypeAlias("VorgangHeader")
 public class VorgangHead {
@@ -14,4 +14,6 @@ public class VorgangHead {
 	private ServiceKonto serviceKonto;
 
 	private String organisationsEinheitId;
+	@Builder.Default
+	private int collaborationLevel = 0;
 }
diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangService.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangService.java
index a6315672327389de9cc133226f0debe77e2a228c..3b69aa9e535b41598d1f2d76f9645436e3c8e75c 100644
--- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangService.java
+++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangService.java
@@ -153,9 +153,8 @@ public class VorgangService {
 		return addLabels(loaded);
 	}
 
-	public void setAktenzeichen(Command command) {
-		var aktenzeichen = StringUtils.trimToNull(MapUtils.getString(command.getBodyObject(), BODY_OBJECT_AKTENZEICHEN));
-		repository.setAktenzeichen(command.getVorgangId(), command.getRelationVersion(), aktenzeichen);
+	public Vorgang getOriginalVorgangById(String vorgangId) {
+		return removeUnpermittedClientAttributes(loadById(vorgangId));
 	}
 
 	Vorgang removeUnpermittedClientAttributes(Vorgang vorgang) {
@@ -182,6 +181,11 @@ public class VorgangService {
 		return Pair.of(entry.getKey(), resultAttributeMap);
 	}
 
+	public void setAktenzeichen(Command command) {
+		var aktenzeichen = StringUtils.trimToNull(MapUtils.getString(command.getBodyObject(), BODY_OBJECT_AKTENZEICHEN));
+		repository.setAktenzeichen(command.getVorgangId(), command.getRelationVersion(), aktenzeichen);
+	}
+
 	public void assignToUser(Command command) {
 		var patch = Map.<String, Object>of(Vorgang.MONGODB_FIELDNAME_ASSIGNED_TO, command.getBody().get(BODY_ASSIGNED_TO_FIELD));
 
diff --git a/vorgang-manager-server/src/main/resources/bayernid/keycloak-saml-metadata.xml b/vorgang-manager-server/src/main/resources/bayernid/keycloak-saml-metadata.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b5746cf909d209910496f9ffef142f748c9378e9
--- /dev/null
+++ b/vorgang-manager-server/src/main/resources/bayernid/keycloak-saml-metadata.xml
@@ -0,0 +1,25 @@
+<md:EntityDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" entityID="https://sso.dev.by.ozg-cloud.de/realms/by-antragsraum-idp">
+<md:IDPSSODescriptor WantAuthnRequestsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
+<md:KeyDescriptor use="signing">
+<ds:KeyInfo>
+<ds:KeyName>qO7IAjV9WUVVahQd9b1LGC1jAn9zMWV8oiPeafCAfdM</ds:KeyName>
+<ds:X509Data>
+<ds:X509Certificate>MIICszCCAZsCBgGRLC9tAjANBgkqhkiG9w0BAQsFADAdMRswGQYDVQQDDBJieS1hbnRyYWdzcmF1bS1pZHAwHhcNMjQwODA3MDkzMTMxWhcNMzQwODA3MDkzMzExWjAdMRswGQYDVQQDDBJieS1hbnRyYWdzcmF1bS1pZHAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCo2RVcJYiqv000dk20VBv6952+FXjEa1BzSzlX1vs4IrpWCVNQfsmZ4ZAg7TBlwJiBHtx0zMtM6DyHQthTVf/E/aaZvBtobUlLt/A/hy/Q31SkzScUgLZy4Nm+kIfmwHRj5/Mo9/53NCYfHcRV0nmRISPj9XsGIjjU6UWEb8sjhQC3OJJg4rWeXKzGNQfGIaMeYmSu0dPfDGo1g08jTMVhgMbF2vystHv4W6dC1q2r6Sp7SrdfXIkkaK2WZcHaqJ1uWWzw6rZMA5vjVdm/djdUN/RHeKpw2d8lD9B/a9+swJJ59cccuk7izqIgXMP2OPBG8qroqOydkyG9huma9C9JAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAAcQlpbNPvut1HjJ0Xlk8iyt6u43CvBhNpMPFdBcUPzdSlehiifmo214HOVIacBz7DAv+TzLXKDLsd+RNJkh3s+bEbA6C9lnYwOwi6jJy7Wp0Zsndks0Qf2b/jPYSBvUzFKx0v9w28kUS563ErQXF+TErqsin78kxQttMVRyfnjisC/3xSLcF7BngyVo20iggqMfcC4BDCGhEU2Th01I+Gk/Fs9UxL6laPfaf+CjJscCp9qJgA/TRMr+MRfPXb4QCLMTd+gMfv27fZN4YLvmhj0pWVIbqC76WJDlc0gzOdhxERWRwAtqei7WfqaEsRdcapm7t9clQQVyz2+WVlRSTxw=</ds:X509Certificate>
+</ds:X509Data>
+</ds:KeyInfo>
+</md:KeyDescriptor>
+<md:ArtifactResolutionService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://sso.dev.by.ozg-cloud.de/realms/by-antragsraum-idp/protocol/saml/resolve" index="0"/>
+<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://sso.dev.by.ozg-cloud.de/realms/by-antragsraum-idp/protocol/saml"/>
+<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://sso.dev.by.ozg-cloud.de/realms/by-antragsraum-idp/protocol/saml"/>
+<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact" Location="https://sso.dev.by.ozg-cloud.de/realms/by-antragsraum-idp/protocol/saml"/>
+<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://sso.dev.by.ozg-cloud.de/realms/by-antragsraum-idp/protocol/saml"/>
+<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</md:NameIDFormat>
+<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</md:NameIDFormat>
+<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>
+<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat>
+<md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://sso.dev.by.ozg-cloud.de/realms/by-antragsraum-idp/protocol/saml"/>
+<md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://sso.dev.by.ozg-cloud.de/realms/by-antragsraum-idp/protocol/saml"/>
+<md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://sso.dev.by.ozg-cloud.de/realms/by-antragsraum-idp/protocol/saml"/>
+<md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact" Location="https://sso.dev.by.ozg-cloud.de/realms/by-antragsraum-idp/protocol/saml"/>
+</md:IDPSSODescriptor>
+</md:EntityDescriptor>
\ No newline at end of file
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
new file mode 100644
index 0000000000000000000000000000000000000000..acd60e5393d455769e639db9f61e24cf23e11f2a
--- /dev/null
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationITCase.java
@@ -0,0 +1,167 @@
+/*
+ * 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.vorgang.collaboration;
+
+import static org.assertj.core.api.Assertions.*;
+import static org.awaitility.Awaitility.*;
+import static org.mockito.Mockito.*;
+
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mock;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.data.mongodb.core.MongoOperations;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
+import org.springframework.test.annotation.DirtiesContext;
+
+import de.ozgcloud.apilib.user.OzgCloudUserId;
+import de.ozgcloud.apilib.user.OzgCloudUserProfile;
+import de.ozgcloud.apilib.user.OzgCloudUserProfileService;
+import de.ozgcloud.command.Command;
+import de.ozgcloud.command.CommandStatus;
+import de.ozgcloud.common.test.DataITCase;
+import de.ozgcloud.vorgang.attached_item.VorgangAttachedItem;
+import de.ozgcloud.vorgang.callcontext.CallContext;
+import de.ozgcloud.vorgang.callcontext.WithMockCustomUser;
+import de.ozgcloud.vorgang.command.CommandService;
+import de.ozgcloud.vorgang.command.CommandTestFactory;
+import de.ozgcloud.vorgang.command.CreateCommandRequest;
+import de.ozgcloud.vorgang.vorgang.Vorgang;
+import de.ozgcloud.vorgang.vorgang.VorgangHead;
+import de.ozgcloud.vorgang.vorgang.VorgangTestFactory;
+import de.ozgcloud.vorgang.vorgang.ZustaendigeStelleTestFactory;
+
+@SpringBootTest(properties = {
+		"grpc.server.inProcessName=test",
+		"grpc.client.vorgang-manager.address=in-process:test",
+		"grpc.client.ozgcloud-command-manager.address=in-process:test",
+})
+@DataITCase
+@WithMockCustomUser
+@DirtiesContext
+class CollaborationITCase {
+
+	@Autowired
+	private CommandService commandService;
+
+	@Autowired
+	private MongoOperations mongoOperations;
+
+	@MockBean
+	private OzgCloudUserProfileService ozgCloudUserProfileService;
+	@Mock
+	private OzgCloudUserProfile ozgCloudUserProfile;
+
+	@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);
+	}
+
+	@Nested
+	class TestCreateCollaborationVorgang {
+
+		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;
+
+		@BeforeEach
+		void init() {
+			vorgangId = mongoOperations.save(VorgangTestFactory.createBuilder().id(null).version(0L).build()).getId();
+		}
+
+		@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 void waitUntilCommandFinished(String commandId) {
+			await().atMost(60, TimeUnit.SECONDS).until(
+					() -> mongoOperations.findById(commandId, Command.class),
+					command -> command.getStatus() == CommandStatus.FINISHED
+			);
+		}
+
+		private Vorgang loadCollaborationVorgang(String sourceVorgangId) {
+			var collaborationVorgangId = loadCollaborationRequest(sourceVorgangId).getFirst().getItem().get(FIELD_COLLABORATION_VORGANG_ID);
+			return mongoOperations.findById(collaborationVorgangId, Vorgang.class);
+		}
+
+		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);
+		}
+	}
+
+}
\ No newline at end of file
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationRepositoryITCase.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationRepositoryITCase.java
new file mode 100644
index 0000000000000000000000000000000000000000..b44c3d827a851c7e9b30c28919fb112647914d81
--- /dev/null
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationRepositoryITCase.java
@@ -0,0 +1,49 @@
+/*
+ * 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.vorgang.collaboration;
+
+import static org.assertj.core.api.Assertions.*;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import de.ozgcloud.common.test.DataITCase;
+import de.ozgcloud.vorgang.vorgang.VorgangTestFactory;
+
+@DataITCase
+class CollaborationRepositoryITCase {
+
+	@Autowired
+	private CollaborationRepository repository;
+
+	@Test
+	void shouldSaveVorgang() {
+		var vorgang = VorgangTestFactory.createBuilder().id(null).build();
+
+		var savedVorgang = repository.save(vorgang);
+
+		assertThat(savedVorgang.getId()).isNotNull();
+		assertThat(savedVorgang).usingRecursiveComparison().ignoringFields("id").isEqualTo(vorgang);
+	}
+}
\ No newline at end of file
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationServiceTest.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationServiceTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..01e063f2c45e20dcbd8a8fa3bbc4caa589205784
--- /dev/null
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationServiceTest.java
@@ -0,0 +1,257 @@
+/*
+ * 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.vorgang.collaboration;
+
+import static org.assertj.core.api.Assertions.*;
+import static org.mockito.Mockito.*;
+
+import java.time.ZonedDateTime;
+import java.time.temporal.ChronoUnit;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Spy;
+import org.springframework.context.ApplicationEventPublisher;
+
+import de.ozgcloud.command.VorgangCreatedEvent;
+import de.ozgcloud.vorgang.servicekonto.ServiceKonto;
+import de.ozgcloud.vorgang.servicekonto.ServiceKontoTestFactory;
+import de.ozgcloud.vorgang.vorgang.Vorgang;
+import de.ozgcloud.vorgang.vorgang.VorgangHead;
+import de.ozgcloud.vorgang.vorgang.VorgangHeadTestFactory;
+import de.ozgcloud.vorgang.vorgang.VorgangTestFactory;
+import de.ozgcloud.vorgang.vorgang.ZustaendigeStelleTestFactory;
+
+class CollaborationServiceTest {
+
+	@Spy
+	@InjectMocks
+	private CollaborationService service;
+
+	@Mock
+	private CollaborationRepository collaborationRepository;
+	@Mock
+	private ApplicationEventPublisher publisher;
+
+	@Nested
+	class TestCreateCollaborationVorgang {
+
+		private static final CreateCollaborationVorgangRequest CREATE_COLLABORATION_VORGANG_REQUEST = CreateCollaborationVorgangRequestTestFactory.create();
+		private static final String COLLABORATION_VORGANG_ID = "collaboration-vorgang-id";
+		private static final Vorgang SAVED_VORGANG = VorgangTestFactory.createBuilder().id(COLLABORATION_VORGANG_ID).build();
+
+		@Mock
+		private Vorgang collaborationVorgang;
+		@Captor
+		private ArgumentCaptor<VorgangCreatedEvent> eventCaptor;
+
+		@BeforeEach
+		void init() {
+			doReturn(collaborationVorgang).when(service).buildCollaborationVorgang(any());
+			when(collaborationRepository.save(any())).thenReturn(SAVED_VORGANG);
+		}
+
+		@Test
+		void shouldCallBuildCollaborationVorgang() {
+			createCollaborationVorgang();
+
+			verify(service).buildCollaborationVorgang(CREATE_COLLABORATION_VORGANG_REQUEST);
+		}
+
+		@Test
+		void shouldCallSaveVorgang() {
+			createCollaborationVorgang();
+
+			verify(collaborationRepository).save(collaborationVorgang);
+		}
+
+		@Test
+		void shouldPublishEvent() {
+			createCollaborationVorgang();
+
+			verifyNoInteractions(publisher);
+			// TODO: aktiviere, wenn VorgangCreatedEvent veröffentlicht wird
+			// 	verify(publisher).publishEvent(eventCaptor.capture());
+			// 	assertThat(eventCaptor.getValue().getSource()).isEqualTo(COLLABORATION_VORGANG_ID);
+		}
+
+		@Test
+		void shouldReturnVorgang() {
+			var result = createCollaborationVorgang();
+
+			assertThat(result).isSameAs(SAVED_VORGANG);
+		}
+
+		private Vorgang createCollaborationVorgang() {
+			return service.createCollaborationVorgang(CREATE_COLLABORATION_VORGANG_REQUEST);
+		}
+	}
+
+	@Nested
+	class TestBuildCollaborationVorgang {
+
+		private static final CreateCollaborationVorgangRequest COLLABORATION_REQUEST = CreateCollaborationVorgangRequestTestFactory.createBuilder()
+				.vorgang(VorgangTestFactory.createBuilder().formEngineName(VorgangTestFactory.FORM_ENGINE_NAME).build()).build();
+
+		private static final VorgangHead UPDATED_HEAD = VorgangHeadTestFactory.create();
+
+		@BeforeEach
+		void init() {
+			doReturn(UPDATED_HEAD).when(service).getHeader(any());
+		}
+
+		@Test
+		void shouldSetVorgangName() {
+			var result = buildCollaborationVorgang();
+
+			assertThat(result.getName()).isEqualTo(VorgangTestFactory.NAME);
+		}
+
+		@Test
+		void shouldSetVorgangNummer() {
+			var result = buildCollaborationVorgang();
+
+			assertThat(result.getNummer()).isEqualTo(VorgangTestFactory.VORGANG_NUMMER);
+		}
+
+		@Test
+		void shouldSetFormEngineName() {
+			var result = buildCollaborationVorgang();
+
+			assertThat(result.getFormEngineName()).isEqualTo(VorgangTestFactory.FORM_ENGINE_NAME);
+		}
+
+		@Test
+		void shouldSetAktenzeichen() {
+			var result = buildCollaborationVorgang();
+
+			assertThat(result.getAktenzeichen()).isEqualTo(VorgangTestFactory.AKTENZEICHEN);
+		}
+
+		@Test
+		void shouldCallGetHeader() {
+			buildCollaborationVorgang();
+
+			verify(service).getHeader(COLLABORATION_REQUEST);
+		}
+
+		@Test
+		void shouldSetHeader() {
+			var result = buildCollaborationVorgang();
+
+			assertThat(result.getHeader()).isEqualTo(UPDATED_HEAD);
+		}
+
+		@Test
+		void shouldSetEingangs() {
+			var result = buildCollaborationVorgang();
+
+			assertThat(result.getEingangs()).containsExactly(VorgangTestFactory.EINGANG);
+		}
+
+		@Test
+		void shouldSetCreatedAt() {
+			var result = buildCollaborationVorgang();
+
+			assertThat(result.getCreatedAt()).isCloseTo(ZonedDateTime.now(), within(1, ChronoUnit.SECONDS));
+		}
+
+		@Test
+		void shouldSetInCreationFalse() {
+			var result = buildCollaborationVorgang();
+
+			assertThat(result.isInCreation()).isFalse();
+		}
+
+		@Test
+		void shouldSetStatusNeu() {
+			var result = buildCollaborationVorgang();
+
+			assertThat(result.getStatus()).isEqualTo(Vorgang.Status.NEU);
+		}
+
+		@Test
+		void shouldNotSetAssignedTo() {
+			var result = buildCollaborationVorgang();
+
+			assertThat(result.getAssignedTo()).isNull();
+		}
+
+		@Test
+		void shouldNotSetClientAttributes() {
+			var result = buildCollaborationVorgang();
+
+			assertThat(result.getClientAttributes()).isEmpty();
+		}
+
+		@Test
+		void shouldNotSetForwardings() {
+			var result = buildCollaborationVorgang();
+
+			assertThat(result.getForwardings()).isEmpty();
+		}
+
+		private Vorgang buildCollaborationVorgang() {
+			return service.buildCollaborationVorgang(COLLABORATION_REQUEST);
+		}
+	}
+
+	@Nested
+	class TestGetHeader {
+
+		private static final ServiceKonto SERVICE_KONTO = ServiceKontoTestFactory.create();
+
+		@Test
+		void shouldSetZustaendigeStelle() {
+			var result = getHeader();
+
+			assertThat(result.getOrganisationsEinheitId()).isEqualTo(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID);
+		}
+
+		@Test
+		void shouldSetCollaborationLevel() {
+			var result = getHeader();
+
+			assertThat(result.getCollaborationLevel()).isEqualTo(CreateCollaborationVorgangRequestTestFactory.COLLABORATION_LEVEL);
+		}
+
+		@Test
+		void shouldKeepServiceKonto() {
+			var result = getHeader();
+
+			assertThat(result.getServiceKonto()).isSameAs(SERVICE_KONTO);
+		}
+
+		private VorgangHead getHeader() {
+			return service.getHeader(CreateCollaborationVorgangRequestTestFactory.createBuilder().vorgang(VorgangTestFactory.createBuilder().header(
+					VorgangHeadTestFactory.createBuilder().serviceKonto(SERVICE_KONTO).build()).build()).build());
+		}
+	}
+
+}
\ No newline at end of file
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CreateCollaborationVorgangRequestMapperTest.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CreateCollaborationVorgangRequestMapperTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..45e76253f7a9e06bd7c221d1a7e4c0a56e46ae32
--- /dev/null
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CreateCollaborationVorgangRequestMapperTest.java
@@ -0,0 +1,41 @@
+/*
+ * 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.vorgang.collaboration;
+
+import static org.assertj.core.api.Assertions.*;
+
+import org.junit.jupiter.api.Test;
+import org.mapstruct.factory.Mappers;
+
+class CreateCollaborationVorgangRequestMapperTest {
+
+	private final CreateCollaborationVorgangRequestMapper mapper = Mappers.getMapper(CreateCollaborationVorgangRequestMapper.class);
+
+	@Test
+	void shouldMapFromGrpc() {
+		var result = mapper.mapFrom(GrpcCollaborationRequestTestFactory.create());
+
+		assertThat(result).usingRecursiveComparison().ignoringFields("vorgang").isEqualTo(CreateCollaborationVorgangRequestTestFactory.create());
+	}
+}
\ No newline at end of file
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CreateCollaborationVorgangRequestTestFactory.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CreateCollaborationVorgangRequestTestFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..642dd5385a37c04998ee35664c908cd91a1866f4
--- /dev/null
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CreateCollaborationVorgangRequestTestFactory.java
@@ -0,0 +1,45 @@
+/*
+ * 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.vorgang.collaboration;
+
+import de.ozgcloud.vorgang.collaboration.CreateCollaborationVorgangRequest.CreateCollaborationVorgangRequestBuilder;
+import de.ozgcloud.vorgang.vorgang.VorgangTestFactory;
+import de.ozgcloud.vorgang.vorgang.ZustaendigeStelleTestFactory;
+
+public class CreateCollaborationVorgangRequestTestFactory {
+
+	public static final int COLLABORATION_LEVEL = 1;
+
+	public static CreateCollaborationVorgangRequest create() {
+		return createBuilder().build();
+	}
+
+	public static CreateCollaborationVorgangRequestBuilder createBuilder() {
+		return CreateCollaborationVorgangRequest.builder()
+				.vorgang(VorgangTestFactory.create())
+				.zustaendigeStelle(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID)
+				.collaborationLevel(COLLABORATION_LEVEL);
+	}
+
+}
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/GrpcCollaborationRequestTestFactory.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/GrpcCollaborationRequestTestFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..e46337e88b4364406238abb4ae3bfa0cece7ecae
--- /dev/null
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/GrpcCollaborationRequestTestFactory.java
@@ -0,0 +1,42 @@
+/*
+ * 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.vorgang.collaboration;
+
+import de.ozgcloud.vorgang.vorgang.GrpcCollaborationRequest;
+import de.ozgcloud.vorgang.vorgang.VorgangTestFactory;
+import de.ozgcloud.vorgang.vorgang.ZustaendigeStelleTestFactory;
+
+public class GrpcCollaborationRequestTestFactory {
+
+	public static GrpcCollaborationRequest create() {
+		return createBuilder().build();
+	}
+
+	public static GrpcCollaborationRequest.Builder createBuilder() {
+		return GrpcCollaborationRequest.newBuilder()
+				.setVorgangId(VorgangTestFactory.ID)
+				.setZustaendigeStelle(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID)
+				.setCollaborationLevel(CreateCollaborationVorgangRequestTestFactory.COLLABORATION_LEVEL);
+	}
+}
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/GrpcCreateCollaborationVorgangResponseTestFactory.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/GrpcCreateCollaborationVorgangResponseTestFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..1851256f15a55aeb97fc63b77399d1e71a41ae6d
--- /dev/null
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/GrpcCreateCollaborationVorgangResponseTestFactory.java
@@ -0,0 +1,42 @@
+/*
+ * 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.vorgang.collaboration;
+
+import java.util.UUID;
+
+import de.ozgcloud.vorgang.vorgang.GrpcCreateCollaborationVorgangResponse;
+
+public class GrpcCreateCollaborationVorgangResponseTestFactory {
+
+	public static final String VORGANG_ID = UUID.randomUUID().toString();
+
+	public static GrpcCreateCollaborationVorgangResponse create() {
+		return createBuilder().build();
+	}
+
+	public static GrpcCreateCollaborationVorgangResponse.Builder createBuilder() {
+		return GrpcCreateCollaborationVorgangResponse.newBuilder()
+				.setVorgangId(VORGANG_ID);
+	}
+}
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/GrpcVorgangServiceTest.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/GrpcVorgangServiceTest.java
index c47eaab97f6000c602e3d3ccd7aab63fb969392a..3b78df2424dfa62ae1048907e663065de5110e27 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/GrpcVorgangServiceTest.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/GrpcVorgangServiceTest.java
@@ -30,6 +30,7 @@ import static org.mockito.Mockito.*;
 import java.util.Collections;
 import java.util.List;
 
+import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Nested;
@@ -41,6 +42,13 @@ import org.mockito.Mock;
 import org.mockito.Spy;
 import org.springframework.data.domain.Page;
 
+import de.ozgcloud.vorgang.collaboration.CollaborationService;
+import de.ozgcloud.vorgang.collaboration.CreateCollaborationVorgangBadRequestException;
+import de.ozgcloud.vorgang.collaboration.CreateCollaborationVorgangRequest;
+import de.ozgcloud.vorgang.collaboration.CreateCollaborationVorgangRequestMapper;
+import de.ozgcloud.vorgang.collaboration.CreateCollaborationVorgangRequestTestFactory;
+import de.ozgcloud.vorgang.collaboration.GrpcCollaborationRequestTestFactory;
+import de.ozgcloud.vorgang.collaboration.GrpcCreateCollaborationVorgangResponseTestFactory;
 import io.grpc.stub.StreamObserver;
 
 class GrpcVorgangServiceTest {
@@ -73,6 +81,10 @@ class GrpcVorgangServiceTest {
 	private IncomingFileMapper incomingFileMapper;
 	@Mock
 	private IncomingFileGroupMapper incomingFileGroupMapper;
+	@Mock
+	private CollaborationService collaborationService;
+	@Mock
+	private CreateCollaborationVorgangRequestMapper createCollaborationVorgangRequestMapper;
 
 	@Nested
 	class TestCreate {
@@ -330,4 +342,170 @@ class GrpcVorgangServiceTest {
 			verify(responseObserver).onNext(responseCaptor.capture());
 		}
 	}
+
+	@Nested
+	class TestCreateCollaborationVorgangEndpoint {
+
+		@Nested
+		class TestCollaborationRequest {
+
+			private static final GrpcCollaborationRequest GRPC_COLLABORATION_REQUEST = GrpcCollaborationRequestTestFactory.create();
+			private static final GrpcCreateCollaborationVorgangRequest REQUEST = GrpcCreateCollaborationVorgangRequest.newBuilder()
+					.setCollaborationRequest(GRPC_COLLABORATION_REQUEST).build();
+			private static final GrpcCreateCollaborationVorgangResponse GRPC_COLLABORATION_RESPONSE =
+					GrpcCreateCollaborationVorgangResponseTestFactory.create();
+
+			@Mock
+			private StreamObserver<GrpcCreateCollaborationVorgangResponse> responseObserver;
+
+			@Captor
+			private ArgumentCaptor<GrpcCreateCollaborationVorgangResponse> responseCaptor;
+
+			@BeforeEach
+			void init() {
+				doReturn(GRPC_COLLABORATION_RESPONSE).when(service).createCollaborationVorgang(any());
+			}
+
+			@Test
+			void shouldCallCreateCollaborationVorgang() {
+				createCollaborationVorgang();
+
+				verify(service).createCollaborationVorgang(GRPC_COLLABORATION_REQUEST);
+			}
+
+			@Test
+			void shouldCallOnNext() {
+				createCollaborationVorgang();
+
+				verify(responseObserver).onNext(responseCaptor.capture());
+				assertThat(responseCaptor.getValue().getVorgangId()).isEqualTo(GrpcCreateCollaborationVorgangResponseTestFactory.VORGANG_ID);
+			}
+
+			@Test
+			void shouldCallOnCompleted() {
+				createCollaborationVorgang();
+
+				verify(responseObserver).onCompleted();
+			}
+
+			private void createCollaborationVorgang() {
+				service.createCollaborationVorgang(REQUEST, responseObserver);
+			}
+		}
+
+		@Nested
+		class TestEmptyCollaborationRequest {
+
+			@Mock
+			private StreamObserver<GrpcCreateCollaborationVorgangResponse> responseObserver;
+
+			@Test
+			void shouldThrowException() {
+				Assertions.assertThrows(CreateCollaborationVorgangBadRequestException.class, this::createCollaborationVorgang);
+			}
+
+			private void createCollaborationVorgang() {
+				service.createCollaborationVorgang(GrpcCreateCollaborationVorgangRequest.newBuilder().build(), responseObserver);
+			}
+		}
+	}
+
+	@Nested
+	class TestCreateCollaborationVorgang {
+
+		private static final GrpcCollaborationRequest GRPC_COLLABORATION_REQUEST = GrpcCollaborationRequestTestFactory.create();
+		private static final CreateCollaborationVorgangRequest CREATE_COLLABORATION_VORGANG_REQUEST = CreateCollaborationVorgangRequestTestFactory.create();
+		private static final Vorgang COLLABORATION_VORGANG = VorgangTestFactory.create();
+
+		@BeforeEach
+		void init() {
+			doReturn(CREATE_COLLABORATION_VORGANG_REQUEST).when(service).buildCreateCollaborationVorgangRequest(any());
+			when(collaborationService.createCollaborationVorgang(any())).thenReturn(COLLABORATION_VORGANG);
+		}
+
+		@Test
+		void shouldCallBuildCreateCollaborationVorgangRequest() {
+			createCollaborationVorgang();
+
+			verify(service).buildCreateCollaborationVorgangRequest(GRPC_COLLABORATION_REQUEST);
+		}
+
+		@Test
+		void shouldCallCreateCollaborationVorgang() {
+			createCollaborationVorgang();
+
+			verify(collaborationService).createCollaborationVorgang(CREATE_COLLABORATION_VORGANG_REQUEST);
+		}
+
+		@Test
+		void shouldCallBuildResponse() {
+			createCollaborationVorgang();
+
+			verify(service).buildCreateCollaborationVorgangResponse(COLLABORATION_VORGANG);
+		}
+
+		@Test
+		void shouldReturnResponse() {
+			var response = GrpcCreateCollaborationVorgangResponseTestFactory.create();
+			doReturn(response).when(service).buildCreateCollaborationVorgangResponse(any());
+
+			var result = createCollaborationVorgang();
+
+			assertThat(result).isSameAs(response);
+		}
+
+		private GrpcCreateCollaborationVorgangResponse createCollaborationVorgang() {
+			return service.createCollaborationVorgang(GRPC_COLLABORATION_REQUEST);
+		}
+	}
+
+	@Nested
+	class TestBuildCreateCollaborationVorgangRequest {
+
+		private static final GrpcCollaborationRequest GRPC_COLLABORATION_REQUEST = GrpcCollaborationRequestTestFactory.create();
+		private static final CreateCollaborationVorgangRequest CREATE_COLLABORATION_VORGANG_REQUEST = CreateCollaborationVorgangRequestTestFactory.create();
+		private static final Vorgang VORGANG = VorgangTestFactory.create();
+
+		@BeforeEach
+		void init() {
+			when(createCollaborationVorgangRequestMapper.mapFrom(any())).thenReturn(CREATE_COLLABORATION_VORGANG_REQUEST);
+			when(vorgangService.getById(anyString())).thenReturn(VORGANG);
+		}
+
+		@Test
+		void shouldCallGetVorgang() {
+			buildCreateCollaborationVorgangRequest();
+
+			verify(vorgangService).getById(VorgangTestFactory.ID);
+		}
+
+		@Test
+		void shouldCallRequestMapper() {
+			buildCreateCollaborationVorgangRequest();
+
+			verify(createCollaborationVorgangRequestMapper).mapFrom(GRPC_COLLABORATION_REQUEST);
+		}
+
+		@Test
+		void shouldSetVorgang() {
+			var result = buildCreateCollaborationVorgangRequest();
+
+			assertThat(result.getVorgang()).isSameAs(VORGANG);
+		}
+
+		private CreateCollaborationVorgangRequest buildCreateCollaborationVorgangRequest() {
+			return service.buildCreateCollaborationVorgangRequest(GRPC_COLLABORATION_REQUEST);
+		}
+	}
+
+	@Nested
+	class TestBuildCreateCollaborationVorgangResponse {
+
+		@Test
+		void shouldSetVorgangId() {
+			var result = service.buildCreateCollaborationVorgangResponse(VorgangTestFactory.create());
+
+			assertThat(result.getVorgangId()).isEqualTo(VorgangTestFactory.ID);
+		}
+	}
 }
\ No newline at end of file
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/VorgangServiceTest.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/VorgangServiceTest.java
index 216eb98e9acdd32f73761e69c40c489ffc10a07c..fb8085fe48a868c0c40ff629bf19ae4ec4dcea32 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/VorgangServiceTest.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/VorgangServiceTest.java
@@ -346,7 +346,7 @@ class VorgangServiceTest {
 			void shouldThrowAccessDeniedException() {
 				when(vorgangAuthorizationService.authorizeByOrganisationseinheitenId(any(), any())).thenReturn(false);
 
-				assertThrows(AccessDeniedException.class, () -> service.getById(VorgangTestFactory.ID, FilterCriteriaTestFactory.create())); // NOSONAR
+				assertThrows(AccessDeniedException.class, () -> service.getById(VorgangTestFactory.ID, FilterCriteriaTestFactory.create())); //NOSONAR
 			}
 		}
 
@@ -381,10 +381,45 @@ class VorgangServiceTest {
 		}
 	}
 
+	@Nested
+	class TestGetOriginalVorgangById {
+
+		private final static Vorgang VORGANG = VorgangTestFactory.create();
+
+		@BeforeEach
+		void init() {
+			doReturn(VORGANG).when(service).loadById(anyString());
+		}
+
+		@Test
+		void shouldCallLoadById() {
+			service.getOriginalVorgangById(VorgangTestFactory.ID);
+
+			verify(service).loadById(VorgangTestFactory.ID);
+		}
+
+		@Test
+		void shouldCallRemoveUnpermittedClientAttributes() {
+			service.getOriginalVorgangById(VorgangTestFactory.ID);
+
+			verify(service).removeUnpermittedClientAttributes(VORGANG);
+		}
+
+		@Test
+		void shouldReturnVorgang() {
+			var cleanedVorgang = VorgangTestFactory.create();
+			doReturn(cleanedVorgang).when(service).removeUnpermittedClientAttributes(any());
+
+			var result = service.getOriginalVorgangById(VorgangTestFactory.ID);
+
+			assertThat(result).isSameAs(cleanedVorgang);
+		}
+	}
+
 	@Nested
 	class TestAssignToUser {
 
-		private Command command = CommandTestFactory.createBuilder().body(Map.of("assignedTo", "Klaus")).build();
+		private final Command command = CommandTestFactory.createBuilder().body(Map.of("assignedTo", "Klaus")).build();
 
 		@Test
 		void shouldCallRepository() {
@@ -418,8 +453,8 @@ class VorgangServiceTest {
 	@Nested
 	class TestDeleteVorgang {
 
-		private Vorgang vorgang = VorgangTestFactory.create();
-		private VorgangStub stub = VorgangStubTestFactory.create();
+		private final Vorgang vorgang = VorgangTestFactory.create();
+		private final VorgangStub stub = VorgangStubTestFactory.create();
 
 		@BeforeEach
 		void init() {
diff --git a/vorgang-manager-utils/pom.xml b/vorgang-manager-utils/pom.xml
index 8e78361b0e1cae1ecef07ee4a41cf1e1ed1b0315..c65c6998164b07007eff874d6ec6bd307c31733f 100644
--- a/vorgang-manager-utils/pom.xml
+++ b/vorgang-manager-utils/pom.xml
@@ -30,14 +30,14 @@
 	<parent>
 		<groupId>de.ozgcloud.common</groupId>
 		<artifactId>ozgcloud-common-dependencies</artifactId>
-		<version>4.3.0</version>
+		<version>4.3.1</version>
 		<relativePath/>
 	</parent>
 
 	<groupId>de.ozgcloud.vorgang</groupId>
 	<artifactId>vorgang-manager-utils</artifactId>
 	<name>OZG-Cloud Vorgang Manager Utils</name>
-	<version>2.11.0-SNAPSHOT</version>
+	<version>2.12.0-SNAPSHOT</version>
 
 	<properties>
 		<maven-compiler-plugin.version>3.10.1</maven-compiler-plugin.version>