diff --git a/vorgang-manager-interface/src/main/protobuf/vorgang.model.proto b/vorgang-manager-interface/src/main/protobuf/vorgang.model.proto
index 5f9efe1e4c9399cf8eecada3d7a23b1e89909f02..9b3cfb17e2a88c0fa29734d8edafe301d4cfa56d 100644
--- a/vorgang-manager-interface/src/main/protobuf/vorgang.model.proto
+++ b/vorgang-manager-interface/src/main/protobuf/vorgang.model.proto
@@ -213,7 +213,19 @@ message GrpcCreateCollaborationVorgangRequest {
 message GrpcCreateCollaborationRequestData {
   string vorgangId = 1;
   int32 collaborationLevel = 2;
-  string zustaendigeStelle = 3;
+  reserved 3;
+  GrpcFachstelle zustaendigeStelle = 4;
+}
+
+message GrpcFachstelle {
+  string technicalId = 1;
+  string subjectId = 2;
+  GrpcFachstelleType type = 3;
+}
+
+enum GrpcFachstelleType{
+  ORGANISATIONS_EINHEIT = 0;
+  EXTERNE_FACHSTELLE = 1;
 }
 
 message GrpcCreateCollaborationVorgangResponse {
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
index 763856b36699f916425c90f13b512ffae5982bce..1a3e8b76dd1886a827db306de84b1262d52a2357 100644
--- 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
@@ -59,7 +59,7 @@ public class CollaborationService {
 	VorgangHead getHeader(CreateCollaborationVorgangRequest request) {
 		return request.getVorgang().getHeader().toBuilder()
 				.collaborationLevel(request.getCollaborationLevel())
-				.organisationsEinheitId(request.getZustaendigeStelle())
+				.organisationsEinheitId(request.getZustaendigeStelle().getSubjectId())
 				.build();
 	}
 }
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
index 44f61fed6d4ea63527907176ab79f790fdc534d0..ed2b4675125567c326b8eab32f72ecbf78b973a9 100644
--- 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
@@ -33,5 +33,5 @@ public class CreateCollaborationVorgangRequest {
 
 	private Vorgang vorgang;
 	private int collaborationLevel;
-	private String zustaendigeStelle;
+	private Fachstelle 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
index e7d98214f47767f8e504319062e735e1f1542162..e5674aa21c03e4f9d0154c3ab650e3a4831054fb 100644
--- 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
@@ -29,7 +29,7 @@ import org.mapstruct.ReportingPolicy;
 
 import de.ozgcloud.vorgang.vorgang.GrpcCreateCollaborationRequestData;
 
-@Mapper(unmappedTargetPolicy = ReportingPolicy.WARN)
+@Mapper(unmappedTargetPolicy = ReportingPolicy.WARN, uses = FachstelleMapper.class)
 public interface CreateCollaborationVorgangRequestMapper {
 
 	@Mapping(target = "vorgang", ignore = true)
diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/Fachstelle.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/Fachstelle.java
new file mode 100644
index 0000000000000000000000000000000000000000..d472a536e7e4b1c384bebaac5d9af8ee3d461d58
--- /dev/null
+++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/Fachstelle.java
@@ -0,0 +1,19 @@
+package de.ozgcloud.vorgang.collaboration;
+
+import lombok.Builder;
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+
+@Builder
+@Getter
+@EqualsAndHashCode
+public class Fachstelle {
+
+	private String technicalId;
+	private String subjectId;
+	private FachstelleType type;
+
+	public enum FachstelleType {
+		EXTERNE_FACHSTELLE, ORGANISATIONS_EINHEIT;
+	}
+}
\ No newline at end of file
diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/FachstelleMapper.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/FachstelleMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..b6d38bce42d6c65b4b65147159af5868931e36b2
--- /dev/null
+++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/FachstelleMapper.java
@@ -0,0 +1,15 @@
+package de.ozgcloud.vorgang.collaboration;
+
+import org.mapstruct.Mapper;
+import org.mapstruct.MappingConstants;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.ValueMapping;
+
+import de.ozgcloud.vorgang.vorgang.GrpcFachstelle;
+
+@Mapper(unmappedTargetPolicy = ReportingPolicy.WARN)
+interface FachstelleMapper {
+
+	@ValueMapping(source = MappingConstants.ANY_REMAINING, target = MappingConstants.THROW_EXCEPTION)
+	Fachstelle fromGrpc(GrpcFachstelle fachstelle);
+}
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
index 01e063f2c45e20dcbd8a8fa3bbc4caa589205784..1f21a7720b4e4f94570ad3362332f4e02696f8b2 100644
--- 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
@@ -24,6 +24,7 @@
 package de.ozgcloud.vorgang.collaboration;
 
 import static org.assertj.core.api.Assertions.*;
+import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
 
 import java.time.ZonedDateTime;
@@ -46,7 +47,6 @@ 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 {
 
@@ -62,7 +62,8 @@ class CollaborationServiceTest {
 	@Nested
 	class TestCreateCollaborationVorgang {
 
-		private static final CreateCollaborationVorgangRequest CREATE_COLLABORATION_VORGANG_REQUEST = CreateCollaborationVorgangRequestTestFactory.create();
+		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();
 
@@ -97,8 +98,8 @@ class CollaborationServiceTest {
 
 			verifyNoInteractions(publisher);
 			// TODO: aktiviere, wenn VorgangCreatedEvent veröffentlicht wird
-			// 	verify(publisher).publishEvent(eventCaptor.capture());
-			// 	assertThat(eventCaptor.getValue().getSource()).isEqualTo(COLLABORATION_VORGANG_ID);
+			// verify(publisher).publishEvent(eventCaptor.capture());
+			// assertThat(eventCaptor.getValue().getSource()).isEqualTo(COLLABORATION_VORGANG_ID);
 		}
 
 		@Test
@@ -228,10 +229,10 @@ class CollaborationServiceTest {
 		private static final ServiceKonto SERVICE_KONTO = ServiceKontoTestFactory.create();
 
 		@Test
-		void shouldSetZustaendigeStelle() {
+		void shouldSetOrganisationsEinheitId() {
 			var result = getHeader();
 
-			assertThat(result.getOrganisationsEinheitId()).isEqualTo(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID);
+			assertThat(result.getOrganisationsEinheitId()).isEqualTo(FachstelleTestFactory.SUBJECT_ID);
 		}
 
 		@Test
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
index 813820f57598e988451867b6f263cf84da1c5d45..208327dbda34ec46c5a054873880206f1587e074 100644
--- 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
@@ -24,18 +24,39 @@
 package de.ozgcloud.vorgang.collaboration;
 
 import static org.assertj.core.api.Assertions.*;
+import static org.mockito.ArgumentMatchers.*;
+import static org.mockito.Mockito.*;
 
+import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
 import org.mapstruct.factory.Mappers;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
 
 class CreateCollaborationVorgangRequestMapperTest {
 
+	@InjectMocks
 	private final CreateCollaborationVorgangRequestMapper mapper = Mappers.getMapper(CreateCollaborationVorgangRequestMapper.class);
 
-	@Test
-	void shouldMapFromGrpc() {
-		var result = mapper.mapFrom(GrpcCreateCollaborationRequestDataTestFactory.create());
+	@Mock
+	private FachstelleMapper fachstelleMapper;
 
-		assertThat(result).usingRecursiveComparison().ignoringFields("vorgang").isEqualTo(CreateCollaborationVorgangRequestTestFactory.create());
+	@Nested
+	class TestMapFrom {
+		@Test
+		void shouldCallFachstelleMapper() {
+			mapper.mapFrom(GrpcCreateCollaborationRequestDataTestFactory.create());
+
+			verify(fachstelleMapper).fromGrpc(GrpcCreateCollaborationRequestDataTestFactory.FACHSTELLE);
+		}
+
+		@Test
+		void shouldMapFromGrpc() {
+			when(fachstelleMapper.fromGrpc(any())).thenReturn(FachstelleTestFactory.create());
+
+			var result = mapper.mapFrom(GrpcCreateCollaborationRequestDataTestFactory.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
index 642dd5385a37c04998ee35664c908cd91a1866f4..e6c8f11d524a4f27b5e2d5ec55d3233450dfc6f7 100644
--- 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
@@ -25,10 +25,10 @@ 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 Fachstelle ZUSTAENDIGE_STELLE = FachstelleTestFactory.create();
 	public static final int COLLABORATION_LEVEL = 1;
 
 	public static CreateCollaborationVorgangRequest create() {
@@ -38,7 +38,7 @@ public class CreateCollaborationVorgangRequestTestFactory {
 	public static CreateCollaborationVorgangRequestBuilder createBuilder() {
 		return CreateCollaborationVorgangRequest.builder()
 				.vorgang(VorgangTestFactory.create())
-				.zustaendigeStelle(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID)
+				.zustaendigeStelle(ZUSTAENDIGE_STELLE)
 				.collaborationLevel(COLLABORATION_LEVEL);
 	}
 
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/FachstelleMapperTest.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/FachstelleMapperTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..553ea10ddbff9eeab9669d1d518a66ea77fb0a28
--- /dev/null
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/FachstelleMapperTest.java
@@ -0,0 +1,23 @@
+package de.ozgcloud.vorgang.collaboration;
+
+import static org.assertj.core.api.Assertions.*;
+
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+import org.mapstruct.factory.Mappers;
+
+class FachstelleMapperTest {
+
+	private final FachstelleMapper mapper = Mappers.getMapper(FachstelleMapper.class);
+
+	@Nested
+	class TestFromGrpc {
+
+		@Test
+		void shouldMap() {
+			var fachstelle = mapper.fromGrpc(GrpcFachstelleTestFactory.create());
+
+			assertThat(fachstelle).isEqualTo(FachstelleTestFactory.create());
+		}
+	}
+}
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/FachstelleTestFactory.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/FachstelleTestFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..d1ffaa975affb8289188982c9af5a84a5db00c88
--- /dev/null
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/FachstelleTestFactory.java
@@ -0,0 +1,24 @@
+package de.ozgcloud.vorgang.collaboration;
+
+import java.util.UUID;
+
+import de.ozgcloud.vorgang.collaboration.Fachstelle.FachstelleBuilder;
+import de.ozgcloud.vorgang.collaboration.Fachstelle.FachstelleType;
+
+public class FachstelleTestFactory {
+
+	public static final FachstelleType TYPE = FachstelleType.ORGANISATIONS_EINHEIT;
+	public static final String SUBJECT_ID = UUID.randomUUID().toString();
+	public static final String TECHNICAL_ID = UUID.randomUUID().toString();
+
+	public static Fachstelle create() {
+		return createBuilder().build();
+	}
+
+	public static FachstelleBuilder createBuilder() {
+		return Fachstelle.builder()
+				.subjectId(SUBJECT_ID)
+				.technicalId(TECHNICAL_ID)
+				.type(TYPE);
+	}
+}
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/GrpcCreateCollaborationRequestDataTestFactory.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/GrpcCreateCollaborationRequestDataTestFactory.java
index 139b28a5ce95adaf82e99e464cc31c36bb67424f..367e272d41cd299caedd42bcf8b262a50495c837 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/GrpcCreateCollaborationRequestDataTestFactory.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/GrpcCreateCollaborationRequestDataTestFactory.java
@@ -24,11 +24,13 @@
 package de.ozgcloud.vorgang.collaboration;
 
 import de.ozgcloud.vorgang.vorgang.GrpcCreateCollaborationRequestData;
+import de.ozgcloud.vorgang.vorgang.GrpcFachstelle;
 import de.ozgcloud.vorgang.vorgang.VorgangTestFactory;
-import de.ozgcloud.vorgang.vorgang.ZustaendigeStelleTestFactory;
 
 public class GrpcCreateCollaborationRequestDataTestFactory {
 
+	public static final GrpcFachstelle FACHSTELLE = GrpcFachstelleTestFactory.create();
+
 	public static GrpcCreateCollaborationRequestData create() {
 		return createBuilder().build();
 	}
@@ -36,7 +38,7 @@ public class GrpcCreateCollaborationRequestDataTestFactory {
 	public static GrpcCreateCollaborationRequestData.Builder createBuilder() {
 		return GrpcCreateCollaborationRequestData.newBuilder()
 				.setVorgangId(VorgangTestFactory.ID)
-				.setZustaendigeStelle(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID)
+				.setZustaendigeStelle(FACHSTELLE)
 				.setCollaborationLevel(CreateCollaborationVorgangRequestTestFactory.COLLABORATION_LEVEL);
 	}
 }
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/GrpcFachstelleTestFactory.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/GrpcFachstelleTestFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..4759c8c83e0f0e00283426c76fd203a214665bd6
--- /dev/null
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/GrpcFachstelleTestFactory.java
@@ -0,0 +1,22 @@
+package de.ozgcloud.vorgang.collaboration;
+
+import de.ozgcloud.vorgang.vorgang.GrpcFachstelle;
+import de.ozgcloud.vorgang.vorgang.GrpcFachstelleType;
+
+public class GrpcFachstelleTestFactory {
+
+	public static final GrpcFachstelleType TYPE = GrpcFachstelleType.valueOf(FachstelleTestFactory.TYPE.name());
+	public static final String SUBJECT_ID = FachstelleTestFactory.SUBJECT_ID;
+	public static final String TECHNICAL_ID = FachstelleTestFactory.TECHNICAL_ID;
+
+	public static GrpcFachstelle create() {
+		return createBuilder().build();
+	}
+
+	public static GrpcFachstelle.Builder createBuilder() {
+		return GrpcFachstelle.newBuilder()
+				.setSubjectId(SUBJECT_ID)
+				.setTechnicalId(TECHNICAL_ID)
+				.setType(TYPE);
+	}
+}