diff --git a/common/pom.xml b/common/pom.xml
index fcd679a43f6f3f22d5469f1d2ee94955056d14a7..665d5c50dd4658fb69110588bc17c56581cea0c7 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -31,7 +31,7 @@
 	<parent>
 		<groupId>de.itvsh.kop.eingangsadapter</groupId>
 		<artifactId>parent</artifactId>
-		<version>1.9.0-SNAPSHOT</version>
+		<version>1.10.0-SNAPSHOT</version>
 		<relativePath>../</relativePath>
 	</parent>
 	<artifactId>common</artifactId>
diff --git a/formcycle-adapter/formcycle-adapter-impl/pom.xml b/formcycle-adapter/formcycle-adapter-impl/pom.xml
index 7e68ae9cccba4b10f15ff830ecdd33dcb930dafc..3780ceaf98ab22897aca467c2ad90c48ca558eb1 100644
--- a/formcycle-adapter/formcycle-adapter-impl/pom.xml
+++ b/formcycle-adapter/formcycle-adapter-impl/pom.xml
@@ -29,7 +29,7 @@
 	<parent>
 		<groupId>de.itvsh.kop.eingangsadapter</groupId>
 		<artifactId>formcycle-adapter</artifactId>
-		<version>1.9.0-SNAPSHOT</version>
+		<version>1.10.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>formcycle-adapter-impl</artifactId>
diff --git a/formcycle-adapter/formcycle-adapter-interface/pom.xml b/formcycle-adapter/formcycle-adapter-interface/pom.xml
index 36ade3e01d8e457467ed1fc68958f57cd540d749..b321e925d70826fdf74b323818b84fd7a19302f5 100644
--- a/formcycle-adapter/formcycle-adapter-interface/pom.xml
+++ b/formcycle-adapter/formcycle-adapter-interface/pom.xml
@@ -29,14 +29,14 @@
 	<parent>
 		<groupId>de.itvsh.kop.common</groupId>
 		<artifactId>kop-common-dependencies</artifactId>
-		<version>2.0.0</version>
+		<version>2.0.1</version>
 		<relativePath />
 	</parent>
 
 	<groupId>de.itvsh.kop.eingangsadapter</groupId>
 	<artifactId>formcycle-adapter-interface</artifactId>
 	<name>EM - Formcycle Adapter - Interface</name>
-	<version>1.9.0-SNAPSHOT</version>
+	<version>1.10.0-SNAPSHOT</version>
 	
 	<properties>
 		<pluto.version>1.8.0</pluto.version>
diff --git a/formcycle-adapter/pom.xml b/formcycle-adapter/pom.xml
index 20c2643269b99ffa21a29282f5a44b43cfea399b..ceb0c3d5e13c4e56e245ec00d2fce15c86024da7 100644
--- a/formcycle-adapter/pom.xml
+++ b/formcycle-adapter/pom.xml
@@ -29,7 +29,7 @@
 	<parent>
 		<groupId>de.itvsh.kop.eingangsadapter</groupId>
 		<artifactId>parent</artifactId>
-		<version>1.9.0-SNAPSHOT</version>
+		<version>1.10.0-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>formcycle-adapter</artifactId>
diff --git a/formsolutions-adapter/pom.xml b/formsolutions-adapter/pom.xml
index 0894bf1973998a6f31cf849e59d4cb829a3e91ef..11a4d73879284fda10d3fcbae76926877d265e91 100644
--- a/formsolutions-adapter/pom.xml
+++ b/formsolutions-adapter/pom.xml
@@ -30,7 +30,7 @@
 	<parent>
 		<groupId>de.itvsh.kop.eingangsadapter</groupId>
 		<artifactId>parent</artifactId>
-		<version>1.9.0-SNAPSHOT</version>
+		<version>1.10.0-SNAPSHOT</version>
 		<relativePath>../</relativePath>
 	</parent>
 
diff --git a/forwarder/pom.xml b/forwarder/pom.xml
index 8ef2b70a80f7a64ab7374b2245b6a40381d8d629..e631f9c970c1aa365e62189064e01f0a670fa581 100644
--- a/forwarder/pom.xml
+++ b/forwarder/pom.xml
@@ -29,7 +29,7 @@
 	<parent>
 		<groupId>de.itvsh.kop.eingangsadapter</groupId>
 		<artifactId>parent</artifactId>
-		<version>1.9.0-SNAPSHOT</version>
+		<version>1.10.0-SNAPSHOT</version>
 		<relativePath>../</relativePath>
 	</parent>
 
diff --git a/intelliform-adapter/pom.xml b/intelliform-adapter/pom.xml
index d2383ae7f96077917d675c4c7c9657679d5e93d4..426682ce68e8a0ec7ced288b4cb771dec12206cd 100644
--- a/intelliform-adapter/pom.xml
+++ b/intelliform-adapter/pom.xml
@@ -31,7 +31,7 @@
 	<parent>
 		<groupId>de.itvsh.kop.eingangsadapter</groupId>
 		<artifactId>parent</artifactId>
-		<version>1.9.0-SNAPSHOT</version>
+		<version>1.10.0-SNAPSHOT</version>
 		<relativePath>../</relativePath>
 	</parent>
 
diff --git a/pom.xml b/pom.xml
index 36eeeebe778b7a205951b6913f0718d576b817f3..ae919a04222950f58e03385bad81afc240503722 100644
--- a/pom.xml
+++ b/pom.xml
@@ -37,7 +37,7 @@
 	
 	<groupId>de.itvsh.kop.eingangsadapter</groupId>
 	<artifactId>parent</artifactId>
-	<version>1.9.0-SNAPSHOT</version>
+	<version>1.10.0-SNAPSHOT</version>
 	<packaging>pom</packaging>
 	<name>Eingangs Adapter - Parent</name>
 
diff --git a/router/pom.xml b/router/pom.xml
index 56f4c87c8311fdc621af1bc12a5604d67e19a5d0..f4e6162de6de7f34ed630e16309da922dce68225 100644
--- a/router/pom.xml
+++ b/router/pom.xml
@@ -29,7 +29,7 @@
 	<parent>
 		<groupId>de.itvsh.kop.eingangsadapter</groupId>
 		<artifactId>parent</artifactId>
-		<version>1.9.0-SNAPSHOT</version>
+		<version>1.10.0-SNAPSHOT</version>
 		<relativePath>../</relativePath>
 	</parent>
 
diff --git a/semantik-adapter/pom.xml b/semantik-adapter/pom.xml
index 6867cda78180244cd25831eaf31f8060c7d9d5c0..44207744d7f39da4285c4a16d3a4dfa72300a4c6 100644
--- a/semantik-adapter/pom.xml
+++ b/semantik-adapter/pom.xml
@@ -30,7 +30,7 @@
 	<parent>
 		<groupId>de.itvsh.kop.eingangsadapter</groupId>
 		<artifactId>parent</artifactId>
-		<version>1.9.0-SNAPSHOT</version>
+		<version>1.10.0-SNAPSHOT</version>
 	</parent>
 	
 	<artifactId>semantik-adapter</artifactId>
diff --git a/semantik-adapter/src/test/java/de/itvsh/kop/eingangsadapter/semantik/common/ZipAttachmentReaderTest.java b/semantik-adapter/src/test/java/de/itvsh/kop/eingangsadapter/semantik/common/ZipAttachmentReaderTest.java
index 2046f2a6d84f15f0d42543c393a4cba9029c9d42..be45d442c36bc85aec0ca7856256842052216719 100644
--- a/semantik-adapter/src/test/java/de/itvsh/kop/eingangsadapter/semantik/common/ZipAttachmentReaderTest.java
+++ b/semantik-adapter/src/test/java/de/itvsh/kop/eingangsadapter/semantik/common/ZipAttachmentReaderTest.java
@@ -153,20 +153,20 @@ class ZipAttachmentReaderTest {
 		}
 
 		@Test
-		@DisplayName("should delete all temporary files after their associated input streams have been closed")
+		@DisplayName("should delete all temporary files after last reading of inputstream")
 		@SneakyThrows
-		void shouldDeleteContentFiles() {
+		void shouldDeleteContentFilesOnFinalRead() {
 			cleanupTempFiles();
 			var contentEntries = new ZipAttachmentReader().readContent(loadZip(ZIP_2_FILE_NAME));
 
-			contentEntries.forEach(this::closeInputStream);
+			contentEntries.forEach(this::closeInputStreamFinalRead);
 
 			assertTrue(noFilesWithSuffixInTempDirectory());
 		}
 
 		@SneakyThrows
-		private void closeInputStream(IncomingFile entry) {
-			entry.getContentStream().close();
+		private void closeInputStreamFinalRead(IncomingFile entry) {
+			entry.getContentStreamForFinalRead().close();
 		}
 
 		@Test
diff --git a/xta-adapter/pom.xml b/xta-adapter/pom.xml
index 92a32690e074bea447df9fcbf3858066d51889ff..c0399018687cba257d8a8fc3dcef1c658a542235 100644
--- a/xta-adapter/pom.xml
+++ b/xta-adapter/pom.xml
@@ -4,7 +4,7 @@
 	<parent>
 		<groupId>de.itvsh.kop.eingangsadapter</groupId>
 		<artifactId>parent</artifactId>
-		<version>1.9.0-SNAPSHOT</version>
+		<version>1.10.0-SNAPSHOT</version>
 	</parent>
 	<artifactId>xta-adapter</artifactId>
 	<name>Eingangs Adapter - XTA</name>
diff --git a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaProperties.java b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaProperties.java
index 29edd779ccf4fed652aadc54689e9e5aa1886428..2f31999ff99e8d9e997a8e57b6ee2b6260855beb 100644
--- a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaProperties.java
+++ b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaProperties.java
@@ -79,4 +79,6 @@ class Actions {
 	private URI statusList;
 	@NotNull
 	private URI fetchRequest;
+	@NotNull
+	private URI closeRequest;
 }
diff --git a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaRemoteService.java b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaRemoteService.java
index c963bfb5b858bee42c4a447550471f9756463119..5f229669d2887a0fe07017edad94c29fd9eb9613 100644
--- a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaRemoteService.java
+++ b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaRemoteService.java
@@ -19,13 +19,17 @@ import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.boot.webservices.client.WebServiceTemplateBuilder;
 import org.springframework.oxm.jaxb.Jaxb2Marshaller;
 import org.springframework.stereotype.Service;
+import org.springframework.ws.soap.SoapFaultDetailElement;
 import org.springframework.ws.soap.addressing.client.ActionCallback;
 import org.springframework.ws.soap.addressing.version.Addressing10;
+import org.springframework.ws.soap.client.SoapFaultClientException;
 import org.w3._2005._08.addressing.AttributedURIType;
 
 import de.itvsh.kop.eingangsadapter.common.errorhandling.TechnicalException;
 import de.xoev.transport.xta._211.ContentType;
+import de.xoev.transport.xta._211.ExceptionType;
 import de.xoev.transport.xta._211.GenericContentContainer;
+import eu.osci.ws._2008._05.transport.MsgBoxCloseRequestType;
 import eu.osci.ws._2008._05.transport.MsgBoxFetchRequest;
 import eu.osci.ws._2008._05.transport.MsgBoxStatusListRequestType;
 import eu.osci.ws._2008._05.transport.MsgSelector;
@@ -38,6 +42,9 @@ import lombok.extern.log4j.Log4j2;
 @Service
 class XtaRemoteService {
 
+	private static final String ERROR_ON_CLOSE_LOG_TEMPLATE = "Error result on close request.\nReason: %s";
+	private static final String DETAIL_LOG_TEMPLATE = "Code: %s, Message: %s";
+
 	@Autowired
 	@Valid
 	private XtaProperties properties;
@@ -143,8 +150,48 @@ class XtaRemoteService {
 	}
 
 	public void close(@NonNull XtaMessageId messageId) {
-		// TODO Auto-generated method stub
-		LOG.warn("close not jet implemented");
+		var callback = new ActionCallback(properties.getActions().getCloseRequest(), new Addressing10(), getTargetUri());
+		var template = webServiceTemplateBuilder.setMarshaller(osciMarshaller).setUnmarshaller(xoevMarshaller).build();
+
+		try {
+			template.marshalSendAndReceive(buildCloseRequest(messageId.toString()), callback);
+		} catch (SoapFaultClientException e) {
+			logErrorOnClose(e);
+		}
+	}
+
+	private JAXBElement<MsgBoxCloseRequestType> buildCloseRequest(String msgId) {
+		MsgBoxCloseRequestType request = new MsgBoxCloseRequestType();
+		var lastMsgReceived = request.getLastMsgReceived();
+
+		AttributedURIType attribute = new AttributedURIType();
+		attribute.setValue(msgId);
+		lastMsgReceived.add(attribute);
+
+		return new ObjectFactory().createMsgBoxCloseRequest(request);
+	}
+
+	private void logErrorOnClose(SoapFaultClientException e) {
+		try {
+			var fault = e.getSoapFault();
+			StringBuilder logBuilder = new StringBuilder(ERROR_ON_CLOSE_LOG_TEMPLATE.formatted(e.getSoapFault().getFaultStringOrReason()));
+
+			var entries = fault.getFaultDetail().getDetailEntries();
+			entries.forEachRemaining(entry -> logBuilder.append("\n").append(formatFaultEntry(entry)));
+
+			LOG.error(logBuilder.toString(), e);
+		} catch (Exception e1) {
+			LOG.error("Error on loggging close error", e1);
+			LOG.error("origin error was", e);
+		}
+	}
+
+	private String formatFaultEntry(SoapFaultDetailElement soapfaultdetailelement1) {
+		@SuppressWarnings("unchecked")
+		ExceptionType exceptionType = ((JAXBElement<ExceptionType>) xoevMarshaller.unmarshal(soapfaultdetailelement1.getSource())).getValue();
+
+		return DETAIL_LOG_TEMPLATE.formatted(exceptionType.getErrorCode().getCode(), exceptionType.getErrorCode().getName().toString());
+
 	}
 
 }
diff --git a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaRunner.java b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaRunner.java
index 6b8ea3cc66bacd40ab00a0ddf0f8cc3cb11efbf8..98e7828da496503b553f25b25ed76b0dcbaa93ea 100644
--- a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaRunner.java
+++ b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaRunner.java
@@ -2,6 +2,7 @@ package de.ozgcloud.eingang.xta;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.ApplicationListener;
+import org.springframework.context.annotation.Profile;
 import org.springframework.context.event.ContextRefreshedEvent;
 import org.springframework.stereotype.Component;
 
@@ -10,6 +11,7 @@ import de.itvsh.kop.eingangsadapter.semantik.SemantikAdapter;
 import lombok.NonNull;
 import lombok.extern.log4j.Log4j2;
 
+@Profile("!itcase")
 @Log4j2
 @Component
 class XtaRunner implements ApplicationListener<ContextRefreshedEvent> {
diff --git a/xta-adapter/src/main/resources/application.yml b/xta-adapter/src/main/resources/application.yml
index c126ac5f2b6f05752e5fe8f816584dff03899e84..a82f3ed43e00eb1fd5721d5fed4128ee74ac6c34 100644
--- a/xta-adapter/src/main/resources/application.yml
+++ b/xta-adapter/src/main/resources/application.yml
@@ -14,3 +14,4 @@ ozgcloud:
     actions:
       status-list: "http://www.osci.eu/ws/2008/05/transport/urn/messageTypes/MsgBoxStatusListRequest"
       fetch-request: "http://www.osci.eu/ws/2008/05/transport/urn/messageTypes/MsgBoxFetchRequest"
+      close-request: "http://www.osci.eu/ws/2008/05/transport/urn/messageTypes/MsgBoxCloseRequest"
diff --git a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaITCase.java b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaITCase.java
index f67c13848f8b8082adab70896514ca9bf37aa9ab..c869365781ca7bc1f0cad31b58f149e421511f8b 100644
--- a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaITCase.java
+++ b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaITCase.java
@@ -14,6 +14,7 @@ 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.context.annotation.Bean;
 import org.springframework.test.context.ActiveProfiles;
 
 import de.itvsh.kop.common.test.TestUtils;
@@ -24,7 +25,7 @@ import de.itvsh.kop.eingangsadapter.common.formdata.ServiceKonto.PostfachAddress
 import de.itvsh.kop.eingangsadapter.common.formdata.StringBasedIdentifier;
 import de.itvsh.kop.eingangsadapter.router.VorgangRemoteService;
 
-@SpringBootTest(classes = Application.class)
+@SpringBootTest(classes = { Application.class, ActivateXTARunnerConfig.class })
 @ActiveProfiles({ "local", "itcase" })
 class XtaITCase {
 
@@ -99,4 +100,12 @@ class XtaITCase {
 
 		return formDataCaptor.getValue();
 	}
+
 }
+
+class ActivateXTARunnerConfig {
+	@Bean
+	XtaRunner xtaRunner() {
+		return new XtaRunner();
+	}
+}
\ No newline at end of file
diff --git a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaMessageTestFactory.java b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaMessageTestFactory.java
index c8cdfc6d82929c2cee856b9ef84c10c7028559e6..57f96b389e8e711b6029b06e572706126d7ac010 100644
--- a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaMessageTestFactory.java
+++ b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaMessageTestFactory.java
@@ -1,10 +1,8 @@
 package de.ozgcloud.eingang.xta;
 
-import java.util.UUID;
-
 class XtaMessageTestFactory {
 
-	static final XtaMessageId MESSAGE_ID = XtaMessageId.from(UUID.randomUUID().toString());
+	static final XtaMessageId MESSAGE_ID = XtaMessageId.from("urn:de:xta:messageid:dataport_xta_210:81e40808-91c6-4765-aaf4-1aa62fec8be9");
 
 	static XtaMessage create() {
 		return createBuilder().build();
diff --git a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaRemoteServiceITCase.java b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaRemoteServiceITCase.java
index c2627d67b01b7f3b726526b8747278f32d5097b9..0e9a787753cb1e93ee5449dec9473524cd19638e 100644
--- a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaRemoteServiceITCase.java
+++ b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaRemoteServiceITCase.java
@@ -61,4 +61,11 @@ class XtaRemoteServiceITCase {
 		}
 	}
 
+	@Nested
+	class TestClose {
+		@Test
+		void shouldThrowNoException() {
+			assertThatNoException().isThrownBy(() -> remoteService.close(XtaMessageTestFactory.MESSAGE_ID));
+		}
+	}
 }