diff --git a/zufi-manager-interface/src/main/protobuf/organisationseinheit.model.proto b/zufi-manager-interface/src/main/protobuf/organisationseinheit.model.proto
index 576888a3c60f61321f7e05dccd71a584a447c22d..01eb49d57010bca80ccd6b855b41eafbc0dd71f6 100644
--- a/zufi-manager-interface/src/main/protobuf/organisationseinheit.model.proto
+++ b/zufi-manager-interface/src/main/protobuf/organisationseinheit.model.proto
@@ -23,6 +23,14 @@ message GrpcOrganisationsEinheitSearchResponse {
 	repeated GrpcOrganisationsEinheit organisationsEinheiten = 1;
 }
 
+message GrpcGetByOrganisationsEinheitIdRequest {
+  string organisationsEinheitId = 1;
+}
+
+message GrpcGetByOrganisationsEinheitIdResponse {
+  repeated GrpcOrganisationsEinheit organisationsEinheiten = 1;
+}
+
 message GrpcOrganisationsEinheit {
     string id = 1;
     string name = 2;
diff --git a/zufi-manager-interface/src/main/protobuf/organisationseinheit.proto b/zufi-manager-interface/src/main/protobuf/organisationseinheit.proto
index 4e3f7d0e2f0ad413d1c37711eb65189f878823a0..37beb2f7e953effd18c3f667d2d74f800802366f 100644
--- a/zufi-manager-interface/src/main/protobuf/organisationseinheit.proto
+++ b/zufi-manager-interface/src/main/protobuf/organisationseinheit.proto
@@ -12,4 +12,6 @@ service OrganisationsEinheitService {
   rpc Search(GrpcOrganisationsEinheitSearchRequest) returns (GrpcOrganisationsEinheitSearchResponse);
 
   rpc GetById(GrpcOrganisationsEinheitGetRequest) returns (GrpcOrganisationsEinheitGetResponse);
+
+  rpc GetByOrganisationsEinheitId(GrpcGetByOrganisationsEinheitIdRequest) returns (GrpcGetByOrganisationsEinheitIdResponse);
 }
\ No newline at end of file
diff --git a/zufi-manager-model/src/main/java/de/ozgcloud/zufi/organisationseinheit/OrganisationsEinheitRepository.java b/zufi-manager-model/src/main/java/de/ozgcloud/zufi/organisationseinheit/OrganisationsEinheitRepository.java
index ffbe6e8ed7e1ab1e65a4cde9ed1efe5977845f13..d955223267a4081db86584a8015db72f599fc6fa 100644
--- a/zufi-manager-model/src/main/java/de/ozgcloud/zufi/organisationseinheit/OrganisationsEinheitRepository.java
+++ b/zufi-manager-model/src/main/java/de/ozgcloud/zufi/organisationseinheit/OrganisationsEinheitRepository.java
@@ -28,6 +28,7 @@ import java.util.Optional;
 
 import org.springframework.data.mongodb.core.query.TextCriteria;
 import org.springframework.data.mongodb.repository.MongoRepository;
+import org.springframework.data.mongodb.repository.Query;
 import org.springframework.stereotype.Repository;
 
 @Repository
@@ -54,4 +55,9 @@ interface OrganisationsEinheitRepository extends MongoRepository<OrganisationsEi
 	default TextCriteria buildTextCriteria(String text) {
 		return TextCriteria.forDefaultLanguage().matching(text);
 	}
+
+	@Query("{ 'xzufiId._id': ?0 }")
+	List<OrganisationsEinheit> findByOrganisationsEinheitId(String organisationsEinheitId);
 }
+
+
diff --git a/zufi-manager-model/src/test/java/de/ozgcloud/zufi/organisationseinheit/OrganisationsEinheitRepositoryITCase.java b/zufi-manager-model/src/test/java/de/ozgcloud/zufi/organisationseinheit/OrganisationsEinheitRepositoryITCase.java
index 144dbecb9fe0837c883a73860a3baa5898a260ae..911827bd834ef0ce054265dd9766c63d066608c0 100644
--- a/zufi-manager-model/src/test/java/de/ozgcloud/zufi/organisationseinheit/OrganisationsEinheitRepositoryITCase.java
+++ b/zufi-manager-model/src/test/java/de/ozgcloud/zufi/organisationseinheit/OrganisationsEinheitRepositoryITCase.java
@@ -4,6 +4,7 @@ import static org.assertj.core.api.Assertions.*;
 
 import java.util.Optional;
 import java.util.Set;
+import java.util.UUID;
 
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Nested;
@@ -241,4 +242,37 @@ class OrganisationsEinheitRepositoryITCase {
 					.containsExactly(organisationsEinheit1, organisationsEinheit3, organisationsEinheit2);
 		}
 	}
+
+	@Nested
+	class TestFindByOrganisationsEinheitId {
+
+		public static final String ORGANISATIONS_EINHEIT_ID = OrganisationsEinheitTestFactory.XZUFI_ID.getId();
+
+		private final OrganisationsEinheit organisationsEinheit1 = OrganisationsEinheitTestFactory.createBuilder()
+				.id(null)
+				.xzufiId(XzufiId.builder().id(ORGANISATIONS_EINHEIT_ID).schemeAgencyId(UUID.randomUUID().toString()).build())
+				.build();
+		private final OrganisationsEinheit organisationsEinheit2 = OrganisationsEinheitTestFactory.createBuilder()
+				.id(null)
+				.xzufiId(XzufiId.builder().id(UUID.randomUUID().toString()).schemeAgencyId(UUID.randomUUID().toString()).build())
+				.build();
+		private final OrganisationsEinheit organisationsEinheit3 = OrganisationsEinheitTestFactory.createBuilder()
+				.id(null)
+				.xzufiId(XzufiId.builder().id(ORGANISATIONS_EINHEIT_ID).schemeAgencyId(UUID.randomUUID().toString()).build())
+				.build();
+
+		@BeforeEach
+		void initDatabase() {
+			repository.save(organisationsEinheit1);
+			repository.save(organisationsEinheit2);
+			repository.save(organisationsEinheit3);
+		}
+
+		@Test
+		void shouldFindAllOrganisationsEinheitenWithId() {
+			var result = repository.findByOrganisationsEinheitId(ORGANISATIONS_EINHEIT_ID);
+
+			assertThat(result).usingRecursiveFieldByFieldElementComparatorIgnoringFields("id").containsExactlyInAnyOrder(organisationsEinheit1, organisationsEinheit3);
+		}
+	}
 }
diff --git a/zufi-manager-server/src/main/java/de/ozgcloud/zufi/organisationseinheit/OrganisationsEinheitGrpcService.java b/zufi-manager-server/src/main/java/de/ozgcloud/zufi/organisationseinheit/OrganisationsEinheitGrpcService.java
index 6d096f3bd1cbef4391c96ae310ec61560639175c..c643f4030ab13d55dddda127dca62a1a6ea93b5d 100644
--- a/zufi-manager-server/src/main/java/de/ozgcloud/zufi/organisationseinheit/OrganisationsEinheitGrpcService.java
+++ b/zufi-manager-server/src/main/java/de/ozgcloud/zufi/organisationseinheit/OrganisationsEinheitGrpcService.java
@@ -2,6 +2,8 @@ package de.ozgcloud.zufi.organisationseinheit;
 
 import java.util.List;
 
+import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcGetByOrganisationsEinheitIdRequest;
+import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcGetByOrganisationsEinheitIdResponse;
 import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcOrganisationsEinheitGetRequest;
 import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcOrganisationsEinheitGetResponse;
 import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcOrganisationsEinheitSearchRequest;
@@ -48,4 +50,19 @@ class OrganisationsEinheitGrpcService extends OrganisationsEinheitServiceImplBas
 		return responseBuilder.build();
 	}
 
+	@Override
+	public void getByOrganisationsEinheitId(GrpcGetByOrganisationsEinheitIdRequest request,
+			StreamObserver<GrpcGetByOrganisationsEinheitIdResponse> responseObserver) {
+		var organisationsEinheiten = searchService.getByOrganisationsEinheitId(request.getOrganisationsEinheitId());
+		responseObserver.onNext(buildGetByOrganisationsEinheitIdResponse(organisationsEinheiten));
+		responseObserver.onCompleted();
+	}
+
+	GrpcGetByOrganisationsEinheitIdResponse buildGetByOrganisationsEinheitIdResponse(List<OrganisationsEinheit> organisationsEinheiten) {
+		var responseBuilder = GrpcGetByOrganisationsEinheitIdResponse.newBuilder();
+		organisationsEinheiten.stream()
+				.map(mapper::fromOrganisationsEinheit)
+				.forEach(responseBuilder::addOrganisationsEinheiten);;
+		return responseBuilder.build();
+	}
 }
diff --git a/zufi-manager-server/src/main/java/de/ozgcloud/zufi/organisationseinheit/OrganisationsEinheitSearchService.java b/zufi-manager-server/src/main/java/de/ozgcloud/zufi/organisationseinheit/OrganisationsEinheitSearchService.java
index 0825f1ff8c723fcea19d6b01aa97a5975534581c..8651e615fe388a490d11bdf82627b296c8d88ce1 100644
--- a/zufi-manager-server/src/main/java/de/ozgcloud/zufi/organisationseinheit/OrganisationsEinheitSearchService.java
+++ b/zufi-manager-server/src/main/java/de/ozgcloud/zufi/organisationseinheit/OrganisationsEinheitSearchService.java
@@ -17,6 +17,10 @@ class OrganisationsEinheitSearchService {
 		return repository.findById(id).orElseThrow(() -> new OrganisationsEinheitNotFoundException(id));
 	}
 
+	public List<OrganisationsEinheit> getByOrganisationsEinheitId(String organisationsEinheitId) {
+		return repository.findByOrganisationsEinheitId(organisationsEinheitId);
+	}
+
 	public List<OrganisationsEinheit> search(String text, String ars) {
 		if (StringUtils.isEmpty(ars)) {
 			return repository.findAllContaining(text);
diff --git a/zufi-manager-server/src/test/java/de/ozgcloud/zufi/organisationseinheit/GrpcGetByOrganisationsEinheitIdRequestTestFactory.java b/zufi-manager-server/src/test/java/de/ozgcloud/zufi/organisationseinheit/GrpcGetByOrganisationsEinheitIdRequestTestFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..d049be7d727033b767de25c862c0afbe3e7ade51
--- /dev/null
+++ b/zufi-manager-server/src/test/java/de/ozgcloud/zufi/organisationseinheit/GrpcGetByOrganisationsEinheitIdRequestTestFactory.java
@@ -0,0 +1,15 @@
+package de.ozgcloud.zufi.organisationseinheit;
+
+import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcGetByOrganisationsEinheitIdRequest;
+
+class GrpcGetByOrganisationsEinheitIdRequestTestFactory {
+
+	public static GrpcGetByOrganisationsEinheitIdRequest create() {
+		return createBuilder().build();
+	}
+
+	public static GrpcGetByOrganisationsEinheitIdRequest.Builder createBuilder() {
+		return GrpcGetByOrganisationsEinheitIdRequest.newBuilder()
+				.setOrganisationsEinheitId(OrganisationsEinheitTestFactory.XZUFI_ID.getId());
+	}
+}
diff --git a/zufi-manager-server/src/test/java/de/ozgcloud/zufi/organisationseinheit/GrpcGetByOrganisationsEinheitIdResponseTestFactory.java b/zufi-manager-server/src/test/java/de/ozgcloud/zufi/organisationseinheit/GrpcGetByOrganisationsEinheitIdResponseTestFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..f47342ab59431f755e574916f23755f1344710d9
--- /dev/null
+++ b/zufi-manager-server/src/test/java/de/ozgcloud/zufi/organisationseinheit/GrpcGetByOrganisationsEinheitIdResponseTestFactory.java
@@ -0,0 +1,18 @@
+package de.ozgcloud.zufi.organisationseinheit;
+
+import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcGetByOrganisationsEinheitIdResponse;
+import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcOrganisationsEinheit;
+
+class GrpcGetByOrganisationsEinheitIdResponseTestFactory {
+
+	public static final GrpcOrganisationsEinheit GRPC_ORGANISATIONS_EINHEIT = GrpcOrganisationsEinheitTestFactory.create();
+
+	public static GrpcGetByOrganisationsEinheitIdResponse create() {
+		return createBuilder().build();
+	}
+
+	public static GrpcGetByOrganisationsEinheitIdResponse.Builder createBuilder() {
+		return GrpcGetByOrganisationsEinheitIdResponse.newBuilder()
+				.addOrganisationsEinheiten(GRPC_ORGANISATIONS_EINHEIT);
+	}
+}
diff --git a/zufi-manager-server/src/test/java/de/ozgcloud/zufi/organisationseinheit/OrganisationsEinheitGrpcServiceTest.java b/zufi-manager-server/src/test/java/de/ozgcloud/zufi/organisationseinheit/OrganisationsEinheitGrpcServiceTest.java
index fe61176d657b985cc322e1d99082e004a5730ca5..8a5b62e561687319d9fe7cadda583ecd428aa39e 100644
--- a/zufi-manager-server/src/test/java/de/ozgcloud/zufi/organisationseinheit/OrganisationsEinheitGrpcServiceTest.java
+++ b/zufi-manager-server/src/test/java/de/ozgcloud/zufi/organisationseinheit/OrganisationsEinheitGrpcServiceTest.java
@@ -14,6 +14,7 @@ import org.mockito.InjectMocks;
 import org.mockito.Mock;
 import org.mockito.Spy;
 
+import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcGetByOrganisationsEinheitIdResponse;
 import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcOrganisationsEinheit;
 import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcOrganisationsEinheitGetRequest;
 import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcOrganisationsEinheitGetResponse;
@@ -26,7 +27,7 @@ class OrganisationsEinheitGrpcServiceTest {
 	@InjectMocks
 	private OrganisationsEinheitGrpcService service;
 	@Mock
-	private OrganisationsEinheitSearchService organisationsEinheitSearchService;
+	private OrganisationsEinheitSearchService searchService;
 	@Mock
 	private GrpcOrganisationsEinheitMapper mapper;
 
@@ -52,7 +53,7 @@ class OrganisationsEinheitGrpcServiceTest {
 
 			@BeforeEach
 			void setUpMocks() {
-				when(organisationsEinheitSearchService.search(request.getSearchBy(), request.getArs())).thenReturn(organisationsEinheiten);
+				when(searchService.search(request.getSearchBy(), request.getArs())).thenReturn(organisationsEinheiten);
 				when(mapper.fromOrganisationsEinheit(organisationsEinheit)).thenReturn(grpcOrganisationsEinheit);
 				when(mapper.fromOrganisationsEinheit(organisationsEinheit2)).thenReturn(grpcOrganisationsEinheit2);
 			}
@@ -61,11 +62,11 @@ class OrganisationsEinheitGrpcServiceTest {
 			void shouldCallService() {
 				callService();
 
-				verify(organisationsEinheitSearchService).search(request.getSearchBy(), request.getArs());
+				verify(searchService).search(request.getSearchBy(), request.getArs());
 			}
 
 			@Test
-			void shouldCreateResponse() {
+			void shouldBuildResponse() {
 				callService();
 
 				verify(service).buildOrganisationsEinheitSearchResponse(organisationsEinheiten);
@@ -93,7 +94,7 @@ class OrganisationsEinheitGrpcServiceTest {
 
 			@BeforeEach
 			void setUpMocks() {
-				when(organisationsEinheitSearchService.search(request.getSearchBy(), request.getArs())).thenReturn(organisationsEinheiten);
+				when(searchService.search(request.getSearchBy(), request.getArs())).thenReturn(organisationsEinheiten);
 				when(mapper.fromOrganisationsEinheit(organisationsEinheit)).thenReturn(grpcOrganisationsEinheit);
 				when(mapper.fromOrganisationsEinheit(organisationsEinheit2)).thenReturn(grpcOrganisationsEinheit2);
 			}
@@ -139,7 +140,7 @@ class OrganisationsEinheitGrpcServiceTest {
 
 			@BeforeEach
 			void setUpMocks() {
-				when(organisationsEinheitSearchService.getById(organisationsEinheitId)).thenReturn(organisationsEinheit);
+				when(searchService.getById(organisationsEinheitId)).thenReturn(organisationsEinheit);
 				when(mapper.fromOrganisationsEinheit(organisationsEinheit)).thenReturn(grpcOrganisationsEinheit);
 			}
 
@@ -147,11 +148,11 @@ class OrganisationsEinheitGrpcServiceTest {
 			void shouldCallService() {
 				callService();
 
-				verify(organisationsEinheitSearchService).getById(organisationsEinheitId);
+				verify(searchService).getById(organisationsEinheitId);
 			}
 
 			@Test
-			void shouldCreateResponse() {
+			void shouldBuildResponse() {
 				callService();
 
 				verify(service).buildOrganisationsEinheitGetResponse(organisationsEinheit);
@@ -206,4 +207,86 @@ class OrganisationsEinheitGrpcServiceTest {
 
 	}
 
+	@Nested
+	class TestGetByOrganisationsEinheitId {
+
+		public static final String ORGANISATIONS_EINHEIT_ID = OrganisationsEinheitTestFactory.XZUFI_ID.getId();
+
+		private final List<OrganisationsEinheit> organisationsEinheiten = List.of(organisationsEinheit);
+		private final GrpcGetByOrganisationsEinheitIdResponse response = GrpcGetByOrganisationsEinheitIdResponseTestFactory.create();
+
+		@Mock
+		private StreamObserver<GrpcGetByOrganisationsEinheitIdResponse> responseObserver;
+
+		@Captor
+		private ArgumentCaptor<GrpcGetByOrganisationsEinheitIdResponse> responseCaptor;
+
+		@BeforeEach
+		void init() {
+			when(searchService.getByOrganisationsEinheitId(ORGANISATIONS_EINHEIT_ID)).thenReturn(organisationsEinheiten);
+			doReturn(response).when(service).buildGetByOrganisationsEinheitIdResponse(organisationsEinheiten);
+		}
+
+		@Test
+		void shouldCallService() {
+			callService();
+
+			verify(searchService).getByOrganisationsEinheitId(ORGANISATIONS_EINHEIT_ID);
+		}
+
+		@Test
+		void shouldBuildResponse() {
+			callService();
+
+			verify(service).buildGetByOrganisationsEinheitIdResponse(organisationsEinheiten);
+		}
+
+		@Test
+		void shouldReturnResponse() {
+			callService();
+
+			verify(responseObserver).onNext(responseCaptor.capture());
+			assertThat(responseCaptor.getValue()).isEqualTo(response);
+		}
+
+		@Test
+		void shouldCompleteResponse() {
+			callService();
+
+			verify(responseObserver).onCompleted();
+		}
+
+		private void callService() {
+			service.getByOrganisationsEinheitId(GrpcGetByOrganisationsEinheitIdRequestTestFactory.create(), responseObserver);
+		}
+	}
+
+	@Nested
+	class TestBuildGetByOrganisationsEinheitIdResponse {
+
+		private final List<OrganisationsEinheit> organisationsEinheiten = List.of(organisationsEinheit);
+
+		@BeforeEach
+		void setup() {
+			when(mapper.fromOrganisationsEinheit(organisationsEinheit)).thenReturn(grpcOrganisationsEinheit);
+		}
+
+		@Test
+		void shouldMapOrganisationsEinheit() {
+			callService();
+
+			verify(mapper).fromOrganisationsEinheit(organisationsEinheit);
+		}
+
+		@Test
+		void shouldReturnResponse() {
+			var result = callService();
+
+			assertThat(result.getOrganisationsEinheitenList()).containsExactly(GrpcGetByOrganisationsEinheitIdResponseTestFactory.GRPC_ORGANISATIONS_EINHEIT);
+		}
+
+		private GrpcGetByOrganisationsEinheitIdResponse callService() {
+			return service.buildGetByOrganisationsEinheitIdResponse(organisationsEinheiten);
+		}
+	}
 }
diff --git a/zufi-manager-server/src/test/java/de/ozgcloud/zufi/organisationseinheit/OrganisationsEinheitSearchServiceTest.java b/zufi-manager-server/src/test/java/de/ozgcloud/zufi/organisationseinheit/OrganisationsEinheitSearchServiceTest.java
index 3f4fd40e966c48c3556feb9791b5552be2a520d0..5d3561ced2b0d58a566643488ce3bb5f0a6a7030 100644
--- a/zufi-manager-server/src/test/java/de/ozgcloud/zufi/organisationseinheit/OrganisationsEinheitSearchServiceTest.java
+++ b/zufi-manager-server/src/test/java/de/ozgcloud/zufi/organisationseinheit/OrganisationsEinheitSearchServiceTest.java
@@ -64,6 +64,37 @@ class OrganisationsEinheitSearchServiceTest {
 		}
 	}
 
+	@Nested
+	class TestGetByOrganisationsEinheitId {
+
+		public static final String ORGANISATIONS_EINHEIT_ID = OrganisationsEinheitTestFactory.XZUFI_ID.getId();
+
+		private final OrganisationsEinheit organisationsEinheit = OrganisationsEinheitTestFactory.create();
+
+		@BeforeEach
+		void init() {
+			when(repository.findByOrganisationsEinheitId(ORGANISATIONS_EINHEIT_ID)).thenReturn(List.of(organisationsEinheit));
+		}
+
+		@Test
+		void shouldFindByOrganisationsEinheitId() {
+			callService();
+
+			verify(repository).findByOrganisationsEinheitId(ORGANISATIONS_EINHEIT_ID);
+		}
+
+		@Test
+		void shouldReturnOrganisationsEinheiten() {
+			var result = callService();
+
+			assertThat(result).containsExactly(organisationsEinheit);
+		}
+
+		private List<OrganisationsEinheit> callService() {
+			return service.getByOrganisationsEinheitId(ORGANISATIONS_EINHEIT_ID);
+		}
+	}
+
 	@Nested
 	class TestSearch {