diff --git a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragITCase.java b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragITCase.java
index 6c2281bd2b68f3051229e6c6be408b109f9b06c8..c1ff751f7c17ff4a56869bdda7a7e842a491e2f0 100644
--- a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragITCase.java
+++ b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragITCase.java
@@ -1,5 +1,6 @@
 package de.ozgcloud.eingang.semantik.formbased.mantelantrag;
 
+import static de.ozgcloud.eingang.common.formdata.FormDataTestFactory.*;
 import static org.assertj.core.api.Assertions.*;
 import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
@@ -7,78 +8,157 @@ import static org.mockito.Mockito.*;
 import java.io.File;
 import java.nio.file.Files;
 import java.nio.file.Path;
+import java.util.Collections;
 import java.util.List;
+import java.util.Optional;
 
+import org.junit.jupiter.api.BeforeAll;
 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.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.mock.mockito.MockBean;
 import org.springframework.boot.test.mock.mockito.SpyBean;
 import org.springframework.test.context.ActiveProfiles;
+import org.springframework.test.context.DynamicPropertyRegistry;
+import org.springframework.test.context.DynamicPropertySource;
+import org.springframework.test.context.TestPropertySource;
 
 import de.ozgcloud.common.binaryfile.TempFileUtils;
 import de.ozgcloud.common.test.TestUtils;
 import de.ozgcloud.eingang.Application;
 import de.ozgcloud.eingang.common.formdata.FormData;
 import de.ozgcloud.eingang.common.formdata.IncomingFileTestFactory;
-import de.ozgcloud.eingang.router.VorgangService;
+import de.ozgcloud.eingang.router.VorgangRemoteService;
 import de.ozgcloud.eingang.semantik.SemantikAdapter;
 import de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsEngineBasedAdapterITCase;
 import lombok.SneakyThrows;
 
 @ActiveProfiles({ "local", "itcase" })
-@SpringBootTest(classes = Application.class, properties = { "ozgcloud.xta.identifiers=afmsh:ozg-cloud-utopia-test" })
+@SpringBootTest(classes = Application.class)
 public class MantelantragITCase {
 
 	private static final String FILE_NAME_XDOMEA = "mantelantrag/4620-EH6C_b3c9168a-6ae9-4361-8b2f-6837bb341021_Geschaeftsgang.Geschaeftsgang.0201.xml";
 	private static final String FILE_NAME_MANTELANTRAG = "mantelantrag/4620-EH6C_7d703670-15b6-42b2-8cd1-88a7e4c494b9_Antrag_Max_Mustermann_SGBXII.xml";
 
 	@MockBean
-	VorgangService vorgangService;
+	VorgangRemoteService vorgangRemoteService;
 
 	@SpyBean
 	SemantikAdapter semantikAdapter;
 
+	private FormData formData;
+
+	@Captor
+	ArgumentCaptor<FormData> formDataCaptor;
+
+	@Captor
+	ArgumentCaptor<Optional<String>> oeIdCaptor;
+
+	@Autowired
+	MantelantragZustaendigeStelleMapper mantelantragZustaendigeStelleMapper;
+
+	static List<String> XTA_IDENTIFIERS = Collections.emptyList();
+
+	@BeforeEach
+	void mock() {
+		clearInvocations(vorgangRemoteService);
+		doReturn(VORGANG_ID).when(vorgangRemoteService).createVorgang(any(FormData.class), any());
+		formData = prepareTestData();
+		mantelantragZustaendigeStelleMapper.init();
+	}
+
+	@DynamicPropertySource
+	static void dynamicProperties(DynamicPropertyRegistry registry) {
+		registry.add("ozgcloud.xta.identifiers", () -> XTA_IDENTIFIERS);
+	}
+
+	@DisplayName("with no matching zusstaendige stelle")
 	@Nested
-	class TestZustaendigeStelle {
+	class TestWithNoMatchingZusstaendigeStelle {
 
-		private FormData formData;
+		@BeforeAll
+		static void setup() {
+			XTA_IDENTIFIERS = List.of("afmsh:unknown");
+		}
 
-		@Captor
-		ArgumentCaptor<FormData> formDataCaptor;
+		@DisplayName("should create one vorgang with no matching zustaendigeStelle")
+		@Test
+		void shouldCreateOneVorgangWithNoMatchingZustaendigeStelle() {
+			semantikAdapter.processFormData(formData);
 
-		private static final String VORGANG_ID_1 = "vorgangId1";
-		private static final List<String> VORGANG_IDS = List.of(VORGANG_ID_1, "vorgangId2");
+			verify(vorgangRemoteService, times(1)).createVorgang(formDataCaptor.capture(), oeIdCaptor.capture());
+			assertThat(oeIdCaptor.getValue()).isEmpty();
+		}
+	}
 
+	@DisplayName("with one matching zustaendige stelle")
+	@Nested
+	@TestPropertySource(properties = "ozgcloud.xta.identifiers=afmsh:ozg-cloud-utopia-test")
+	class TestWithOneMatchingZustaendigeStelle {
+		@BeforeAll
+		static void setup() {
+			XTA_IDENTIFIERS = List.of("afmsh:ozg-cloud-utopia-test");
+		}
 
-		@BeforeEach
-		void mock() {
-			doReturn(VORGANG_IDS).when(vorgangService).createVorgangs(any(FormData.class));
-			formData = prepareTestData();
+		@DisplayName("should create one vorgang with no matching zustaendigeStelle")
+		@Test
+		void shouldCreateOneVorgangWithNoMatchingZustaendigeStelle() {
+			semantikAdapter.processFormData(formData);
+
+			verify(vorgangRemoteService, times(1)).createVorgang(formDataCaptor.capture(), oeIdCaptor.capture());
+			assertThat(oeIdCaptor.getValue()).contains("123");
+		}
+	}
+
+	@DisplayName("with two matching zustaendige stelle")
+	@Nested
+	class TestWithTwoMatchingZustaendigeStelle {
+
+		@BeforeAll
+		static void setup() {
+			XTA_IDENTIFIERS = List.of("afmsh:ozg-cloud-utopia-test", "gae:ozg-cloud-itcase-test");
 		}
 
-		@DisplayName("should return first vorgangId")
+		@DisplayName("should create two vorangs with partially matching zustaendigeStelle")
 		@Test
-		void shouldReturnFirstVorgangId() {
-			var result = semantikAdapter.processFormData(formData);
+		void shouldCreateTwoVorangsWithPartiallyMatchingZustaendigeStelle() {
+			semantikAdapter.processFormData(formData);
 
-			assertThat(result).isEqualTo(VORGANG_ID_1);
+			verify(vorgangRemoteService, times(2)).createVorgang(formDataCaptor.capture(), oeIdCaptor.capture());
+			assertThat(oeIdCaptor.getAllValues()).contains(Optional.of("123"), Optional.of("444"));
 		}
+	}
 
+	@DisplayName("with three mathcing zustaendige stelle")
+	@Nested
+	class TestWithThreeMathcingZustaendigeStelle {
 
+		@BeforeAll
+		static void setup() {
+			XTA_IDENTIFIERS = List.of("afmsh:ozg-cloud-utopia-test", "gae:ozg-cloud-itcase-test", "afmsh:ozg-cloud-bad-segeberg-kreis");
+		}
+
+		@DisplayName("should create three vorgangs with matching zustaendigeStelle")
 		@Test
-		void zustaendigeStelleIsUtopia() {
+		void shouldCreateThreeVorgangsWithMatchingZustaendigeStelle() {
 			semantikAdapter.processFormData(formData);
 
-			verify(vorgangService).createVorgangs(formDataCaptor.capture());
-			var firstZustaendigeStelle = formDataCaptor.getValue().getZustaendigeStelles().getFirst();
-			assertThat(firstZustaendigeStelle.getOrganisationseinheitenId()).isEqualTo("123");
+			verify(vorgangRemoteService, times(3)).createVorgang(formDataCaptor.capture(), oeIdCaptor.capture());
+			assertThat(oeIdCaptor.getAllValues()).contains(Optional.of("123"), Optional.of("321"), Optional.of("444"));
 		}
+	}
+
+	@DisplayName("should return first vorgangId")
+	@Test
+	void shouldReturnFirstVorgangId() {
+		var result = semantikAdapter.processFormData(formData);
 
+		assertThat(result).isEqualTo(VORGANG_ID);
 	}
 
 	private FormData prepareTestData() {
diff --git a/semantik-adapter/src/test/resources/mantelantrag/4620-EH6C_7d703670-15b6-42b2-8cd1-88a7e4c494b9_Antrag_Max_Mustermann_SGBXII.xml b/semantik-adapter/src/test/resources/mantelantrag/4620-EH6C_7d703670-15b6-42b2-8cd1-88a7e4c494b9_Antrag_Max_Mustermann_SGBXII.xml
index 6c7c4e94203d54e765188787a2ef449b7dfcda02..3872cdb8d4bbff8112620fdc044f0bc70aeb6468 100644
--- a/semantik-adapter/src/test/resources/mantelantrag/4620-EH6C_7d703670-15b6-42b2-8cd1-88a7e4c494b9_Antrag_Max_Mustermann_SGBXII.xml
+++ b/semantik-adapter/src/test/resources/mantelantrag/4620-EH6C_7d703670-15b6-42b2-8cd1-88a7e4c494b9_Antrag_Max_Mustermann_SGBXII.xml
@@ -83,7 +83,7 @@
     <zustellung_nachrichtenbroker2>afmsh:ozg-cloud-bad-segeberg-kreis</zustellung_nachrichtenbroker2>
     <zustellung_email_ln2/>
     <zustellung_webservice2/>
-    <kontaktsystem_oeid3/>
+    <kontaktsystem_oeid3>444</kontaktsystem_oeid3>
     <OrganisationseinheitenBEZEICHNUNG3/>
     <zust_strasse3/>
     <zust_hausnummer3/>
@@ -93,7 +93,7 @@
     <zust_telefonnummer3/>
     <zust_faxnummer3/>
     <zust_emailadresse3/>
-    <zustellung_nachrichtenbroker3/>
+    <zustellung_nachrichtenbroker3>gae:ozg-cloud-itcase-test</zustellung_nachrichtenbroker3>>
     <zustellung_email_ln3/>
     <zustellung_webservice3/>
     <grund>Hilfe</grund>