diff --git a/lombok.config b/lombok.config
index 32903abaf7760ff694e6cc45854316eb10f87137..d248ae3c4da552a1948c74ed6736e9e9d72655bd 100644
--- a/lombok.config
+++ b/lombok.config
@@ -27,4 +27,5 @@ lombok.log.slf4j.flagUsage = ERROR
 lombok.log.log4j.flagUsage = ERROR
 lombok.data.flagUsage = ERROR
 lombok.nonNull.exceptionType = IllegalArgumentException
-lombok.addLombokGeneratedAnnotation = true
\ No newline at end of file
+lombok.addLombokGeneratedAnnotation = true
+lombok.copyableAnnotations += net.devh.boot.grpc.client.inject.GrpcClient
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index b5ba996e26a6ce58036638c3dd1475c2e76aa241..8629c9353459cd9aa368342a94978fed179207a0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -55,7 +55,7 @@
 
 	<properties>
 		<vorgang-manager.version>2.10.0</vorgang-manager.version>
-		<zufi-manager.version>1.2.0</zufi-manager.version>
+		<zufi-manager.version>1.7.0-SNAPSHOT</zufi-manager.version>
 
 		<jsoup.version>1.14.3</jsoup.version>
 		<xmlschema.version>2.3.0</xmlschema.version>
diff --git a/router/src/main/java/de/ozgcloud/eingang/common/zufi/OrganisationsEinheit.java b/router/src/main/java/de/ozgcloud/eingang/common/zufi/OrganisationsEinheit.java
index 24fd9e46940384a03167847e061fbab44024fe75..24a39f9ba47645252914b962488eb00cc3571d63 100644
--- a/router/src/main/java/de/ozgcloud/eingang/common/zufi/OrganisationsEinheit.java
+++ b/router/src/main/java/de/ozgcloud/eingang/common/zufi/OrganisationsEinheit.java
@@ -36,4 +36,5 @@ class OrganisationsEinheit {
 	private String name;
 	private String synonyme;
 	private String vorgangManagerAddress;
+	private XzufiId xzufiId;
 }
\ No newline at end of file
diff --git a/router/src/main/java/de/ozgcloud/eingang/common/zufi/OrganisationsEinheitRemoteService.java b/router/src/main/java/de/ozgcloud/eingang/common/zufi/OrganisationsEinheitRemoteService.java
index c7e01f4c1c86af88053ea42004ad0322f572139f..3e7ca5cfe148ae3d285172c409e9c5ad85067835 100644
--- a/router/src/main/java/de/ozgcloud/eingang/common/zufi/OrganisationsEinheitRemoteService.java
+++ b/router/src/main/java/de/ozgcloud/eingang/common/zufi/OrganisationsEinheitRemoteService.java
@@ -23,25 +23,43 @@
  */
 package de.ozgcloud.eingang.common.zufi;
 
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import de.ozgcloud.eingang.Application;
-import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcOrganisationsEinheitGetRequest;
+import de.ozgcloud.eingang.router.errorhandling.MultipleOrganisationsEinheitenException;
+import de.ozgcloud.eingang.router.errorhandling.UnknownOrganisationseinheitException;
+import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcGetByOrganisationsEinheitIdRequest;
+import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcGetByOrganisationsEinheitIdResponse;
+import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcOrganisationsEinheit;
 import de.ozgcloud.zufi.grpc.organisationseinheit.OrganisationsEinheitServiceGrpc.OrganisationsEinheitServiceBlockingStub;
+import lombok.RequiredArgsConstructor;
 import net.devh.boot.grpc.client.inject.GrpcClient;
 
 @Service
+@RequiredArgsConstructor
 class OrganisationsEinheitRemoteService {
 
 	@GrpcClient(Application.ZUFI_MANAGER_GRPC_CLIENT)
-	private OrganisationsEinheitServiceBlockingStub serviceStub;
-	@Autowired
-	private OrganisationsEinheitMapper mapper;
+	private final OrganisationsEinheitServiceBlockingStub serviceStub;
+	private final OrganisationsEinheitMapper mapper;
 
-	public OrganisationsEinheit getById(String id) {
-		var response = serviceStub.getById(GrpcOrganisationsEinheitGetRequest.newBuilder().setId(id).build());
+	public OrganisationsEinheit getByOrganisationEinheitId(String id) {
+		var response = serviceStub
+				.getByOrganisationsEinheitId(GrpcGetByOrganisationsEinheitIdRequest.newBuilder().setOrganisationsEinheitId(id).build());
+		verifyResponse(id, response);
+		return mapper.fromGrpc(getOrganisationEinheit(response));
+	}
+
+	void verifyResponse(String id, GrpcGetByOrganisationsEinheitIdResponse response) {
+		if (response.getOrganisationsEinheitenCount() > 1) {
+			throw new MultipleOrganisationsEinheitenException(id);
+		}
+		if (response.getOrganisationsEinheitenCount() == 0) {
+			throw new UnknownOrganisationseinheitException();
+		}
+	}
 
-		return mapper.fromGrpc(response.getOrganisationsEinheit());
+	private GrpcOrganisationsEinheit getOrganisationEinheit(GrpcGetByOrganisationsEinheitIdResponse response) {
+		return response.getOrganisationsEinheitenList().getFirst();
 	}
 }
diff --git a/router/src/main/java/de/ozgcloud/eingang/common/zufi/XzufiId.java b/router/src/main/java/de/ozgcloud/eingang/common/zufi/XzufiId.java
new file mode 100644
index 0000000000000000000000000000000000000000..ff731658b7be8e9afbf001627923667b48ec49ab
--- /dev/null
+++ b/router/src/main/java/de/ozgcloud/eingang/common/zufi/XzufiId.java
@@ -0,0 +1,13 @@
+package de.ozgcloud.eingang.common.zufi;
+
+import lombok.Builder;
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+
+@Builder
+@Getter
+@EqualsAndHashCode
+public class XzufiId {
+	private String id;
+	private String schemeAgencyId;
+}
\ No newline at end of file
diff --git a/router/src/main/java/de/ozgcloud/eingang/common/zufi/ZufiService.java b/router/src/main/java/de/ozgcloud/eingang/common/zufi/ZufiService.java
index 96e89340a06760396b0bf426249e8c0bcae2d6c6..c015f0e103235651de1c9481edcad4829711f60e 100644
--- a/router/src/main/java/de/ozgcloud/eingang/common/zufi/ZufiService.java
+++ b/router/src/main/java/de/ozgcloud/eingang/common/zufi/ZufiService.java
@@ -34,6 +34,6 @@ public class ZufiService {
 	private final OrganisationsEinheitRemoteService remoteService;
 
 	public String getVorgangManagerUrl(String organisationsEinheitId) {
-		return remoteService.getById(organisationsEinheitId).getVorgangManagerAddress();
+		return remoteService.getByOrganisationEinheitId(organisationsEinheitId).getVorgangManagerAddress();
 	}
 }
\ No newline at end of file
diff --git a/router/src/main/java/de/ozgcloud/eingang/router/errorhandling/MultipleOrganisationsEinheitenException.java b/router/src/main/java/de/ozgcloud/eingang/router/errorhandling/MultipleOrganisationsEinheitenException.java
new file mode 100644
index 0000000000000000000000000000000000000000..2228d9209d07685f4fd31300719dc6c3ec21f579
--- /dev/null
+++ b/router/src/main/java/de/ozgcloud/eingang/router/errorhandling/MultipleOrganisationsEinheitenException.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2025 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.eingang.router.errorhandling;
+
+public class MultipleOrganisationsEinheitenException extends RuntimeException {
+
+	public MultipleOrganisationsEinheitenException(String organisationEinheitId) {
+		super("Multiple Organisationseinheiten with Id %s found!".formatted(organisationEinheitId));
+	}
+
+}
diff --git a/router/src/test/java/de/ozgcloud/eingang/common/zufi/GrpcGetByOrganisationsEinheitIdRequestTestFactory.java b/router/src/test/java/de/ozgcloud/eingang/common/zufi/GrpcGetByOrganisationsEinheitIdRequestTestFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..234b90f187e53068fc0973ba4ec93b6978fc7715
--- /dev/null
+++ b/router/src/test/java/de/ozgcloud/eingang/common/zufi/GrpcGetByOrganisationsEinheitIdRequestTestFactory.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2025 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.eingang.common.zufi;
+
+import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcGetByOrganisationsEinheitIdRequest;
+
+public class GrpcGetByOrganisationsEinheitIdRequestTestFactory {
+
+	private static final String ORGANISATION_EINHEIT_ID = OrganisationsEinheitTestFactory.ID;
+
+	public static GrpcGetByOrganisationsEinheitIdRequest create() {
+		return createBuilder().build();
+	}
+
+	public static GrpcGetByOrganisationsEinheitIdRequest.Builder createBuilder() {
+		return GrpcGetByOrganisationsEinheitIdRequest.newBuilder().setOrganisationsEinheitId(ORGANISATION_EINHEIT_ID);
+	}
+}
diff --git a/router/src/test/java/de/ozgcloud/eingang/common/zufi/GrpcGetByOrganisationsEinheitIdResponseTestFactory.java b/router/src/test/java/de/ozgcloud/eingang/common/zufi/GrpcGetByOrganisationsEinheitIdResponseTestFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..df5cfb82259d87d33ae0dafa7188c64559d327fa
--- /dev/null
+++ b/router/src/test/java/de/ozgcloud/eingang/common/zufi/GrpcGetByOrganisationsEinheitIdResponseTestFactory.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2025 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.eingang.common.zufi;
+
+import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcGetByOrganisationsEinheitIdResponse;
+import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcOrganisationsEinheit;
+
+public class GrpcGetByOrganisationsEinheitIdResponseTestFactory {
+
+	public static final GrpcOrganisationsEinheit ORGANISATIONS_EINHEIT = GrpcOrganisationsEinheitTestFactory.create();
+
+	public static GrpcGetByOrganisationsEinheitIdResponse create() {
+		return createBuilder().build();
+	}
+
+	public static GrpcGetByOrganisationsEinheitIdResponse.Builder createBuilder() {
+		return GrpcGetByOrganisationsEinheitIdResponse.newBuilder()
+				.addOrganisationsEinheiten(ORGANISATIONS_EINHEIT);
+	}
+}
\ No newline at end of file
diff --git a/router/src/test/java/de/ozgcloud/eingang/common/zufi/GrpcOrganisationsEinheitTestFactory.java b/router/src/test/java/de/ozgcloud/eingang/common/zufi/GrpcOrganisationsEinheitTestFactory.java
index c516ccf4d51499a0ee35a31f96bfb6d31074008b..e25de96188593babe78ff89a29f4d44857f0abf6 100644
--- a/router/src/test/java/de/ozgcloud/eingang/common/zufi/GrpcOrganisationsEinheitTestFactory.java
+++ b/router/src/test/java/de/ozgcloud/eingang/common/zufi/GrpcOrganisationsEinheitTestFactory.java
@@ -24,18 +24,28 @@
 package de.ozgcloud.eingang.common.zufi;
 
 import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcOrganisationsEinheit;
+import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcOrganisationsEinheit.Builder;
+import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcXzufiId;
 
 public class GrpcOrganisationsEinheitTestFactory {
 
+	public static final String ID = OrganisationsEinheitTestFactory.ID;
+	public static final GrpcXzufiId XZUFI_ID = GrpcXzufiIdTestFactory.create();
+	public static final String NAME = OrganisationsEinheitTestFactory.NAME;
+	public static final String SYNONYME = OrganisationsEinheitTestFactory.SYNONYME;
+	public static final String VORGANG_MANAGER_ADDRESS = OrganisationsEinheitTestFactory.VORGANG_MANAGER_ADDRESS;
+
 	public static GrpcOrganisationsEinheit create() {
 		return createBuilder().build();
 	}
 
-	public static GrpcOrganisationsEinheit.Builder createBuilder() {
+	public static Builder createBuilder() {
 		return GrpcOrganisationsEinheit.newBuilder()
-				.setId(OrganisationsEinheitTestFactory.ID)
-				.setName(OrganisationsEinheitTestFactory.NAME)
-				.setSynonyme(OrganisationsEinheitTestFactory.SYNONYME)
-				.setVorgangManagerAddress(OrganisationsEinheitTestFactory.VORGANG_MANAGER_ADDRESS);
+				.setId(ID)
+				.setName(NAME)
+				.setSynonyme(SYNONYME)
+				.setVorgangManagerAddress(VORGANG_MANAGER_ADDRESS)
+				.setXzufiId(XZUFI_ID)
+				.setSynonyme(SYNONYME);
 	}
 }
\ No newline at end of file
diff --git a/router/src/test/java/de/ozgcloud/eingang/common/zufi/GrpcXzufiIdTestFactory.java b/router/src/test/java/de/ozgcloud/eingang/common/zufi/GrpcXzufiIdTestFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..99c8dc0cad1529089e3f0825c0c9a2beda008696
--- /dev/null
+++ b/router/src/test/java/de/ozgcloud/eingang/common/zufi/GrpcXzufiIdTestFactory.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2025 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.eingang.common.zufi;
+
+import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcXzufiId;
+import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcXzufiId.Builder;
+
+public class GrpcXzufiIdTestFactory {
+	public static final String ORGANISATIONS_EINHEIT_ID = XzufiIdTestFactory.ID;
+	public static final String SCHEME_AGENCY_ID = XzufiIdTestFactory.SCHEME_AGENCY_ID;
+
+	public static GrpcXzufiId create() {
+		return createBuilder(ORGANISATIONS_EINHEIT_ID, SCHEME_AGENCY_ID).build();
+	}
+
+	public static GrpcXzufiId create(String id, String schemeAgencyId) {
+		return createBuilder(id, schemeAgencyId).build();
+	}
+
+	public static Builder createBuilder(String id, String schemeAgencyId) {
+		return GrpcXzufiId.newBuilder().setId(id).setSchemeAgencyId(schemeAgencyId);
+	}
+}
diff --git a/router/src/test/java/de/ozgcloud/eingang/common/zufi/OrganisationsEinheitMapperTest.java b/router/src/test/java/de/ozgcloud/eingang/common/zufi/OrganisationsEinheitMapperTest.java
index 2e4e596a6fa765f98904d9826c73910c6b1c4d70..7cc8008dbbed53a8f7ee2404aa66fab17c35f00a 100644
--- a/router/src/test/java/de/ozgcloud/eingang/common/zufi/OrganisationsEinheitMapperTest.java
+++ b/router/src/test/java/de/ozgcloud/eingang/common/zufi/OrganisationsEinheitMapperTest.java
@@ -28,8 +28,6 @@ import static org.assertj.core.api.Assertions.*;
 import org.junit.jupiter.api.Test;
 import org.mapstruct.factory.Mappers;
 
-import de.ozgcloud.eingang.common.zufi.OrganisationsEinheitMapper;
-
 class OrganisationsEinheitMapperTest {
 
 	private final OrganisationsEinheitMapper mapper = Mappers.getMapper(OrganisationsEinheitMapper.class);
diff --git a/router/src/test/java/de/ozgcloud/eingang/common/zufi/OrganisationsEinheitRemoteServiceTest.java b/router/src/test/java/de/ozgcloud/eingang/common/zufi/OrganisationsEinheitRemoteServiceTest.java
index 6c25468db67f5f05a1287c285b204d6d59f948d1..52004608e6e3306a36068f3f66323c1a077f15d6 100644
--- a/router/src/test/java/de/ozgcloud/eingang/common/zufi/OrganisationsEinheitRemoteServiceTest.java
+++ b/router/src/test/java/de/ozgcloud/eingang/common/zufi/OrganisationsEinheitRemoteServiceTest.java
@@ -24,70 +24,119 @@
 package de.ozgcloud.eingang.common.zufi;
 
 import static org.assertj.core.api.Assertions.*;
+import static org.junit.jupiter.api.Assertions.*;
 import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
 
 import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Captor;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
+import org.mockito.Spy;
 
-import de.ozgcloud.eingang.common.zufi.OrganisationsEinheit;
-import de.ozgcloud.eingang.common.zufi.OrganisationsEinheitMapper;
-import de.ozgcloud.eingang.common.zufi.OrganisationsEinheitRemoteService;
-import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcOrganisationsEinheitGetRequest;
-import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcOrganisationsEinheitGetResponse;
+import de.ozgcloud.eingang.router.errorhandling.MultipleOrganisationsEinheitenException;
+import de.ozgcloud.eingang.router.errorhandling.UnknownOrganisationseinheitException;
+import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcGetByOrganisationsEinheitIdResponse;
 import de.ozgcloud.zufi.grpc.organisationseinheit.OrganisationsEinheitServiceGrpc.OrganisationsEinheitServiceBlockingStub;
 
 class OrganisationsEinheitRemoteServiceTest {
 
 	@InjectMocks
+	@Spy
 	private OrganisationsEinheitRemoteService service;
 	@Mock
 	private OrganisationsEinheitServiceBlockingStub stub;
 	@Mock
 	private OrganisationsEinheitMapper mapper;
 
-	@DisplayName("Get by id")
 	@Nested
-	class TestGetById {
+	class TestGetByOrganisationEinheitId {
 
-		private final GrpcOrganisationsEinheitGetResponse response = GrpcOrganisationsEinheitGetResponseTestFactory.create();
+		private final GrpcGetByOrganisationsEinheitIdResponse response = GrpcGetByOrganisationsEinheitIdResponseTestFactory.create();
 		private final OrganisationsEinheit mappedOrganisationsEinheit = OrganisationsEinheitTestFactory.create();
 
 		@BeforeEach
 		void mock() {
-			when(stub.getById(any())).thenReturn(response);
+			when(stub.getByOrganisationsEinheitId(any())).thenReturn(response);
 			when(mapper.fromGrpc(any())).thenReturn(mappedOrganisationsEinheit);
+			doNothing().when(service).verifyResponse(any(), any());
 		}
 
-		@Captor
-		private ArgumentCaptor<GrpcOrganisationsEinheitGetRequest> requestCaptor;
-
 		@Test
 		void shouldCallRemoteService() {
-			service.getById(OrganisationsEinheitTestFactory.ID);
+			service.getByOrganisationEinheitId(OrganisationsEinheitTestFactory.ID);
+
+			verify(stub).getByOrganisationsEinheitId(GrpcGetByOrganisationsEinheitIdRequestTestFactory.create());
+		}
 
-			verify(stub).getById(requestCaptor.capture());
-			assertThat(requestCaptor.getValue().getId()).isEqualTo(OrganisationsEinheitTestFactory.ID);
+		@Test
+		void shouldCallVerifyResponse() {
+			service.getByOrganisationEinheitId(OrganisationsEinheitTestFactory.ID);
+
+			verify(service).verifyResponse(OrganisationsEinheitTestFactory.ID, response);
 		}
 
 		@Test
-		void shouldCallMapper() {
-			service.getById(OrganisationsEinheitTestFactory.ID);
+		void shouldCallMapperAfterVerifyingResponse() {
+			var order = inOrder(service, mapper);
+
+			service.getByOrganisationEinheitId(OrganisationsEinheitTestFactory.ID);
 
-			verify(mapper).fromGrpc(response.getOrganisationsEinheit());
+			order.verify(service).verifyResponse(any(), any());
+			order.verify(mapper).fromGrpc(GrpcGetByOrganisationsEinheitIdResponseTestFactory.ORGANISATIONS_EINHEIT);
 		}
 
 		@Test
-		void shouldReturnValue() {
-			var organisationsEinheit = service.getById(OrganisationsEinheitTestFactory.ID);
+		void shouldReturnMappedOrganisationsEinheit() {
+			var organisationsEinheit = service.getByOrganisationEinheitId(OrganisationsEinheitTestFactory.ID);
 
 			assertThat(organisationsEinheit).isEqualTo(mappedOrganisationsEinheit);
 		}
 	}
-}
+
+	@Nested
+	class TestVerifyResponse {
+
+		@Nested
+		class TestOnMultipleOrganisationEinheitFound {
+
+			@Test
+			void shouldThrowMultipleOrganisationsEinheitenException() {
+				var response = GrpcGetByOrganisationsEinheitIdResponseTestFactory.createBuilder()
+						.addOrganisationsEinheiten(GrpcOrganisationsEinheitTestFactory.create())
+						.build();
+
+				assertThatExceptionOfType(MultipleOrganisationsEinheitenException.class)
+						.isThrownBy(() -> service.verifyResponse(OrganisationsEinheitTestFactory.ID, response));
+
+			}
+		}
+
+		@Nested
+		class TestOnNoOrganisationEinheitFound {
+
+			@Test
+			void shouldThrowUnknownOrganisationseinheitException() {
+				var response = GrpcGetByOrganisationsEinheitIdResponseTestFactory.createBuilder()
+						.clearOrganisationsEinheiten()
+						.build();
+
+				assertThatExceptionOfType(UnknownOrganisationseinheitException.class)
+						.isThrownBy(() -> service.verifyResponse(OrganisationsEinheitTestFactory.ID, response));
+
+			}
+		}
+
+		@Nested
+		class TestOnSingleOrganisationEinheitFound {
+
+			@Test
+			void shouldNotThrowException() {
+				var response = GrpcGetByOrganisationsEinheitIdResponseTestFactory.create();
+
+				assertDoesNotThrow(() -> service.verifyResponse(OrganisationsEinheitTestFactory.ID, response));
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/router/src/test/java/de/ozgcloud/eingang/common/zufi/OrganisationsEinheitTestFactory.java b/router/src/test/java/de/ozgcloud/eingang/common/zufi/OrganisationsEinheitTestFactory.java
index 060811d88023c66ed6cf1f389f28d64c6a27d3bd..cc14d84a5b01e9dd91c30e6736e7e823a0a89c4e 100644
--- a/router/src/test/java/de/ozgcloud/eingang/common/zufi/OrganisationsEinheitTestFactory.java
+++ b/router/src/test/java/de/ozgcloud/eingang/common/zufi/OrganisationsEinheitTestFactory.java
@@ -27,14 +27,13 @@ import java.util.UUID;
 
 import com.thedeanda.lorem.LoremIpsum;
 
-import de.ozgcloud.eingang.common.zufi.OrganisationsEinheit;
-
 public class OrganisationsEinheitTestFactory {
 
-	public final static String ID = UUID.randomUUID().toString();
-	public final static String NAME = LoremIpsum.getInstance().getName();
-	public final static String SYNONYME = LoremIpsum.getInstance().getName();
-	public final static String VORGANG_MANAGER_ADDRESS = LoremIpsum.getInstance().getUrl();
+	public static final XzufiId XZUFI_ID = XzufiIdTestFactory.create();
+	public static final String ID = UUID.randomUUID().toString();
+	public static final String NAME = LoremIpsum.getInstance().getName();
+	public static final String SYNONYME = LoremIpsum.getInstance().getName();
+	public static final String VORGANG_MANAGER_ADDRESS = LoremIpsum.getInstance().getUrl();
 
 	public static OrganisationsEinheit create() {
 		return createBuilder().build();
@@ -45,6 +44,7 @@ public class OrganisationsEinheitTestFactory {
 				.id(ID)
 				.name(NAME)
 				.synonyme(SYNONYME)
-				.vorgangManagerAddress(VORGANG_MANAGER_ADDRESS);
+				.vorgangManagerAddress(VORGANG_MANAGER_ADDRESS)
+				.xzufiId(XZUFI_ID);
 	}
 }
\ No newline at end of file
diff --git a/router/src/test/java/de/ozgcloud/eingang/common/zufi/GrpcOrganisationsEinheitGetResponseTestFactory.java b/router/src/test/java/de/ozgcloud/eingang/common/zufi/XzufiIdTestFactory.java
similarity index 64%
rename from router/src/test/java/de/ozgcloud/eingang/common/zufi/GrpcOrganisationsEinheitGetResponseTestFactory.java
rename to router/src/test/java/de/ozgcloud/eingang/common/zufi/XzufiIdTestFactory.java
index d74aa9d398b0c800acfa2009da880913d5eb0983..7aa7d29cbe9a44cc745e7d4219d74ad57e6ef9fb 100644
--- a/router/src/test/java/de/ozgcloud/eingang/common/zufi/GrpcOrganisationsEinheitGetResponseTestFactory.java
+++ b/router/src/test/java/de/ozgcloud/eingang/common/zufi/XzufiIdTestFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
+ * Copyright (C) 2025 Das Land Schleswig-Holstein vertreten durch den
  * Ministerpräsidenten des Landes Schleswig-Holstein
  * Staatskanzlei
  * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
@@ -23,16 +23,26 @@
  */
 package de.ozgcloud.eingang.common.zufi;
 
-import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcOrganisationsEinheitGetResponse;
+import java.util.UUID;
 
-public class GrpcOrganisationsEinheitGetResponseTestFactory {
+public class XzufiIdTestFactory {
 
-	public static GrpcOrganisationsEinheitGetResponse create() {
+	public static final String ID = UUID.randomUUID().toString();
+	public static final String SCHEME_AGENCY_ID = UUID.randomUUID().toString();
+
+	public static XzufiId create() {
 		return createBuilder().build();
 	}
 
-	public static GrpcOrganisationsEinheitGetResponse.Builder createBuilder() {
-		return GrpcOrganisationsEinheitGetResponse.newBuilder()
-				.setOrganisationsEinheit(GrpcOrganisationsEinheitTestFactory.create());
+	public static XzufiId createWithId(String id) {
+		return createBuilder()
+				.id(id)
+				.build();
+	}
+
+	public static XzufiId.XzufiIdBuilder createBuilder() {
+		return XzufiId.builder()
+				.id(ID)
+				.schemeAgencyId(SCHEME_AGENCY_ID);
 	}
-}
\ No newline at end of file
+}
diff --git a/router/src/test/java/de/ozgcloud/eingang/common/zufi/ZufiServiceTest.java b/router/src/test/java/de/ozgcloud/eingang/common/zufi/ZufiServiceTest.java
index c89a22966a1fd9a17d62520ebdbb95baf455f1eb..5348135ee17331be2a0c0694e73527e691832317 100644
--- a/router/src/test/java/de/ozgcloud/eingang/common/zufi/ZufiServiceTest.java
+++ b/router/src/test/java/de/ozgcloud/eingang/common/zufi/ZufiServiceTest.java
@@ -49,14 +49,14 @@ class ZufiServiceTest {
 
 		@BeforeEach
 		void mock() {
-			when(remoteService.getById(any())).thenReturn(organisationsEinheit);
+			when(remoteService.getByOrganisationEinheitId(any())).thenReturn(organisationsEinheit);
 		}
 
 		@Test
 		void shouldCallRemoteService() {
 			service.getVorgangManagerUrl(OrganisationsEinheitTestFactory.ID);
 
-			verify(remoteService).getById(OrganisationsEinheitTestFactory.ID);
+			verify(remoteService).getByOrganisationEinheitId(OrganisationsEinheitTestFactory.ID);
 		}
 
 		@Test