diff --git a/bescheid-manager/pom.xml b/bescheid-manager/pom.xml
index f50fc6e49618e2f6f4857afe0d484eb5ccfc7b0a..a677b1309ab26013fa6169cd201395af48d2d4f1 100644
--- a/bescheid-manager/pom.xml
+++ b/bescheid-manager/pom.xml
@@ -18,7 +18,7 @@
 		<vorgang-manager.version>2.18.0-SNAPSHOT</vorgang-manager.version>
 		<nachrichten-manager.version>2.14.0</nachrichten-manager.version>
 		<document-manager.version>1.1.0-SNAPSHOT</document-manager.version>
-		<api-lib.version>0.13.0</api-lib.version>
+		<api-lib.version>0.14.0-SNAPSHOT</api-lib.version>
 		<spring-cloud-config-client.version>4.1.3</spring-cloud-config-client.version>
 	</properties>
 
@@ -59,6 +59,7 @@
 			<groupId>de.ozgcloud.api-lib</groupId>
 			<artifactId>api-lib-core</artifactId>
 			<version>${api-lib.version}</version>
+			<scope>runtime</scope>
 		</dependency>
 
 
diff --git a/vorgang-manager-server/pom.xml b/vorgang-manager-server/pom.xml
index 20660015582e420fcdf1646eff769f72ea6b6ef8..d83e030efed2ef379e837bfa3326142d8fefdcbd 100644
--- a/vorgang-manager-server/pom.xml
+++ b/vorgang-manager-server/pom.xml
@@ -56,7 +56,7 @@
 		<bescheid-manager.version>1.21.0-SNAPSHOT</bescheid-manager.version>
 		<processor-manager.version>0.5.0</processor-manager.version>
 		<nachrichten-manager.version>2.14.0</nachrichten-manager.version>
-		<ozgcloud-starter.version>0.14.0-SNAPSHOT</ozgcloud-starter.version>
+		<api-lib.version>0.14.0-SNAPSHOT</api-lib.version>
 		<notification-manager.version>2.12.0</notification-manager.version>
 		<collaboration-manager.version>0.5.0-SNAPSHOT</collaboration-manager.version>
 		<archive-manager.version>0.1.0-SNAPSHOT</archive-manager.version>
@@ -302,7 +302,12 @@
 		<dependency>
 			<groupId>de.ozgcloud.api-lib</groupId>
 			<artifactId>ozg-cloud-spring-boot-starter</artifactId>
-			<version>${ozgcloud-starter.version}</version>
+			<version>${api-lib.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>de.ozgcloud.api-lib</groupId>
+			<artifactId>api-lib-core</artifactId>
+			<version>${api-lib.version}</version>
 		</dependency>
 
 		<dependency>
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/archive/ArchiveManagerITCase.java b/vorgang-manager-server/src/test/java/de/ozgcloud/archive/ArchiveManagerITCase.java
new file mode 100644
index 0000000000000000000000000000000000000000..5a6a85a956c1400159f302a3762601163aa75ba7
--- /dev/null
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/archive/ArchiveManagerITCase.java
@@ -0,0 +1,129 @@
+/*
+ * Copyright (C) 2024 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.archive;
+
+import static org.assertj.core.api.Assertions.*;
+import static org.mockito.Mockito.*;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.mock.mockito.SpyBean;
+import org.springframework.data.mongodb.core.MongoOperations;
+import org.springframework.test.annotation.DirtiesContext;
+import org.springframework.test.context.ContextConfiguration;
+
+import de.ozgcloud.archive.attributes.ClientAttributeService;
+import de.ozgcloud.archive.common.callcontext.CallContextProvider;
+import de.ozgcloud.archive.common.callcontext.CallContextUser;
+import de.ozgcloud.command.CommandStatus;
+import de.ozgcloud.common.test.DataITCase;
+import de.ozgcloud.vorgang.VorgangManagerServerApplication;
+import de.ozgcloud.vorgang.callcontext.WithMockCustomUser;
+import de.ozgcloud.vorgang.clientattribute.ClientAttribute;
+import de.ozgcloud.vorgang.command.CommandService;
+import de.ozgcloud.vorgang.command.CreateCommandRequest;
+import de.ozgcloud.vorgang.vorgang.Vorgang;
+import de.ozgcloud.vorgang.vorgang.VorgangService;
+import de.ozgcloud.vorgang.vorgang.VorgangTestFactory;
+
+@SpringBootTest(classes = VorgangManagerServerApplication.class, properties = {
+		"grpc.server.inProcessName=test",
+		"grpc.client.vorgang-manager.address=in-process:test",
+		"grpc.client.ozgcloud-command-manager.address=in-process:test",
+		"grpc.client.inProcess.address=in-process:test",
+})
+@DataITCase
+@DirtiesContext
+@WithMockCustomUser
+@ContextConfiguration(classes = CallContextProvider.class)
+public class ArchiveManagerITCase {
+
+	@Autowired
+	private CommandService commandService;
+	@Autowired
+	private MongoOperations mongoOperations;
+	@Autowired
+	private VorgangService vorgangService;
+	@SpyBean
+	private TestArchiveEventListener archiveEventListener;
+
+	private Vorgang vorgang;
+
+	@BeforeEach
+	void init() {
+		vorgang = mongoOperations.save(VorgangTestFactory.createBuilder().id(null).version(0).build());
+	}
+
+	@Nested
+	class TestArchiveVorgang {
+
+		@Test
+		void shouldSetArchiveClientAttribute() {
+			commandService.createCommand(buildArchiveVorgangCommand());
+
+			verify(archiveEventListener, timeout(60_000)).onVorgangLockedEvent(any());
+
+			var updatedVorgang = mongoOperations.findById(vorgang.getId(), Vorgang.class);
+			assertThat(getArchivingClientAttribute(updatedVorgang).getBoolValue()).contains(true);
+		}
+
+		@Test
+		void shouldLockVorgang() {
+			commandService.createCommand(buildArchiveVorgangCommand());
+
+			verify(archiveEventListener, timeout(60_000)).onVorgangLockedEvent(any());
+
+			assertThat(vorgangService.isVorgangLocked(vorgang.getId())).isTrue();
+		}
+
+		@Test
+		void shouldNotFinishParentCommand() {
+			var archiveVorgangCommand = commandService.createCommand(buildArchiveVorgangCommand());
+
+			verify(archiveEventListener, timeout(60_000)).onVorgangLockedEvent(any());
+
+			var parentCommand = commandService.getById(archiveVorgangCommand.getId());
+			assertThat(parentCommand.getStatus()).isEqualTo(CommandStatus.PENDING);
+		}
+
+		private CreateCommandRequest buildArchiveVorgangCommand() {
+			return CreateCommandRequest.builder()
+					.order("ARCHIVE_VORGANG")
+					.vorgangId(vorgang.getId())
+					.relationId(vorgang.getId())
+					.relationVersion(vorgang.getVersion())
+					.build();
+		}
+
+		private ClientAttribute getArchivingClientAttribute(Vorgang vorgang) {
+			var archiveAttributes = vorgang.getClientAttributes().get(CallContextUser.ARCHIVE_MANAGER_CLIENT_NAME);
+			assertThat(archiveAttributes).isNotNull();
+			return archiveAttributes.get(ClientAttributeService.ATTRIBUTE_NAME_ANTRAG_ARCHIVING);
+		}
+	}
+
+}
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/archive/TestArchiveEventListener.java b/vorgang-manager-server/src/test/java/de/ozgcloud/archive/TestArchiveEventListener.java
new file mode 100644
index 0000000000000000000000000000000000000000..b05e0b4c93a87bc97e57d264f04b8b2ac42b66f9
--- /dev/null
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/archive/TestArchiveEventListener.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2024 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.archive;
+
+import org.springframework.context.event.EventListener;
+
+import de.ozgcloud.command.VorgangLockedEvent;
+
+public class TestArchiveEventListener {
+
+	@EventListener
+	public void onVorgangLockedEvent(VorgangLockedEvent event) {
+	}
+}
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachMailITCase.java b/vorgang-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachMailITCase.java
index 45c4d3a7ddba762f9f86c7571ed3755b29848c86..50f9f4eb563236de6d0280fdb1d1e16961d9ac3e 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachMailITCase.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachMailITCase.java
@@ -77,6 +77,7 @@ import io.grpc.stub.StreamObserver;
 		"grpc.server.in-process-name=postfachitcase",
 		"grpc.client.ozgcloud-command-manager.address=in-process:postfachitcase",
 		"grpc.client.command-manager.address=in-process:postfachitcase",
+		"grpc.client.-manager.address=in-process:postfachitcase",
 		"grpc.client.pluto.address=in-process:postfachitcase",
 		"ozgcloud.osi.postfach.proxyapi.url=http://localhost/ApiProxy/V1/Message",
 		"ozgcloud.osi.postfach.proxyapi.key=1234",
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/TestConfiguration.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/TestConfiguration.java
index 5cc668752eae4480fa6c9c8d4767483ab56db5a6..126443e9add8f118d47eb65f7bdc77e64bbc1cfe 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/TestConfiguration.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/TestConfiguration.java
@@ -25,19 +25,13 @@ package de.ozgcloud.vorgang;
 
 import static org.mockito.Mockito.*;
 
-import org.springframework.boot.test.mock.mockito.MockBean;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.mail.javamail.JavaMailSender;
 
-import de.ozgcloud.archive.common.callcontext.CallContextProvider;
-
 @Configuration
 public class TestConfiguration {
 
-	@MockBean
-	private CallContextProvider callContextProvider;
-
 	@Bean
 	JavaMailSender mockMailSender() {
 		return mock(JavaMailSender.class);