diff --git a/router/src/main/java/de/ozgcloud/eingang/router/VorgangService.java b/router/src/main/java/de/ozgcloud/eingang/router/VorgangService.java
index ca9264cd8aee24c77e0b46ff92dc5c9ced1ade56..91d203b2fd562200dc9f9df7990e63d2dadaac99 100644
--- a/router/src/main/java/de/ozgcloud/eingang/router/VorgangService.java
+++ b/router/src/main/java/de/ozgcloud/eingang/router/VorgangService.java
@@ -40,12 +40,12 @@ public class VorgangService {
 
 	private final VorgangRemoteService remoteService;
 
-	public List<String> createVorgangs(FormData formData) {
+	public String createVorgang(FormData formData) {
 		var preparedFormData = preserveConsistency(formData);
 		var organisationseinheitIds = getOrganisationsEinheitIds(formData);
 		return organisationseinheitIds.isEmpty()
-				? List.of(createVorgangOnMissingZustaendigeStelle(preparedFormData))
-				: createMultipleVorgangs(preparedFormData, organisationseinheitIds);
+				? createVorgangOnMissingZustaendigeStelle(preparedFormData)
+				: createMultipleVorgangs(preparedFormData, organisationseinheitIds).getFirst();
 	}
 
 	String createVorgangOnMissingZustaendigeStelle(FormData formData) {
diff --git a/router/src/test/java/de/ozgcloud/eingang/router/VorgangServiceTest.java b/router/src/test/java/de/ozgcloud/eingang/router/VorgangServiceTest.java
index c25e940c72f3960c24137a48911fec615f85042d..e3b420185c604cac46ab110ca801bac8cae7f5bc 100644
--- a/router/src/test/java/de/ozgcloud/eingang/router/VorgangServiceTest.java
+++ b/router/src/test/java/de/ozgcloud/eingang/router/VorgangServiceTest.java
@@ -57,58 +57,107 @@ class VorgangServiceTest {
 	@Mock
 	private VorgangRemoteService remoteService;
 
-	private static final String VORGANG_ID_2 = "vorgangId2";
 	private static final String ORGANISATIONSEINHEIT_ID_2 = "08150816";
 
-	public static final List<String> ORGANISATIONSEINHEIT_IDS = List.of(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID,
-			ORGANISATIONSEINHEIT_ID_2);
-
-	private FormData formData;
-	private FormData preservedFormData;
-
-	@BeforeEach
-	void setup() {
-		formData = FormDataTestFactory.create();
-		preservedFormData = FormDataTestFactory.createBuilder()
-				.zustaendigeStelle(ZustaendigeStelleTestFactory.createBuilder()
-						.organisationseinheitenId(ORGANISATIONSEINHEIT_ID_2)
-						.build())
-				.build();
-	}
-
-	@DisplayName("Create vorgangs")
+	@DisplayName("Create vorgang")
 	@Nested
 	class TestCreateVorgangs {
+		private FormData formData;
+		private FormData preservedFormData;
 
 		@BeforeEach
-		void mockEingangMapper() {
-			doReturn(preservedFormData).when(service).preserveConsistency(formData);
+		void setup() {
+			formData = FormDataTestFactory.create();
+			preservedFormData = FormDataTestFactory.createBuilder()
+					.zustaendigeStelle(ZustaendigeStelleTestFactory.createBuilder()
+							.organisationseinheitenId(ORGANISATIONSEINHEIT_ID_2)
+							.build())
+					.build();
+			doReturn(preservedFormData).when(service).preserveConsistency(any());
+		}
+
+		@DisplayName("should call preserve consistency")
+		@Test
+		void shouldCallPreserveConsistency() {
+			mockOrganisationseinheitId();
+
+			createVorgang();
+
+			verify(service).preserveConsistency(eq(formData));
+		}
+
+		@DisplayName("should call get organisationseinheit ids")
+		@Test
+		void shouldCallGetOrganisationseinheitIds() {
+			mockOrganisationseinheitId();
+
+			createVorgang();
+
+			verify(service).getOrganisationsEinheitIds(eq(formData));
+		}
+
+		@DisplayName("should call create multiple vorgangs")
+		@Test
+		void shouldCallCreateMultipleVorgangs() {
+			var organisationseinheitIds = List.of(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID, ORGANISATIONSEINHEIT_ID_2);
+			mockOrganisationseinheitIds(organisationseinheitIds);
+
+			createVorgang();
+
+			verify(service).createMultipleVorgangs(
+					eq(preservedFormData),
+					eq(organisationseinheitIds));
+		}
+
+		@DisplayName("should return first vorgang id with multiple organisationseinheits")
+		@Test
+		void shouldReturnFirstVorgangIdWithMultipleOrganisationseinheits() {
+			var organisationseinheitIds = List.of(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID, ORGANISATIONSEINHEIT_ID_2);
+			mockOrganisationseinheitIds(organisationseinheitIds);
+
+			var vorgangIds = createVorgang();
+
+			assertThat(vorgangIds).isEqualTo(VORGANG_ID);
+		}
+
+		private void mockOrganisationseinheitId() {
+			doReturn(List.of(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID)).when(service).getOrganisationsEinheitIds(any());
+			doReturn(List.of(VORGANG_ID)).when(service).createMultipleVorgangs(any(), any());
 		}
 
-		@DisplayName("should return multiple vorgang ids for each organisationseinheit")
+		private void mockOrganisationseinheitIds(List<String> organisationseinheitIds) {
+			doReturn(organisationseinheitIds).when(service)
+					.getOrganisationsEinheitIds(any());
+			doReturn(List.of(VORGANG_ID, "otherId")).when(service).createMultipleVorgangs(any(), any());
+		}
+
+		@DisplayName("should call create vorgang on missing zustaendige stelle if organisationseinheit is missing")
 		@Test
-		void shouldReturnMultipleVorgangIdsForEachOrganisationseinheit() {
-			doReturn(ORGANISATIONSEINHEIT_IDS).when(service).getOrganisationsEinheitIds(formData);
-			doReturn(List.of(VORGANG_ID, VORGANG_ID_2)).when(service).createMultipleVorgangs(preservedFormData, ORGANISATIONSEINHEIT_IDS);
+		void shouldCallCreateVorgangOnMissingZustaendigeStelleIfOrganisationseinheitIsMissing() {
+			mockMissingOrganisationseinheitIds();
 
-			var vorgangIds = createVorgangs();
+			createVorgang();
 
-			assertThat(vorgangIds).containsExactly(VORGANG_ID, VORGANG_ID_2);
+			verify(service).createVorgangOnMissingZustaendigeStelle(eq(preservedFormData));
 		}
 
 		@DisplayName("should return single vorgang id if organisationseinheit is missing")
 		@Test
 		void shouldReturnSingleVorgangIdIfOrganisationseinheitIsMissing() {
-			doReturn(emptyList()).when(service).getOrganisationsEinheitIds(formData);
-			doReturn(VORGANG_ID).when(service).createVorgangOnMissingZustaendigeStelle(preservedFormData);
+			mockMissingOrganisationseinheitIds();
 
-			var vorgangIds = createVorgangs();
+			var firstVorgangId = createVorgang();
+
+			assertThat(firstVorgangId).isEqualTo(VORGANG_ID);
+		}
 
-			assertThat(vorgangIds).containsExactly(VORGANG_ID);
+		private void mockMissingOrganisationseinheitIds() {
+			doReturn(emptyList()).when(service).getOrganisationsEinheitIds(any());
+			doReturn(VORGANG_ID).when(service).createVorgangOnMissingZustaendigeStelle(any());
 		}
 
-		private List<String> createVorgangs() {
-			return service.createVorgangs(formData);
+		private String createVorgang() {
+			return service.createVorgang(formData);
 		}
 	}
 
@@ -118,11 +167,22 @@ class VorgangServiceTest {
 		@Mock
 		private FormData formData;
 
+		@BeforeEach
+		void mock() {
+			when(remoteService.createVorgang(any(), any())).thenReturn(VORGANG_ID);
+		}
+
+		@DisplayName("should call create vorgang")
+		@Test
+		void shouldCallCreateVorgang() {
+			service.createVorgangOnMissingZustaendigeStelle(formData);
+
+			verify(remoteService).createVorgang(formData, Optional.empty());
+		}
+
 		@DisplayName("should return")
 		@Test
 		void shouldReturn() {
-			when(remoteService.createVorgang(formData, Optional.empty())).thenReturn(VORGANG_ID);
-
 			var vorgangId = service.createVorgangOnMissingZustaendigeStelle(formData);
 
 			assertThat(vorgangId).isEqualTo(VORGANG_ID);
@@ -132,24 +192,54 @@ class VorgangServiceTest {
 	@DisplayName("create multiple vorgangs")
 	@Nested
 	class TestCreateMultipleVorgangs {
+
+		private static final String VORGANG_ID_2 = "vorgangId2";
+		private static final List<String> ORGANISATIONSEINHEIT_IDS = List.of(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID,
+				ORGANISATIONSEINHEIT_ID_2);
+
 		@Mock
 		private FormData formData;
 
+		@BeforeEach
+		void mock() {
+			when(remoteService.createVorgang(any(), any()))
+					.thenReturn(VORGANG_ID)
+					.thenReturn(VORGANG_ID_2);
+		}
+
+		@DisplayName("should call create vorgang twice")
+		@Test
+		void shouldCallCreateVorgangTwice() {
+			service.createMultipleVorgangs(formData, ORGANISATIONSEINHEIT_IDS);
+
+			verify(remoteService).createVorgang(formData, Optional.of(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID));
+			verify(remoteService).createVorgang(formData, Optional.of(ORGANISATIONSEINHEIT_ID_2));
+		}
+
 		@DisplayName("should return")
 		@Test
 		void shouldReturn() {
-			when(remoteService.createVorgang(formData, Optional.of(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID))).thenReturn(VORGANG_ID);
-			when(remoteService.createVorgang(formData, Optional.of(ORGANISATIONSEINHEIT_ID_2))).thenReturn(VORGANG_ID_2);
-
 			var vorgangIds = service.createMultipleVorgangs(formData, ORGANISATIONSEINHEIT_IDS);
 
-			assertThat(vorgangIds).containsExactly(VORGANG_ID, VORGANG_ID_2);
+			assertThat(vorgangIds).containsExactlyInAnyOrder(VORGANG_ID, VORGANG_ID_2);
 		}
 	}
 
 	@DisplayName("get organisationseinheit ids")
 	@Nested
 	class TestGetOrganisationseinheitIds {
+
+		private FormData preservedFormData;
+
+		@BeforeEach
+		void mock() {
+			preservedFormData = FormDataTestFactory.createBuilder()
+					.zustaendigeStelle(ZustaendigeStelleTestFactory.createBuilder()
+							.organisationseinheitenId(ORGANISATIONSEINHEIT_ID_2)
+							.build())
+					.build();
+		}
+
 		@DisplayName("should return")
 		@Test
 		void shouldReturn() {
diff --git a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/SemantikAdapter.java b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/SemantikAdapter.java
index dba7dca209d04d01b2a244572d522c98ed51fd0b..65c69a87ebc51b3313b8b4ec84d24f7d10170cf0 100644
--- a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/SemantikAdapter.java
+++ b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/SemantikAdapter.java
@@ -34,7 +34,6 @@ import de.ozgcloud.eingang.semantik.enginebased.EngineBasedSemantikAdapter;
 import de.ozgcloud.eingang.semantik.formbased.FormBasedSemantikAdapter;
 import lombok.extern.log4j.Log4j2;
 
-
 @Log4j2
 @Service
 public class SemantikAdapter {
@@ -50,7 +49,7 @@ public class SemantikAdapter {
 		formData = parseByEngineAdapter(formData);
 		formData = parseByFormAdapter(formData);
 
-		return vorgangService.createVorgangs(formData).getFirst();
+		return vorgangService.createVorgang(formData);
 	}
 
 	private FormData parseByEngineAdapter(FormData formData) {
diff --git a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/SemantikAdapterTest.java b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/SemantikAdapterTest.java
index 5adf04373769060992244c6f13d3f9689c26201b..ea63f2379a7391af25178495e00d3af611cb04e4 100644
--- a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/SemantikAdapterTest.java
+++ b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/SemantikAdapterTest.java
@@ -99,7 +99,7 @@ class SemantikAdapterTest {
 			doReturn(List.of(engineAdapter)).when(adapter).getResponsibleEngineAdapters(formData);
 			when(engineAdapter.parseFormData(any())).thenReturn(engineAdapterResponse);
 			when(formAdapter.parseFormData(any())).thenReturn(formAdapterResponse);
-			when(vorgangService.createVorgangs(formAdapterResponse)).thenReturn(List.of(VORGANG_ID, "otherId"));
+			when(vorgangService.createVorgang(any())).thenReturn(VORGANG_ID);
 		}
 
 		@Test
@@ -127,7 +127,7 @@ class SemantikAdapterTest {
 		void shouldCallVorgangRemoteService() {
 			adapter.processFormData(formData);
 
-			verify(vorgangService).createVorgangs(formAdapterResponse);
+			verify(vorgangService).createVorgang(formAdapterResponse);
 		}
 
 		@DisplayName("should return first vorgang id")