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 c4e512132e17182bdee35b3d4e049f4de6a0c821..19e712d4c4eb812190086b906e3c91659dea5abc 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,5 +1,7 @@
 package de.ozgcloud.eingang.xta;
 
+import static java.util.Collections.*;
+
 import java.util.List;
 import java.util.Spliterators;
 import java.util.stream.Stream;
@@ -23,6 +25,8 @@ class XtaService {
 
 	static final String XDOMEA_0201_MESSAGE_TYPE = "Geschaeftsgang.Geschaeftsgang.0201";
 
+	static final String FIM_MESSAGE_TYPE_PREFIX = "fim.";
+
 	@Autowired
 	private XtaRemoteService remoteService;
 	@Autowired
@@ -48,6 +52,10 @@ class XtaService {
 			return true;
 		}
 
+		if (StringUtils.startsWith(metaData.getMessageType(), FIM_MESSAGE_TYPE_PREFIX)) {
+			return true;
+		}
+
 		LOG.warn("Ignoring XTA-Message of type '{}'.", metaData.getMessageType());
 		return false;
 	}
@@ -63,9 +71,20 @@ class XtaService {
 		if (StringUtils.equals(metaData.getMessageType(), XDOMEA_0201_MESSAGE_TYPE)) {
 			return xdomeaMessageDataMapper.mapIncomingFilesToRepresentationsAttachmentsPair(incomingFiles);
 		}
+		if (StringUtils.startsWith(metaData.getMessageType(), FIM_MESSAGE_TYPE_PREFIX)) {
+			return mapIncomingFilesToRepresentations(incomingFiles);
+		}
+
 		throw new TechnicalException("Unexpected XTA message type: %s".formatted(metaData.getMessageType()));
 	}
 
+	RepresentationsAttachmentsPair mapIncomingFilesToRepresentations(List<IncomingFile> incomingFiles) {
+		return RepresentationsAttachmentsPair.builder()
+				.representations(incomingFiles)
+				.attachments(emptyList())
+				.build();
+	}
+
 	public void acknowledgeReceive(@NonNull XtaMessageId messageId) {
 		remoteService.close(messageId);
 	}
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 6a5705a31bc4ea95c96227e291f3d4b3e814da45..43d08f9a67f8f0954290dc1b81d5f2a2b4c5d4b2 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
@@ -13,6 +13,7 @@ import java.util.Optional;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.ValueSource;
 import org.mockito.ArgumentCaptor;
@@ -148,6 +149,28 @@ class XtaITCase {
 			assertThat(vorgangNummer).hasSize(9);
 		}
 
+		@DisplayName("should use xta vorgangsnummer for FIM")
+		@Test
+		void shouldUseVorgangsnummerForFIM() {
+			mockNachrichtenBroker("versammlungsanzeige.xml");
+
+			runner.runGetXtaMessages();
+
+			var vorgangNummer = captureEingang().getHeader().getVorgangNummer();
+			assertThat(vorgangNummer).hasSize(9);
+		}
+
+		@DisplayName("should have one attachment for FIM")
+		@Test
+		void shouldHaveOneRepresentationForFim() {
+			mockNachrichtenBroker("versammlungsanzeige.xml");
+
+			runner.runGetXtaMessages();
+
+			var eingang = captureEingang();
+			assertThat(eingang.getNumberOfRepresentations()).isEqualTo(1);
+		}
+
 		private GrpcEingang captureEingang() {
 			verify(vorgangRemoteService, times(1))
 					.createVorgang(
@@ -158,7 +181,6 @@ class XtaITCase {
 
 			assertThat(formDataArgumentCaptor.getValue()).isNotNull();
 			assertThat(eingangArgumentCaptor.getValue()).isNotNull();
-			assertThat(organisationseinheitenIdArgumentCaptor.getValue()).isPresent();
 
 			return eingangArgumentCaptor.getValue();
 		}
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 d695eded2528aa7ee88c3bd90146874e86f716b5..d0e4d3c504fe095b16d7b7563be4644e9d14c2e4 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
@@ -1,5 +1,6 @@
 package de.ozgcloud.eingang.xta;
 
+import static de.ozgcloud.eingang.xta.XtaService.*;
 import static org.assertj.core.api.Assertions.*;
 import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
@@ -102,10 +103,19 @@ class XtaServiceTest {
 	class TestIsSupportedMessageType {
 
 		@Test
-		void shouldAcceptDFoerdermittel() {
-			var metaDataDFoerder = XtaMessageMetaDataTestFactory.create();
+		void shouldAcceptGeschaeftsgang() {
+			var geschaeftsgangMetaData = XtaMessageMetaDataTestFactory.create();
 
-			assertThat(service.isSupportedMessageType(metaDataDFoerder)).isTrue();
+			assertThat(service.isSupportedMessageType(geschaeftsgangMetaData)).isTrue();
+		}
+
+		@Test
+		void shouldAcceptFIM() {
+			var fimMetaData = XtaMessageMetaDataTestFactory.createBuilder()
+					.messageType(FIM_MESSAGE_TYPE_PREFIX + "34355")
+					.build();
+
+			assertThat(service.isSupportedMessageType(fimMetaData)).isTrue();
 		}
 
 		@Test
@@ -205,6 +215,17 @@ class XtaServiceTest {
 			assertThat(result).isEqualTo(classification);
 		}
 
+		@DisplayName("should use correct mapping for FIM message")
+		@Test
+		void shouldUseCorrectMappingForFimMessage() {
+			when(messageMetaData.getMessageType()).thenReturn(FIM_MESSAGE_TYPE_PREFIX + "836487");
+			doReturn(classification).when(service).mapIncomingFilesToRepresentations(incomingFiles);
+
+			var result = service.getRepresentationsAttachmentsPair(messageMetaData, incomingFiles);
+
+			assertThat(result).isEqualTo(classification);
+		}
+
 		@DisplayName("should throw exception for unexpected message type")
 		@Test
 		void shouldThrowExceptionForUnexpectedMessageType() {
@@ -215,6 +236,34 @@ class XtaServiceTest {
 		}
 	}
 
+	@DisplayName("map incoming files to representations")
+	@Nested
+	class TestMapIncomingFilesToRepresentations {
+
+		private List<IncomingFile> incomingFiles;
+
+		@BeforeEach
+		void mock() {
+			incomingFiles = List.of(IncomingFileTestFactory.create(), IncomingFileTestFactory.create());
+
+		}
+		@DisplayName("should return representations with incoming files")
+		@Test
+		void shouldReturnRepresentationsWithIncomingFiles() {
+			var result = service.mapIncomingFilesToRepresentations(incomingFiles);
+
+			assertThat(result.representations()).isEqualTo(incomingFiles);
+		}
+
+		@DisplayName("should return attachments with empty list")
+		@Test
+		void shouldReturnAttachmentsWithEmptyList() {
+			var result = service.mapIncomingFilesToRepresentations(incomingFiles);
+
+			assertThat(result.attachments()).isEmpty();
+		}
+	}
+
 	@Nested
 	class TestAcknowledgeReceive {