diff --git a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaIncomingFilesMapper.java b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaIncomingFilesMapper.java
index 34a807f7001122a0561f319e767c06b08904f25b..1ef661f3e778725c4a5afd95b69c7d67457ce2e8 100644
--- a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaIncomingFilesMapper.java
+++ b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaIncomingFilesMapper.java
@@ -57,9 +57,6 @@ class XtaIncomingFilesMapper {
 	}
 
 	IncomingFile toIncomingFile(XtaFile messageFile) {
-		if (!messageFile.contentType().equals(ZIP_CONTENT_TYPE)) {
-			LOG.warn("Expected XTA messageFile to be of content type " + ZIP_CONTENT_TYPE + ". Instead was " + messageFile.contentType());
-		}
 		return IncomingFile.builder()
 				.name(messageFile.name())
 				.contentType(messageFile.contentType())
diff --git a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaMessage.java b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaMessage.java
index 3f90f369ed2a11143b59cd8899ef26a67f2d379a..bb048d1c60c284da67062008acfdb6d5b1972281 100644
--- a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaMessage.java
+++ b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaMessage.java
@@ -12,4 +12,6 @@ public class XtaMessage {
 	private XtaMessageMetaData metaData;
 	@Singular
 	private Collection<XtaFile> messageFiles;
+	@Singular
+	private Collection<XtaFile> attachments;
 }
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 4f59251706db33e1fe5d24ce333fb7f3a255a5a3..c1d3ecfb782a7e0f42f2feab9cadb78b621ff15c 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
@@ -182,18 +182,28 @@ class XtaRemoteService {
 	}
 
 	public XtaMessage getMessage(XtaMessageId messageId) {
+		var contentContainer = loadContentContainer(messageId.toString());
+
 		return XtaMessage.builder()
 				.metaData(null)
-				.messageFiles(Collections.singleton(getMessage(messageId.toString())))
+				.messageFiles(Collections.singleton(getMessage(contentContainer)))
+				.attachments(getAttachments(contentContainer).toList())
 				.build();
 	}
 
-	XtaFile getMessage(String messageId) {
+	GenericContentContainer loadContentContainer(String messageId) {
 		var callback = new ActionCallback(properties.getActions().getFetchRequest(), new Addressing10(), getTargetUri());
 		var template = webServiceTemplateBuilder.setMarshaller(osciMarshaller).setUnmarshaller(xoevMarshaller).build();
 
-		var result = (GenericContentContainer) template.marshalSendAndReceive(buildFetchRequest(messageId), callback);
-		return toXtaFile(result.getContentContainer().getMessage());
+		return (GenericContentContainer) template.marshalSendAndReceive(buildFetchRequest(messageId), callback);
+	}
+
+	XtaFile getMessage(GenericContentContainer container) {
+		return toXtaFile(container.getContentContainer().getMessage());
+	}
+
+	Stream<XtaFile> getAttachments(GenericContentContainer container) {
+		return container.getContentContainer().getAttachment().stream().map(this::toXtaFile);
 	}
 
 	private XtaFile toXtaFile(ContentType type) {
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 ceed7a9c13bbc8a8d9a5817dbf762d2c2c4c33e0..cc384b4c48a83c2c3493e06489394ff19f08f1cf 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
@@ -11,7 +11,7 @@ import de.ozgcloud.eingang.semantik.SemantikAdapter;
 import lombok.NonNull;
 import lombok.extern.log4j.Log4j2;
 
-@Profile({"!itcase", "fim"})
+@Profile({ "!itcase" })
 @Log4j2
 @Component
 class XtaRunner implements ApplicationListener<ContextRefreshedEvent> {
diff --git a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaService.java b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaService.java
index 4fccd8d8a8cf29f762e97b775aeae9a72c66bb76..60bef9e3483f044ad27aa524852fafa0abd1c8c4 100644
--- a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaService.java
+++ b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaService.java
@@ -1,12 +1,14 @@
 package de.ozgcloud.eingang.xta;
 
-import static java.util.Collections.emptyList;
+import static java.util.Collections.*;
 
+import java.util.Collection;
 import java.util.List;
 import java.util.Spliterators;
 import java.util.stream.Stream;
 import java.util.stream.StreamSupport;
 
+import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -14,6 +16,7 @@ import org.springframework.stereotype.Service;
 import de.ozgcloud.eingang.common.errorhandling.TechnicalException;
 import de.ozgcloud.eingang.common.formdata.FormData;
 import de.ozgcloud.eingang.common.formdata.IncomingFile;
+import de.ozgcloud.eingang.common.formdata.IncomingFileGroup;
 import de.ozgcloud.eingang.common.vorgang.VorgangNummerSupplier;
 import de.ozgcloud.eingang.xdomea.XdomeaMessageDataMapper;
 import lombok.NonNull;
@@ -56,14 +59,9 @@ class XtaService {
 	}
 
 	boolean isSupportedMessageType(XtaMessageMetaData metaData) {
-		if (StringUtils.equals(metaData.getMessageType(), XDOMEA_0201_MESSAGE_TYPE)) {
+		if (isXDomeaMessageType(metaData.getMessageType()) || isFimMessageType(metaData.getMessageType())) {
 			return true;
 		}
-
-		if (StringUtils.startsWith(metaData.getMessageType(), FIM_MESSAGE_TYPE_PREFIX)) {
-			return true;
-		}
-
 		LOG.warn("Ignoring XTA-Message of type '{}'.", metaData.getMessageType());
 		return false;
 	}
@@ -72,20 +70,44 @@ class XtaService {
 		var msg = remoteService.getMessage(metaData.getMessageId());
 		var incomingFiles = xtaIncomingFilesMapper.toIncomingFiles(msg.getMessageFiles());
 
-		return mapper.toFormData(getRepresentationsAttachmentsPair(metaData, incomingFiles), metaData, vorgangNummerSupplier);
+		var formData = mapper.toFormData(getRepresentationsAttachmentsPair(metaData, incomingFiles), metaData, vorgangNummerSupplier);
+		return addAttachments(msg, formData);
+	}
+
+	FormData addAttachments(XtaMessage msg, FormData inFormData) {
+		var attachments = buildAttachmentsInFiles(msg.getAttachments());
+		if (CollectionUtils.isNotEmpty(attachments)) {
+			return inFormData.toBuilder()
+					.attachment(IncomingFileGroup.builder().name("sonstige").files(attachments).build())
+					.numberOfAttachments(attachments.size())
+					.build();
+		}
+		return inFormData;
+	}
+
+	private List<IncomingFile> buildAttachmentsInFiles(Collection<XtaFile> attachmentFiles) {
+		return attachmentFiles.stream().map(xtaIncomingFilesMapper::toIncomingFile).toList();
 	}
 
 	RepresentationsAttachmentsPair getRepresentationsAttachmentsPair(XtaMessageMetaData metaData, List<IncomingFile> incomingFiles) {
-		if (StringUtils.equals(metaData.getMessageType(), XDOMEA_0201_MESSAGE_TYPE)) {
+		if (isXDomeaMessageType(metaData.getMessageType())) {
 			return xdomeaMessageDataMapper.mapIncomingFilesToRepresentationsAttachmentsPair(incomingFiles);
 		}
-		if (StringUtils.startsWith(metaData.getMessageType(), FIM_MESSAGE_TYPE_PREFIX)) {
+		if (isFimMessageType(metaData.getMessageType())) {
 			return mapIncomingFilesToRepresentations(incomingFiles);
 		}
 
 		throw new TechnicalException("Unexpected XTA message type: %s".formatted(metaData.getMessageType()));
 	}
 
+	private boolean isXDomeaMessageType(String messageType) {
+		return StringUtils.equals(messageType, XDOMEA_0201_MESSAGE_TYPE);
+	}
+
+	private boolean isFimMessageType(String messageType) {
+		return StringUtils.startsWith(messageType, FIM_MESSAGE_TYPE_PREFIX);
+	}
+
 	RepresentationsAttachmentsPair mapIncomingFilesToRepresentations(List<IncomingFile> incomingFiles) {
 		return RepresentationsAttachmentsPair.builder()
 				.representations(incomingFiles)
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 57f96b389e8e711b6029b06e572706126d7ac010..6c8597cc38fd795a311ad8d3a70e64a5c24c6347 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
@@ -4,6 +4,8 @@ class XtaMessageTestFactory {
 
 	static final XtaMessageId MESSAGE_ID = XtaMessageId.from("urn:de:xta:messageid:dataport_xta_210:81e40808-91c6-4765-aaf4-1aa62fec8be9");
 
+	static final XtaFile attachment = XtaFileTestFactory.create();
+
 	static XtaMessage create() {
 		return createBuilder().build();
 	}
@@ -11,7 +13,7 @@ class XtaMessageTestFactory {
 	static XtaMessage.XtaMessageBuilder createBuilder() {
 		return XtaMessage.builder()
 				.metaData(XtaMessageMetaDataTestFactory.create())
-				.messageFile(XtaFileTestFactory.create());
-
+				.messageFile(XtaFileTestFactory.create())
+				.attachment(attachment);
 	}
 }
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 cc85f76f2d5cff5cf9556a7613493647f05f740b..fbf36381b8862d5c0bbd5908ec16e0dd5d927b03 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
@@ -2,6 +2,8 @@ package de.ozgcloud.eingang.xta;
 
 import static org.assertj.core.api.Assertions.*;
 
+import jakarta.validation.Valid;
+
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
@@ -10,7 +12,6 @@ import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.ActiveProfiles;
 
 import de.ozgcloud.eingang.Application;
-import jakarta.validation.Valid;
 
 @Disabled("real live test - do only activate for manual testing")
 @ActiveProfiles({ "itcase", "local" })
@@ -54,7 +55,7 @@ class XtaRemoteServiceITCase {
 	class TestGetMessage {
 		@Test
 		void shouldSendRequest() {
-			var result = remoteService.getMessage("urn:de:xta:messageid:dataport_xta_210:20eb297a-e224-45a0-9376-5ebd4d9bcc9a");
+			var result = remoteService.loadContentContainer("urn:de:xta:messageid:dataport_xta_210:20eb297a-e224-45a0-9376-5ebd4d9bcc9a");
 
 			assertThat(result).isNotNull();
 		}
diff --git a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaRemoteServiceTest.java b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaRemoteServiceTest.java
index a1c37d0b970039056a996ab875c6476a60abd4c5..3077811a1651d869a91028b8cb030e7052306b17 100644
--- a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaRemoteServiceTest.java
+++ b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaRemoteServiceTest.java
@@ -4,14 +4,19 @@ import static org.assertj.core.api.Assertions.*;
 import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
 
+import java.util.stream.Stream;
+
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
+import org.mockito.Mockito;
 import org.mockito.Spy;
 import org.springframework.boot.webservices.client.WebServiceTemplateBuilder;
 
+import de.xoev.transport.xta._211.GenericContentContainer;
+
 class XtaRemoteServiceTest {
 
 	@Spy
@@ -93,17 +98,35 @@ class XtaRemoteServiceTest {
 	class TestGetMessage {
 
 		private XtaFile file = XtaFileTestFactory.create();
+		@Mock
+		private GenericContentContainer contentContainerMock;
 
 		@BeforeEach
 		void init() {
-			doReturn(file).when(service).getMessage(anyString());
+			doReturn(file).when(service).getMessage(Mockito.<GenericContentContainer>any());
+			doReturn(contentContainerMock).when(service).loadContentContainer(anyString());
+			doReturn(Stream.of(file)).when(service).getAttachments(any());
+		}
+
+		@Test
+		void shouldCallLoadContentContainer() {
+			service.getMessage(XtaMessageTestFactory.MESSAGE_ID);
+
+			verify(service).loadContentContainer(XtaMessageTestFactory.MESSAGE_ID.toString());
 		}
 
 		@Test
 		void shouldCallGetMessage() {
 			service.getMessage(XtaMessageTestFactory.MESSAGE_ID);
 
-			verify(service).getMessage(XtaMessageTestFactory.MESSAGE_ID.toString());
+			verify(service).getMessage(contentContainerMock);
+		}
+
+		@Test
+		void sohludCallGetAttachments() {
+			service.getMessage(XtaMessageTestFactory.MESSAGE_ID);
+
+			verify(service).getAttachments(contentContainerMock);
 		}
 
 		@Test
diff --git a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaServiceTest.java b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaServiceTest.java
index 8e4c34115cc54be243a8ebed26fa148dc4c5b60f..45fc00b5cf3343121a5fb7bfaedb5193814383fb 100644
--- a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaServiceTest.java
+++ b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaServiceTest.java
@@ -135,9 +135,10 @@ class XtaServiceTest {
 		@Mock
 		private FormData formData;
 
-		private XtaMessage message;
-		private XtaMessageMetaData messageMetaData;
+		private XtaMessage message = XtaMessageTestFactory.create();
+		private XtaMessageMetaData messageMetaData = XtaMessageMetaDataTestFactory.create();
 		private RepresentationsAttachmentsPair classification;
+		private FormData mappedFormData = FormDataTestFactory.create();
 
 		@Captor
 		private ArgumentCaptor<XtaMessageMetaData> messageMetaDataCaptor;
@@ -147,15 +148,16 @@ class XtaServiceTest {
 
 		@BeforeEach
 		void init() {
-			message = XtaMessageTestFactory.create();
-			when(remoteService.getMessage(any(XtaMessageId.class))).thenReturn(message);
-			var incomingFiles = List.of(IncomingFileTestFactory.create(), IncomingFileTestFactory.create());
-
-			messageMetaData = XtaMessageMetaDataTestFactory.create();
 			classification = RepresentationsAttachmentsPairTestFactory.create();
-			doReturn(classification).when(service).getRepresentationsAttachmentsPair(messageMetaData, incomingFiles);
+			var incomingFiles = List.of(IncomingFileTestFactory.create(), IncomingFileTestFactory.create());
 			when(incomingFilesMapper.toIncomingFiles(message.getMessageFiles())).thenReturn(incomingFiles);
-			when(mapper.toFormData(classification, messageMetaData, vorgangNummerSupplier)).thenReturn(formData);
+			doReturn(classification).when(service).getRepresentationsAttachmentsPair(messageMetaData, incomingFiles);
+		}
+
+		@BeforeEach
+		void mockMessageMapping() {
+			when(remoteService.getMessage(any(XtaMessageId.class))).thenReturn(message);
+			when(mapper.toFormData(any(), any(), any())).thenReturn(mappedFormData);
 		}
 
 		@Test
@@ -181,11 +183,42 @@ class XtaServiceTest {
 			assertThat(classificationCaptor.getValue()).isEqualTo(classification);
 		}
 
+		@Test
+		void shouldCallAddAttachments() {
+			service.getFormData(messageMetaData);
+
+			verify(service).addAttachments(message, mappedFormData);
+		}
+
 		@Test
 		void shouldReturnMappedResult() {
+			doReturn(mappedFormData).when(service).addAttachments(any(), any());
+
 			var result = service.getFormData(messageMetaData);
 
-			assertThat(result).isEqualTo(formData);
+			assertThat(result).isEqualTo(mappedFormData);
+		}
+	}
+
+	@Nested
+	class TestAddAttachments {
+
+		private final FormData inFormData = FormDataTestFactory.createBuilder().clearAttachments().numberOfAttachments(0).build();
+
+		@Test
+		void shouldAddAttachments() {
+			var result = service.addAttachments(XtaMessageTestFactory.create(), inFormData);
+
+			assertThat(result.getAttachments()).hasSize(1);
+			assertThat(result.getNumberOfAttachments()).isEqualTo(1);
+		}
+
+		@Test
+		void shouldWorkWithoutAnyAttachment() {
+			var result = service.addAttachments(XtaMessageTestFactory.createBuilder().clearAttachments().build(), inFormData);
+
+			assertThat(result.getAttachments()).hasSize(0);
+			assertThat(result.getNumberOfAttachments()).isEqualTo(0);
 		}
 	}