diff --git a/common/src/main/java/de/itvsh/kop/eingangsadapter/common/formdata/FormData.java b/common/src/main/java/de/itvsh/kop/eingangsadapter/common/formdata/FormData.java
index 63bfd47f7ebe982e66315507cb6a17e7d38dd007..e453853dd85f354ff8d0ab59f86cef980c5607de 100644
--- a/common/src/main/java/de/itvsh/kop/eingangsadapter/common/formdata/FormData.java
+++ b/common/src/main/java/de/itvsh/kop/eingangsadapter/common/formdata/FormData.java
@@ -43,7 +43,8 @@ public class FormData {
 	@Builder.Default
 	private String id = UUID.randomUUID().toString();
 
-	private FormHeader header;
+	@Builder.Default
+	private FormHeader header = FormHeader.builder().build();
 
 	private ZustaendigeStelle zustaendigeStelle;
 	@ToString.Exclude
diff --git a/common/src/main/java/de/itvsh/kop/eingangsadapter/common/formdata/FormHeader.java b/common/src/main/java/de/itvsh/kop/eingangsadapter/common/formdata/FormHeader.java
index ca599555c2418396f0bf7106cb31ba910fb803f1..f637172c3141726b8e4d827832485d81835b19f7 100644
--- a/common/src/main/java/de/itvsh/kop/eingangsadapter/common/formdata/FormHeader.java
+++ b/common/src/main/java/de/itvsh/kop/eingangsadapter/common/formdata/FormHeader.java
@@ -32,7 +32,7 @@ import lombok.ToString;
 
 @Getter
 @Setter
-@Builder
+@Builder(toBuilder = true)
 @ToString
 public class FormHeader {
 
diff --git a/semantik-adapter/src/main/java/de/itvsh/kop/eingangsadapter/semantik/enginebased/ServiceKontoBuildHelper.java b/semantik-adapter/src/main/java/de/itvsh/kop/eingangsadapter/semantik/enginebased/ServiceKontoBuildHelper.java
index 4189c0af675af2d8e0b3cb795b58b9a06073e932..9e052241a6bc083a015b611098a402510c5d5311 100644
--- a/semantik-adapter/src/main/java/de/itvsh/kop/eingangsadapter/semantik/enginebased/ServiceKontoBuildHelper.java
+++ b/semantik-adapter/src/main/java/de/itvsh/kop/eingangsadapter/semantik/enginebased/ServiceKontoBuildHelper.java
@@ -25,11 +25,11 @@ public class ServiceKontoBuildHelper {
 	public static final String REST_RESPONSE_NAME_MEMBER_SCOPE = "memberscope";
 	public static final String REST_RESPONSE_NAME_MEMBER_SCOPE_MAILBOX_TYPE = "mailboxtype";
 
-	public ServiceKonto buildServicekonto(String postfachId) {
+	public ServiceKonto buildServiceKonto(String postfachId) {
 		return buildDefault(postfachId);
 	}
 
-	public ServiceKonto buildServiceKonto(String postfachId, FormData formData) { // NOSONAR
+	public ServiceKonto buildServiceKonto(String postfachId, FormData formData) {
 		return Optional.ofNullable(getRestResponseNames(formData))
 				.filter(names -> !names.isEmpty())
 				.map(restResponseNames -> buildWithRestResponseNames(postfachId, restResponseNames))
diff --git a/semantik-adapter/src/main/java/de/itvsh/kop/eingangsadapter/semantik/enginebased/formsolutions/FormSolutionsHeaderMapper.java b/semantik-adapter/src/main/java/de/itvsh/kop/eingangsadapter/semantik/enginebased/formsolutions/FormSolutionsHeaderMapper.java
index 5b453a6a3be544fc1ccf7329ed053c39db1f5281..b9990e7663eae32144e32c036f252d5daa72a291 100644
--- a/semantik-adapter/src/main/java/de/itvsh/kop/eingangsadapter/semantik/enginebased/formsolutions/FormSolutionsHeaderMapper.java
+++ b/semantik-adapter/src/main/java/de/itvsh/kop/eingangsadapter/semantik/enginebased/formsolutions/FormSolutionsHeaderMapper.java
@@ -65,8 +65,8 @@ class FormSolutionsHeaderMapper implements FormSolutionsEngineBasedMapper {
 				.formId(getIdentifier(formData))
 				.requestId(getRequestId(formData))
 				.formEngineName(FORM_ENGINE_NAME);
-		
-		Optional.ofNullable(getPostkorbhandle(formData)).map(serviceKontoBuildHelper::buildServicekonto).ifPresent(formHeaderBuilder::serviceKonto);
+
+		Optional.ofNullable(getPostkorbhandle(formData)).map(serviceKontoBuildHelper::buildServiceKonto).ifPresent(formHeaderBuilder::serviceKonto);
 
 		return formHeaderBuilder.build();
 	}
diff --git a/semantik-adapter/src/main/java/de/itvsh/kop/eingangsadapter/semantik/formbased/DFoerdermittelFormBasedMapper.java b/semantik-adapter/src/main/java/de/itvsh/kop/eingangsadapter/semantik/formbased/DFoerdermittelFormBasedMapper.java
index aba71d524317fb377a881a2b3feb9523cd74a4c6..4422fbd43859270eaf2e1f8a630f623d80f1617e 100644
--- a/semantik-adapter/src/main/java/de/itvsh/kop/eingangsadapter/semantik/formbased/DFoerdermittelFormBasedMapper.java
+++ b/semantik-adapter/src/main/java/de/itvsh/kop/eingangsadapter/semantik/formbased/DFoerdermittelFormBasedMapper.java
@@ -5,23 +5,34 @@ import java.io.InputStream;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Optional;
 import java.util.function.Predicate;
 
+import org.apache.commons.collections4.MapUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
 
 import com.fasterxml.jackson.dataformat.xml.XmlMapper;
 
 import de.itvsh.kop.eingangsadapter.common.formdata.FormData;
 import de.itvsh.kop.eingangsadapter.common.formdata.IncomingFile;
+import de.itvsh.kop.eingangsadapter.common.formdata.ServiceKonto;
+import de.itvsh.kop.eingangsadapter.semantik.enginebased.ServiceKontoBuildHelper;
 import lombok.extern.log4j.Log4j2;
 
 @Log4j2
+@Component
 public class DFoerdermittelFormBasedMapper implements FormBasedMapper {
 
 	private static final String FACHNACHRICHT_SUFFIX = "Fachnachricht.xml";
 	private static final Predicate<IncomingFile> IS_FACHNACHRICHT = inFile -> StringUtils.endsWith(inFile.getName(), FACHNACHRICHT_SUFFIX);
 
 	private static final String KEY_FACHNACHRICHT = "Fachnachricht";
+	private static final String KEY_POSTFACH_ID = "InboxReference";
+
+	@Autowired
+	private ServiceKontoBuildHelper serviceKontoHelper;
 
 	@Override
 	public FormData parseFormData(FormData formData) {
@@ -30,11 +41,28 @@ public class DFoerdermittelFormBasedMapper implements FormBasedMapper {
 				.orElse(formData);
 	}
 
+	FormData addServiceKonto(FormData formData) {
+		@SuppressWarnings("unchecked")
+		Map<String, Object> fachnachricht = (Map<String, Object>) MapUtils.getMap(formData.getFormData(), KEY_FACHNACHRICHT,
+				Collections.<String, Object>emptyMap());
+
+		return Optional.ofNullable((String) fachnachricht.get(KEY_POSTFACH_ID))
+				.map(this::createServiceKonto)
+				.map(serviceKonto -> formData.getHeader().toBuilder().serviceKonto(serviceKonto).build())
+				.map(header -> formData.toBuilder().header(header).build())
+				.orElse(formData);
+
+	}
+
+	private ServiceKonto createServiceKonto(String postfachId) {
+		return serviceKontoHelper.buildServiceKonto(postfachId);
+	}
+
 	FormData parseFachnachricht(FormData formData, IncomingFile fachnachrichtFile) {
 		// TODO allow re-reading of incoming file
 		var fachnachrichtData = extractFormDataFormXML(fachnachrichtFile.getContentStream());
 
-		if (fachnachrichtData != null) {
+		if (MapUtils.isNotEmpty(fachnachrichtData)) {
 			var editable = new HashMap<>(formData.getFormData());
 			editable.put(KEY_FACHNACHRICHT, fachnachrichtData);
 			return formData.toBuilder().formData(Collections.unmodifiableMap(editable)).build();
@@ -52,7 +80,7 @@ public class DFoerdermittelFormBasedMapper implements FormBasedMapper {
 		} catch (IOException e) {
 			LOG.error("Error reading xml fachnachricht.", e);
 		}
-		return null;
+		return Collections.emptyMap();
 	}
 
 	@Override
diff --git a/semantik-adapter/src/test/java/de/itvsh/kop/eingangsadapter/semantik/enginebased/formsolutions/FormSolutionsHeaderMapperTest.java b/semantik-adapter/src/test/java/de/itvsh/kop/eingangsadapter/semantik/enginebased/formsolutions/FormSolutionsHeaderMapperTest.java
index 72028949552e4ee60df7ccbf7a778652f12d2c82..457e458d58eeba1b8b219f93459b7941e593b312 100644
--- a/semantik-adapter/src/test/java/de/itvsh/kop/eingangsadapter/semantik/enginebased/formsolutions/FormSolutionsHeaderMapperTest.java
+++ b/semantik-adapter/src/test/java/de/itvsh/kop/eingangsadapter/semantik/enginebased/formsolutions/FormSolutionsHeaderMapperTest.java
@@ -119,7 +119,7 @@ class FormSolutionsHeaderMapperTest {
 				void shouldCallServiceKontoBuildHelper() {
 					buildFormHeader();
 
-					verify(serviceKontoBuildHelper).buildServicekonto(any());
+					verify(serviceKontoBuildHelper).buildServiceKonto(any());
 				}
 
 				@Test
@@ -128,7 +128,7 @@ class FormSolutionsHeaderMapperTest {
 
 					mapper.buildFormHeader(formDataWithoutPostkorbHandle);
 
-					verify(serviceKontoBuildHelper, never()).buildServicekonto(any());
+					verify(serviceKontoBuildHelper, never()).buildServiceKonto(any());
 				}
 
 			}
diff --git a/semantik-adapter/src/test/java/de/itvsh/kop/eingangsadapter/semantik/formbased/DFoerdermittelFormBasedMapperTest.java b/semantik-adapter/src/test/java/de/itvsh/kop/eingangsadapter/semantik/formbased/DFoerdermittelFormBasedMapperTest.java
index fc7eea7f60f121d5d74fde20d4082376117c90cb..31ef8cf55fd76c93dad228d76e47fabae4a0259f 100644
--- a/semantik-adapter/src/test/java/de/itvsh/kop/eingangsadapter/semantik/formbased/DFoerdermittelFormBasedMapperTest.java
+++ b/semantik-adapter/src/test/java/de/itvsh/kop/eingangsadapter/semantik/formbased/DFoerdermittelFormBasedMapperTest.java
@@ -11,12 +11,15 @@ 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.Spy;
 
 import de.itvsh.kop.common.test.TestUtils;
 import de.itvsh.kop.eingangsadapter.common.formdata.FormData;
 import de.itvsh.kop.eingangsadapter.common.formdata.FormDataTestFactory;
 import de.itvsh.kop.eingangsadapter.common.formdata.IncomingFile;
+import de.itvsh.kop.eingangsadapter.common.formdata.ServiceKontoTestFactory;
+import de.itvsh.kop.eingangsadapter.semantik.enginebased.ServiceKontoBuildHelper;
 
 class DFoerdermittelFormBasedMapperTest {
 
@@ -24,6 +27,9 @@ class DFoerdermittelFormBasedMapperTest {
 	@InjectMocks
 	private DFoerdermittelFormBasedMapper mapper;
 
+	@Mock
+	private ServiceKontoBuildHelper serviceKontoHelper;
+
 	@Nested
 	class TestIsResponsible {
 
@@ -72,15 +78,12 @@ class DFoerdermittelFormBasedMapperTest {
 		@Nested
 		class HandleFachnachrichtData {
 
-			private Map<String, Object> extracted = Collections.emptyMap();
-
-			@BeforeEach
-			void init() {
-				doReturn(extracted).when(mapper).extractFormDataFormXML(any());
-			}
+			private Map<String, Object> extracted = Map.of("name", "Theo");
 
 			@Test
 			void shouldCallExtractData() {
+				doReturn(extracted).when(mapper).extractFormDataFormXML(any());
+
 				mapper.parseFachnachricht(createWithFachnachricht(), createFachnachrichtFile());
 
 				verify(mapper).extractFormDataFormXML(notNull());
@@ -88,13 +91,22 @@ class DFoerdermittelFormBasedMapperTest {
 
 			@Test
 			void shouldAddMap() {
+				doReturn(extracted).when(mapper).extractFormDataFormXML(any());
 
 				var result = mapper.parseFachnachricht(createWithFachnachricht(), createFachnachrichtFile());
 
 				assertThat(result.getFormData()).containsEntry("Fachnachricht", extracted);
 			}
-		}
 
+			@Test
+			void shouldIgnoreEmptyData() {
+				doReturn(Collections.emptyMap()).when(mapper).extractFormDataFormXML(any());
+
+				var result = mapper.parseFachnachricht(createWithFachnachricht(), createFachnachrichtFile());
+
+				assertThat(result.getFormData()).doesNotContainKey("Fachnachricht");
+			}
+		}
 	}
 
 	FormData createWithFachnachricht() {
@@ -112,4 +124,20 @@ class DFoerdermittelFormBasedMapperTest {
 				.name("Beispieldatensatz_Fachnachricht.xml")
 				.build();
 	}
+
+	@Nested
+	class TestAddServiceKonto {
+
+		@BeforeEach
+		void init() {
+			when(serviceKontoHelper.buildServiceKonto(any())).thenReturn(ServiceKontoTestFactory.create());
+		}
+
+		@Test
+		void shouldHaveServiceKonto() {
+			var formData = mapper.addServiceKonto(DFoerdermittelFormDataTestFactory.create());
+
+			assertThat(formData.getHeader().getServiceKonto()).isNotNull();
+		}
+	}
 }
diff --git a/semantik-adapter/src/test/java/de/itvsh/kop/eingangsadapter/semantik/formbased/DFoerdermittelFormDataTestFactory.java b/semantik-adapter/src/test/java/de/itvsh/kop/eingangsadapter/semantik/formbased/DFoerdermittelFormDataTestFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..19f9862e967395df80b73aa2a38ef774f4f8655c
--- /dev/null
+++ b/semantik-adapter/src/test/java/de/itvsh/kop/eingangsadapter/semantik/formbased/DFoerdermittelFormDataTestFactory.java
@@ -0,0 +1,21 @@
+package de.itvsh.kop.eingangsadapter.semantik.formbased;
+
+import java.util.Map;
+
+import de.itvsh.kop.eingangsadapter.common.formdata.FormData;
+
+class DFoerdermittelFormDataTestFactory {
+
+	static FormData create() {
+		return createBuilder().build();
+	}
+
+	static FormData.FormDataBuilder createBuilder() {
+		return FormData.builder()
+				.formData(Map.of("Fachnachricht", createFachnachrichtMap()));
+	}
+
+	static Map<String, Object> createFachnachrichtMap() {
+		return Map.of("InboxReference", "sh/sh/4dd01647-b9d9-4775-1b50-08da3d83800a");
+	}
+}
diff --git a/xta-adapter/pom.xml b/xta-adapter/pom.xml
index ead1be9978bd5e8dfaef3b176a1d1e193a3bb4c3..94ef45f82231b769e0bc9184910d1238faa00e60 100644
--- a/xta-adapter/pom.xml
+++ b/xta-adapter/pom.xml
@@ -97,6 +97,9 @@
 			<plugin>
 				<groupId>org.springframework.boot</groupId>
 				<artifactId>spring-boot-maven-plugin</artifactId>
+				<configuration>
+					<profiles>local,sec</profiles>
+				</configuration>
 			</plugin>
 			<plugin>
 				<groupId>org.apache.maven.plugins</groupId>