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/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));
+		}
+	}
 }