diff --git a/fim-adapter/pom.xml b/fim-adapter/pom.xml
index cdb1432b60b313b0defb13d6e3ec46e661d99956..fb4d5e6d9f7d952515b713d84755ad65963c7e40 100644
--- a/fim-adapter/pom.xml
+++ b/fim-adapter/pom.xml
@@ -20,16 +20,6 @@
             <artifactId>semantik-adapter</artifactId>
         </dependency>
 
-        <!--spring-->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-actuator</artifactId>
-        </dependency>
-
         <!--test -->
         <dependency>
             <groupId>de.ozgcloud.eingang</groupId>
@@ -42,23 +32,30 @@
     <build>
         <plugins>
             <plugin>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-maven-plugin</artifactId>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>test-jar</goal>
+                        </goals>
+                    </execution>
+                </executions>
             </plugin>
 
             <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
+                <groupId>org.jacoco</groupId>
+                <artifactId>jacoco-maven-plugin</artifactId>
             </plugin>
 
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-failsafe-plugin</artifactId>
+                <artifactId>maven-surefire-plugin</artifactId>
             </plugin>
 
             <plugin>
-                <groupId>org.jacoco</groupId>
-                <artifactId>jacoco-maven-plugin</artifactId>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-failsafe-plugin</artifactId>
             </plugin>
         </plugins>
     </build>
diff --git a/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimBasedMapper.java b/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimBasedAdapter.java
similarity index 53%
rename from fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimBasedMapper.java
rename to fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimBasedAdapter.java
index 90ec29b65fcca537e6017857bf8af0ec2ffcd312..5849cf8e8f9e1f9ad90bb87fa28ef75ed75d71cd 100644
--- a/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimBasedMapper.java
+++ b/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimBasedAdapter.java
@@ -1,9 +1,9 @@
 package de.ozgcloud.eingang.fim;
 
 import de.ozgcloud.eingang.common.formdata.FormData;
+import de.ozgcloud.eingang.common.formdata.FormHeader;
 import de.ozgcloud.eingang.common.formdata.IncomingFile;
-import de.ozgcloud.eingang.common.formdata.IncomingFileGroup;
-import de.ozgcloud.eingang.semantik.enginebased.EngineBasedMapper;
+import de.ozgcloud.eingang.semantik.enginebased.EngineBasedSemantikAdapter;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -14,41 +14,32 @@ import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
 import java.io.IOException;
-import java.util.Collection;
-import java.util.List;
 import java.util.Optional;
 
 @Log4j2
 @Component
-class FimBasedMapper implements EngineBasedMapper {
+public class FimBasedAdapter implements EngineBasedSemantikAdapter {
+
+    static final String FIM_FORM_ENGINE_NAME = "FIM";
 
     @Autowired
     private FimService fimService;
 
+    @Override
     public boolean isResponsible(final FormData formData) {
-        //FIXME isResponsible from meta data
-        final List<IncomingFileGroup> attachments = formData.getAttachments();
-        final Optional<IncomingFile> metadataFileOpt = findFile(attachments, "fim_xtaMetadata.xml");
-        return metadataFileOpt.isPresent();
+        final String formEngineName = formData.getHeader().getFormEngineName();
+        return FIM_FORM_ENGINE_NAME.equals(formEngineName);
     }
 
+    @Override
     public FormData parseFormData(final FormData initialFormData) {
-        if (!isResponsible(initialFormData)) {
-            return initialFormData;
-        }
-
-        final List<IncomingFileGroup> attachments = initialFormData.getAttachments();
-        final Optional<IncomingFile> metadataFileOpt = findFile(attachments, "fim_xtaMetadata.xml");
-        if (metadataFileOpt.isEmpty()) {
-            LOG.error("Metadata File not found for fim data mapping");
-            return initialFormData;
-        }
-        final Optional<String> entryPointOpt = getEntryPoint(metadataFileOpt.get());
+        LOG.info("FIM Mapper running to map formData");
+        final Optional<String> entryPointOpt = getEntryPoint(initialFormData.getHeader());
         if (entryPointOpt.isEmpty()) {
             LOG.error("No entry point found in metadata file for fim data mapping");
             return initialFormData;
         }
-        final Optional<IncomingFile> fileOpt = findFile(attachments, entryPointOpt.get());
+        final Optional<IncomingFile> fileOpt = findFile(initialFormData, entryPointOpt.get());
         if (fileOpt.isEmpty()) {
             LOG.error("Entry point file not found for fim data mapping");
             return initialFormData;
@@ -62,19 +53,17 @@ class FimBasedMapper implements EngineBasedMapper {
         }
     }
 
-    private Optional<IncomingFile> findFile(final Collection<IncomingFileGroup> attachments, final String name) {
-        for (IncomingFileGroup group : attachments) {
-            for (IncomingFile file : group.getFiles()) {
-                if (file.getName().endsWith(name)) {
-                    return Optional.of(file);
-                }
+    private Optional<IncomingFile> findFile(final FormData formData, final String name) {
+        for (IncomingFile file : formData.getRepresentations()) {
+            if (file.getName().endsWith(name)) {
+                return Optional.of(file);
             }
         }
         return Optional.empty();
     }
 
-    private Optional<String> getEntryPoint(final IncomingFile incomingFile) {
-        // FIXME sollte über formdata metadaten kommen statt aus dem meta file geparsed zu werden
+    private Optional<String> getEntryPoint(final FormHeader formHeader) {
+        // FIXME OZG-5778 sollte über formdata metadaten kommen statt aus dem meta file geparsed zu werden
         return Optional.of("Antrag.xml");
     }
 
diff --git a/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimDataMapper.java b/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimDataMapper.java
index 799798b5cc151c199a7b80534d7d834f1fb6c746..58606186dbe3b312b385398a8fbaece81c688c18 100644
--- a/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimDataMapper.java
+++ b/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimDataMapper.java
@@ -1,6 +1,7 @@
 package de.ozgcloud.eingang.fim;
 
 import de.ozgcloud.eingang.common.formdata.FormData;
+import de.ozgcloud.eingang.common.formdata.IncomingFile;
 import de.ozgcloud.eingang.common.formdata.IncomingFileGroup;
 import lombok.extern.log4j.Log4j2;
 import org.apache.commons.lang3.function.TriFunction;
@@ -11,25 +12,23 @@ import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import org.w3c.dom.Text;
 
-import java.util.Collection;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
 
 @Service
 @Log4j2
-class FimDataMapper implements TriFunction<Document, FimScheme, Collection<IncomingFileGroup>, FormData.FormDataBuilder> {
+class FimDataMapper implements TriFunction<Document, FimScheme, FormData, FormData.FormDataBuilder> {
 
     private static final String LABEL_KEY = "label";
     private static final String VALUE_KEY = "value";
 
     @Override
-    public FormData.FormDataBuilder apply(final Document document, final FimScheme fimScheme, final Collection<IncomingFileGroup> attachments) {
+    public FormData.FormDataBuilder apply(final Document document, final FimScheme fimScheme, final FormData initialFormData) {
         final FormData.FormDataBuilder formDataBuilder = FormData.builder();
         Map<String, Object> data = new LinkedHashMap<>();
         process(document.getDocumentElement(), fimScheme, data, 0);
         formDataBuilder.formData(data);
-        formDataBuilder.attachments(attachments);
+        formDataBuilder.attachments(initialFormData.getAttachments());
+        formDataBuilder.representations(initialFormData.getRepresentations());
         return formDataBuilder;
     }
 
diff --git a/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimService.java b/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimService.java
index b451d9521385ee1b133d5fe098be89e29e6c8333..fd2f21c98c447c62cb574fe02480105198c122ff 100644
--- a/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimService.java
+++ b/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimService.java
@@ -1,10 +1,12 @@
 package de.ozgcloud.eingang.fim;
 
 import de.ozgcloud.eingang.common.formdata.FormData;
+import de.ozgcloud.eingang.common.formdata.ZustaendigeStelle;
 import io.micrometer.common.util.StringUtils;
 import jakarta.annotation.PostConstruct;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.io.ResourceLoader;
 import org.springframework.stereotype.Service;
 import org.w3c.dom.Document;
 import org.xml.sax.SAXException;
@@ -12,7 +14,6 @@ import org.xml.sax.SAXException;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
-import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
@@ -28,6 +29,9 @@ public class FimService {
     @Autowired
     private FimDataMapper fimDataMapper;
 
+    @Autowired
+    private ResourceLoader resourceLoader;
+
     @Autowired
     private final List<FimSchemeAdapter> fimSchemeAdapters = new ArrayList<>();
 
@@ -53,8 +57,9 @@ public class FimService {
     }
 
     private FimScheme loadFimScheme(final String path) throws ParserConfigurationException, IOException, SAXException {
+        LOG.debug("Load FIM schema: " + path);
         final DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
-        final Document doc = builder.parse(new File(path));
+        final Document doc = builder.parse(resourceLoader.getResource("classpath:" + path).getFile());
         final String targetNamespace = doc.getDocumentElement().getAttribute("targetNamespace");
         final FimSchemeIdentifier fimSchemeIdentifier = FimSchemeIdentifier.fromString(targetNamespace);
         final FimSchemeAdapter fimSchemeAdapter = fimSchemeAdapterCatalogue.getOrDefault(fimSchemeIdentifier, DEFAULT_FIM_SCHEME_ADAPTER);
@@ -69,12 +74,14 @@ public class FimService {
     }
 
     public FormData transformDocument(final Document document, final FormData initialFormData) {
-        final String schemeName = document.getDocumentElement().getAttribute("xmlns:xfd");
+        final String[] tagParts = document.getDocumentElement().getTagName().split(":");
+        final String namespacePrefix = tagParts.length < 2 ? "" : (":" + tagParts[0]);
+        final String schemeName = document.getDocumentElement().getAttribute("xmlns" + namespacePrefix);
         if (StringUtils.isEmpty(schemeName)) {
             throw new FimException("XML Document does not provide a scheme");
         }
         final FimScheme scheme = getSchemeForIdentifier(schemeName);
-        final FormData.FormDataBuilder builder = fimDataMapper.apply(document, scheme, initialFormData.getAttachments());
+        final FormData.FormDataBuilder builder = fimDataMapper.apply(document, scheme, initialFormData);
 
         final FimSchemeAdapter adapter = scheme.getSchemeAdapter();
 
diff --git a/fim-adapter/src/main/resources/application-fim.yml b/fim-adapter/src/main/resources/application-fim.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1300ecebf1e79ceb73ec6d4a99104b8652368012
--- /dev/null
+++ b/fim-adapter/src/main/resources/application-fim.yml
@@ -0,0 +1,3 @@
+fim:
+  schemeLocations:
+    - fim-s17000652_1.4/S17000652V1.4_xfall.xsd
\ No newline at end of file
diff --git a/fim-adapter/src/main/resources/application.yml b/fim-adapter/src/main/resources/application.yml
deleted file mode 100644
index c52241b27c1372ce3e347313c23d3cf710766e15..0000000000000000000000000000000000000000
--- a/fim-adapter/src/main/resources/application.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-fim:
-  schemeLocations:
-    - src/main/resources/fim-s17000652_1.4/S17000652V1.4_xfall.xsd
\ No newline at end of file
diff --git a/fim-adapter/src/test/java/de/ozgcloud/eingang/fim/FimServiceITCase.java b/fim-adapter/src/test/java/de/ozgcloud/eingang/fim/FimServiceITCase.java
index 747c8a758932029c830174b894962c7afa933fe4..886bfbefdf7a56498e408582fb8139cf6d08eb17 100644
--- a/fim-adapter/src/test/java/de/ozgcloud/eingang/fim/FimServiceITCase.java
+++ b/fim-adapter/src/test/java/de/ozgcloud/eingang/fim/FimServiceITCase.java
@@ -2,8 +2,8 @@ package de.ozgcloud.eingang.fim;
 
 import de.ozgcloud.common.test.ITCase;
 import de.ozgcloud.eingang.common.formdata.FormData;
+import de.ozgcloud.eingang.common.formdata.FormHeader;
 import de.ozgcloud.eingang.common.formdata.IncomingFile;
-import de.ozgcloud.eingang.common.formdata.IncomingFileGroup;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
 
@@ -18,6 +18,7 @@ import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
 import java.io.File;
 import java.io.IOException;
+import java.util.List;
 import java.util.Map;
 import org.junit.jupiter.api.Test;
 
@@ -34,7 +35,7 @@ public class FimServiceITCase {
     private FimService fimService;
 
     @Autowired
-    private FimBasedMapper fimBasedMapper;
+    private FimBasedAdapter fimBasedAdapter;
 
     @Test
     void shouldFailOnEmptyScheme() {
@@ -75,6 +76,18 @@ public class FimServiceITCase {
         assertThat(expected).isEqualTo(formData.getFormData());
     }
 
+    @Test
+    void shouldTransformSimpleDocumentWithoutNamespace() throws ParserConfigurationException, IOException, SAXException {
+        final Document document = loadDocument("src/test/resources/test3.xml");
+        final FormData formData = fimService.transformDocument(document, FormData.builder().build());
+
+        final Map<String, Object> expected = Map.of(
+                "fim.S1235", Map.of("label", "Testkey", "value", "Testvalue"),
+                "fim.S1236", Map.of("label", "fim.S1236", "value", "Testvalue 2")
+        );
+        assertThat(expected).isEqualTo(formData.getFormData());
+    }
+
     @Test
     void shouldTransformDocument() throws ParserConfigurationException, IOException, SAXException {
         final Document document = loadDocument("src/test/resources/S17000652V1.4_test01.xml");
@@ -130,12 +143,13 @@ public class FimServiceITCase {
 
     @Test
     void shouldFallbackUnknownScheme() {
-        final FormData initialFormData = FormData.builder().attachment(
-                IncomingFileGroup.builder()
-                        .file(IncomingFile.builder().name("src/test/resources/test3/Antrag.xml").file(new File("src/test/resources/test3/Antrag.xml")).build())
-                        .file(IncomingFile.builder().name("src/test/resources/test3/fim_xtaMetadata.xml").build()).build()).build();
+        IncomingFile r1 = IncomingFile.builder().name("src/test/resources/test3/Antrag.xml").file(new File("src/test/resources/test3/Antrag.xml")).build();
+        IncomingFile r2 = IncomingFile.builder().name("src/test/resources/test3/fim_xtaMetadata.xml").build();
+        final FormData initialFormData = FormData.builder()
+                .header(FormHeader.builder().channel("XTA").formEngineName("FIM").build())
+                .representations(List.of(r1, r2)).build();
 
-        FormData formData = fimBasedMapper.parseFormData(initialFormData);
+        FormData formData = fimBasedAdapter.parseFormData(initialFormData);
 
         assertThat(formData).isNotNull();
 
diff --git a/fim-adapter/src/test/resources/application-test.yml b/fim-adapter/src/test/resources/application-test.yml
index 62a350e59592d16174ebee0bfd9d261b9f4e4942..148c1af75dbdac7d1dff1c5632d01cf06dae9a83 100644
--- a/fim-adapter/src/test/resources/application-test.yml
+++ b/fim-adapter/src/test/resources/application-test.yml
@@ -1,4 +1,4 @@
 fim:
   schemeLocations:
-    - src/main/resources/fim-s17000652_1.4/S17000652V1.4_xfall.xsd
-    - src/test/resources/test2/test2.xsd
\ No newline at end of file
+    - fim-s17000652_1.4/S17000652V1.4_xfall.xsd
+    - test2/test2.xsd
\ No newline at end of file
diff --git a/fim-adapter/src/test/resources/test2.xml b/fim-adapter/src/test/resources/test2.xml
index 6d219fb5cbb394f5d73e8a427f4b525f226c7168..2f0cc4f8bea8e30285f6169ce07494e6beac535d 100644
--- a/fim-adapter/src/test/resources/test2.xml
+++ b/fim-adapter/src/test/resources/test2.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<xs:fim.S1234 xmlns:xfd="test2" xsi:schemaLocation="test2">
+<xs:fim.S1234 xmlns:xs="test2" xsi:schemaLocation="test2">
     <xs:fim.S1235>Testvalue</xs:fim.S1235>
     <xs:fim.S1236>Testvalue 2</xs:fim.S1236>
 </xs:fim.S1234>
diff --git a/fim-adapter/src/test/resources/test3.xml b/fim-adapter/src/test/resources/test3.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c00618791b8e8cf12a435c98733ced256bc61eab
--- /dev/null
+++ b/fim-adapter/src/test/resources/test3.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<fim.S1234 xmlns="test2" xsi:schemaLocation="test2">
+    <fim.S1235>Testvalue</fim.S1235>
+    <fim.S1236>Testvalue 2</fim.S1236>
+</fim.S1234>
diff --git a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/SemantikAdapter.java b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/SemantikAdapter.java
index 455d84f4ad8d9727137bf98d8e1e5c54cd430c6f..9168807d8b4e2a6c52ae95c8bb509ffd04ecd1d8 100644
--- a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/SemantikAdapter.java
+++ b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/SemantikAdapter.java
@@ -54,7 +54,8 @@ public class SemantikAdapter {
 	}
 
 	private FormData parseByEngineAdapter(FormData formData) {
-		for (var adapter : getResponsibleEngineAdapters(formData)) {
+		List<EngineBasedSemantikAdapter> responsibleEngineAdapters = getResponsibleEngineAdapters(formData);
+		for (var adapter : responsibleEngineAdapters) {
 			try {
 				formData = adapter.parseFormData(formData);
 			} catch (Exception e) {
diff --git a/xta-adapter/pom.xml b/xta-adapter/pom.xml
index 424074a4c92877779135b8a60cb101e8ff48cb0b..46baa1f9e235e262e1f1dd6b1ae8d0e23b205989 100644
--- a/xta-adapter/pom.xml
+++ b/xta-adapter/pom.xml
@@ -107,6 +107,28 @@
 					<profiles>local,sec</profiles>
 				</configuration>
 			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-dependency-plugin</artifactId>
+				<executions>
+					<execution>
+						<goals>
+							<goal>unpack</goal>
+						</goals>
+						<configuration>
+							<artifactItems>
+								<artifactItem>
+									<groupId>de.ozgcloud.eingang</groupId>
+									<artifactId>fim-adapter</artifactId>
+									<version>${project.version}</version>
+									<includes>**/*.yml,**/*.xml,**/*.xsd</includes>
+								</artifactItem>
+							</artifactItems>
+							<outputDirectory>${project.build.directory}/classes/</outputDirectory>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
 			<plugin>
 				<groupId>org.apache.maven.plugins</groupId>
 				<artifactId>maven-failsafe-plugin</artifactId>
diff --git a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaMapperHelper.java b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaMapperHelper.java
new file mode 100644
index 0000000000000000000000000000000000000000..5711cb57e1644e1c4325421671f7cb480eda8408
--- /dev/null
+++ b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaMapperHelper.java
@@ -0,0 +1,31 @@
+package de.ozgcloud.eingang.xta;
+
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
+
+import java.time.ZonedDateTime;
+
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public class XtaMapperHelper {
+
+    public static String getFormEngineName(XtaMessageMetaData metaData) {
+        if (StringUtils.equals(metaData.getMessageType(), XtaService.XDOMEA_0201_MESSAGE_TYPE)) {
+            // TODO OZG-5778 verify the correct engine name
+            return "XDOMEA";
+        }
+
+        if (StringUtils.startsWith(metaData.getMessageType(), XtaService.FIM_MESSAGE_TYPE_PREFIX)) {
+            return "FIM";
+        }
+        return null;
+    }
+
+    // TODO OZG-6176 Check if the problem can be fixed elsewhere
+    public static ZonedDateTime getCreatedAt(XtaMessageMetaData metaData) {
+        if (metaData.getOrigin() != null) {
+            return metaData.getOrigin();
+        }
+        return ZonedDateTime.now();
+    }
+}
diff --git a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaMessageMapper.java b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaMessageMapper.java
index 35e60dc6ffa846c57121ad889fe7e3b524d3e129..09d353faf28d73111a2696cfc89e47978f9d07b4 100644
--- a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaMessageMapper.java
+++ b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaMessageMapper.java
@@ -9,7 +9,7 @@ import de.ozgcloud.eingang.common.formdata.FormHeader;
 import de.ozgcloud.eingang.common.vorgang.VorgangNummerSupplier;
 import de.ozgcloud.eingang.semantik.enginebased.FilesMapperHelper;
 
-@Mapper(imports = FilesMapperHelper.class)
+@Mapper(imports = {FilesMapperHelper.class, XtaMapperHelper.class})
 interface XtaMessageMapper {
 	int VORGANG_NUMMER_SUFFIX_LENGTH = 4;
 
@@ -29,10 +29,11 @@ interface XtaMessageMapper {
 	@Mapping(target = "requestId", source = "messageId")
 	@Mapping(target = "vorgangNummer", expression = "java(vorgangNummerSupplier.get(VORGANG_NUMMER_SUFFIX_LENGTH))")
 	@Mapping(target = "serviceKonto", ignore = true)
-	@Mapping(target = "createdAt", source = "origin")
+	@Mapping(target = "createdAt", expression = "java(XtaMapperHelper.getCreatedAt(metaData))")
 	@Mapping(target = "sender", constant = "XTA")
+	@Mapping(target = "channel", constant = "XTA")
 	@Mapping(target = "formName", ignore = true)
-	@Mapping(target = "formEngineName", ignore = true)
+	@Mapping(target = "formEngineName", expression = "java(XtaMapperHelper.getFormEngineName(metaData))")
 	FormHeader formHeaderFromMetaData(XtaMessageMetaData metaData, @Context VorgangNummerSupplier vorgangNummerSupplier);
 
 	default String fromId(XtaMessageId id) {
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 0c497d51f85560d84085d663c2bc32aaf46a408e..ceed7a9c13bbc8a8d9a5817dbf762d2c2c4c33e0 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")
+@Profile({"!itcase", "fim"})
 @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 203cff44770add307aeab236f0bc9388427b9563..4fccd8d8a8cf29f762e97b775aeae9a72c66bb76 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,6 +1,6 @@
 package de.ozgcloud.eingang.xta;
 
-import static java.util.Collections.*;
+import static java.util.Collections.emptyList;
 
 import java.util.List;
 import java.util.Spliterators;
diff --git a/xta-adapter/src/main/resources/application.yml b/xta-adapter/src/main/resources/application.yml
index 9ea49363440c8f86d870397d00007ff0aed7e041..fd1f72982999b468311a1f7ec9faf5cec1b8a67d 100644
--- a/xta-adapter/src/main/resources/application.yml
+++ b/xta-adapter/src/main/resources/application.yml
@@ -13,3 +13,7 @@ ozgcloud:
       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"
+
+fim:
+  schemeLocations:
+    - fim-s17000652_1.4/S17000652V1.4_xfall.xsd
\ No newline at end of file
diff --git a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/FormHeaderTestFactory.java b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/FormHeaderTestFactory.java
index acd02b8efce3f09542c8dc5c748850027ad27072..be839ff4c74e238e98aed2a2237fe2f154ed59e4 100644
--- a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/FormHeaderTestFactory.java
+++ b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/FormHeaderTestFactory.java
@@ -7,6 +7,9 @@ public class FormHeaderTestFactory {
 
 	private static final String FORM_NAME = "xdomea";
 	static final String VORGANGNUMMER = "vorgangNummer";
+	static final String CHANNEL = "XTA";
+	static final String FIM_FORM_ENGINE_NAME = "FIM";
+	static final String XDOMEA_FORM_ENGINE_NAME = "XDOMEA";
 
 	static FormHeader create() {
 		return createBuilder().build();
diff --git a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaMessageMapperTest.java b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaMessageMapperTest.java
index 653f1c4f8884f1a61543b7bbc3be19af8042aa35..83d1dc8f4fee83ad384db085315e9fbcc37cd075 100644
--- a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaMessageMapperTest.java
+++ b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaMessageMapperTest.java
@@ -72,8 +72,46 @@ class XtaMessageMapperTest {
 			assertThat(formData.getHeader().getVorgangNummer()).isEqualTo(FormHeaderTestFactory.VORGANGNUMMER);
 		}
 
+		@Test
+		void shouldSetChannelXTA() {
+			var formData = doMapping();
+
+			assertThat(formData.getHeader().getChannel()).isEqualTo(FormHeaderTestFactory.CHANNEL);
+		}
+
+		@Test
+		void shouldSetFormEngineName() {
+			var formData = doMapping();
+
+			assertThat(formData.getHeader().getFormEngineName()).isEqualTo(FormHeaderTestFactory.XDOMEA_FORM_ENGINE_NAME);
+		}
+
+
 		private FormData doMapping() {
 			return mapper.toFormData(representationsAttachmentsPair, xtaMessageMetaData, vorgangNummerSupplier);
 		}
 	}
+
+	@Nested
+	class TestToFimFormData {
+
+
+		private XtaMessageMetaData xtaMessageMetaData;
+		private RepresentationsAttachmentsPair representationsAttachmentsPair;
+
+		@BeforeEach
+		void mock() {
+			xtaMessageMetaData = XtaMessageMetaDataTestFactory.createFim();
+			representationsAttachmentsPair = RepresentationsAttachmentsPairTestFactory.create();
+			when(vorgangNummerSupplier.get(VORGANG_NUMMER_SUFFIX_LENGTH)).thenReturn(FormHeaderTestFactory.VORGANGNUMMER);
+		}
+
+		@Test
+		void shouldSetFormEngineName() {
+			var formData =  mapper.toFormData(representationsAttachmentsPair, xtaMessageMetaData, vorgangNummerSupplier);
+
+			assertThat(formData.getHeader().getFormEngineName()).isEqualTo(FormHeaderTestFactory.FIM_FORM_ENGINE_NAME);
+		}
+
+	}
 }
diff --git a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaMessageMetaDataTestFactory.java b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaMessageMetaDataTestFactory.java
index d112294af7ba77c619baf1b9574a648ac1930b1f..fbe07498eb8d3435d1c739a268ace2273bc133ac 100644
--- a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaMessageMetaDataTestFactory.java
+++ b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaMessageMetaDataTestFactory.java
@@ -7,6 +7,7 @@ import java.time.ZonedDateTime;
 class XtaMessageMetaDataTestFactory {
 
 	static final String MESSAGE_TYPE = "Geschaeftsgang.Geschaeftsgang.0201";
+	static final String FIM_MESSAGE_TYPE = "fim.S17000652.17000652001004";
 	static final ZonedDateTime ORIGIN = ZonedDateTime.parse("2022-10-29T15:45:52.4942149+02:00");
 
 	static XtaMessageMetaData create() {
@@ -19,4 +20,15 @@ class XtaMessageMetaDataTestFactory {
 				.messageType(MESSAGE_TYPE)
 				.origin(ORIGIN);
 	}
+
+	static XtaMessageMetaData createFim() {
+		return createFimBuilder().build();
+	}
+
+	static XtaMessageMetaData.XtaMessageMetaDataBuilder createFimBuilder() {
+		return XtaMessageMetaData.builder()
+				.messageId(MESSAGE_ID)
+				.messageType(FIM_MESSAGE_TYPE)
+				.origin(ORIGIN);
+	}
 }
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 0d05f6c1ae589350c8bdca53632a13844c2ead6b..8e4c34115cc54be243a8ebed26fa148dc4c5b60f 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
@@ -23,9 +23,7 @@ import de.ozgcloud.eingang.common.formdata.FormData;
 import de.ozgcloud.eingang.common.formdata.IncomingFile;
 import de.ozgcloud.eingang.common.formdata.IncomingFileTestFactory;
 import de.ozgcloud.eingang.common.vorgang.VorgangNummerSupplier;
-import de.ozgcloud.eingang.xdomea.XdomeaMessageData;
 import de.ozgcloud.eingang.xdomea.XdomeaMessageDataMapper;
-import de.ozgcloud.eingang.xdomea.XdomeaMessageDataTestFactory;
 
 class XtaServiceTest {
 
@@ -252,6 +250,7 @@ class XtaServiceTest {
 			incomingFiles = List.of(IncomingFileTestFactory.create(), IncomingFileTestFactory.create());
 
 		}
+
 		@DisplayName("should return representations with incoming files")
 		@Test
 		void shouldReturnRepresentationsWithIncomingFiles() {
@@ -307,8 +306,7 @@ class XtaServiceTest {
 		private List<XtaMessageMetaData> getExpectedMessages() {
 			return Stream.concat(
 					XtaMessageMetaDatasAndHeaderTestFactory.create().getMessages(),
-					XtaMessageMetaDatasAndHeaderTestFactory.create().getMessages()
-			).toList();
+					XtaMessageMetaDatasAndHeaderTestFactory.create().getMessages()).toList();
 		}
 
 		@DisplayName("should call set current identifier")