diff --git a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmEngineBasedAdapter.java b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmEngineBasedAdapter.java
index 5d7224c75ce7ff634737b79d28aeaf6e05931c6d..36a9a187a73b98daef840cd7784643867f4c7573 100644
--- a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmEngineBasedAdapter.java
+++ b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmEngineBasedAdapter.java
@@ -43,24 +43,15 @@ public class AfmEngineBasedAdapter implements EngineBasedSemantikAdapter {
 
 	@Override
 	public FormData parseFormData(FormData formData) {
-		var vorgangNummer = formData.getHeader().getVorgangNummer();
 		var processedFormData = intelliFormRepresentationAdapter.adaptByRepresentations(formData);
 
 		for (var mapper : mappers) {
 			processedFormData = mapper.parseFormData(processedFormData);
 		}
 
-		return removeProcessedData(addVorgangNummer(processedFormData, vorgangNummer));
+		return removeProcessedData(processedFormData);
 	}
 
-	private FormData addVorgangNummer(FormData formData, String vorgangNummer) {
-		return formData.toBuilder()
-				.header(formData.getHeader().toBuilder()
-						.vorgangNummer(vorgangNummer)
-						.build()
-				)
-				.build();
-	}
 
 	private FormData removeProcessedData(FormData formData) {
 		return FormDataUtils.from(formData)
diff --git a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmHeaderMapper.java b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmHeaderMapper.java
index 0f63ef3686963482d332dd1d844e75ae4d2ec865..42222ec8132a79c555967290dd1f2298ec930a18 100644
--- a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmHeaderMapper.java
+++ b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmHeaderMapper.java
@@ -67,6 +67,7 @@ class AfmHeaderMapper implements AfmEngineBasedMapper {
 
 		var formHeaderBuilder = FormHeader.builder()
 				.requestId((String) headerDataMap.get(ID))
+				.vorgangNummer((String) headerDataMap.get(ID))
 				.createdAt(getCreatedAt(headerDataMap))
 				.formId((String) headerDataMap.get(FORM_ID))
 				.formName((String) headerDataMap.get(FORM))
@@ -105,4 +106,4 @@ class AfmHeaderMapper implements AfmEngineBasedMapper {
 				.remove(ServiceKontoFactory.REST_RESPONSE_NAME)
 				.build();
 	}
-}
\ No newline at end of file
+}
diff --git a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmEngineBasedAdapterTest.java b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmEngineBasedAdapterTest.java
index 609284d26fccdb41ed91818c5df7ed0161990cdc..a99b67392b0c0cf2ce97c3230fc123280dc27857 100644
--- a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmEngineBasedAdapterTest.java
+++ b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmEngineBasedAdapterTest.java
@@ -100,13 +100,6 @@ class AfmEngineBasedAdapterTest {
 			assertThat(mappedFormData.getFormData()).doesNotContainKey(AfmAntragstellerMapper.POSTFACH_ID);
 		}
 
-		@DisplayName("should keep vorgang nummer")
-		@Test
-		void shouldKeepVorgangNummer() {
-			var mappedFormData = adapter.parseFormData(formData);
-
-			assertThat(mappedFormData.getHeader().getVorgangNummer()).isEqualTo(VORGANG_NUMMER);
-		}
 	}
 
 }
diff --git a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmHeaderMapperTest.java b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmHeaderMapperTest.java
index 7af0dcd5c208e6c3989c0e8be54948e382c45ac6..80a0e966be30d910f62596d02d669cc36d5062a8 100644
--- a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmHeaderMapperTest.java
+++ b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmHeaderMapperTest.java
@@ -77,6 +77,13 @@ class AfmHeaderMapperTest {
 					assertThat(parsedFormData.getHeader().getRequestId()).isEqualTo(AfmHeaderTestFactory.ID);
 				}
 
+				@Test
+				void shouldMapVorgangNummer() {
+					var parsedFormData = parseFormData();
+
+					assertThat(parsedFormData.getHeader().getVorgangNummer()).isEqualTo(AfmHeaderTestFactory.ID);
+				}
+
 				@Test
 				void shouldMapCreatedAt() {
 					var parsedFormData = parseFormData();
@@ -189,4 +196,4 @@ class AfmHeaderMapperTest {
 		}
 	}
 
-}
\ No newline at end of file
+}
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..e7525540e6bcc35f40434c68d1bcc0df7c12bbc5 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;
@@ -137,15 +138,30 @@ class XtaITCase {
 			assertThat(organisationseinheitenId).isEqualTo("9795669");
 		}
 
-		@DisplayName("should have vorgang nummer")
-		@TestZipFileNames
-		void shouldHaveVorgangNummer(String zipFileName) {
+		@DisplayName("should have generated vorgang nummer for dFoerdermittel")
+		@Test
+		void shouldHaveVorgangsnummer() {
+			mockNachrichtenBroker("dfoerdermittel_with_anlage.zip");
+
+			runner.runGetXtaMessages();
+
+			var vorgangsNummer = captureEingang()
+					.getHeader()
+					.getVorgangNummer();
+			assertThat(vorgangsNummer).hasSameSizeAs("4627-TY3X");
+		}
+
+		@DisplayName("should have vorgang nummer for AFM")
+		@TestZipFileNamesFromAFM
+		void shouldHaveVorgangsnummerForAfm(String zipFileName) {
 			mockNachrichtenBroker(zipFileName);
 
 			runner.runGetXtaMessages();
 
-			var vorgangNummer = captureEingang().getHeader().getVorgangNummer();
-			assertThat(vorgangNummer).hasSize(9);
+			var vorgangsNummer = captureEingang()
+					.getHeader()
+					.getVorgangNummer();
+			assertThat(vorgangsNummer).hasSameSizeAs("20240404370530710707");
 		}
 
 		private GrpcEingang captureEingang() {
@@ -219,6 +235,18 @@ class XtaITCase {
 	@interface TestZipFileNamesWithoutPdf {
 	}
 
+	@Target({ ElementType.METHOD })
+	@Retention(RetentionPolicy.RUNTIME)
+	@ParameterizedTest
+	@ValueSource(strings = {
+			"mantelantrag_without_anlage.zip",
+			"brauchtumsfeuer_without_anlage.zip",
+			"mantelantrag_with_anlage.zip",
+			"brauchtumsfeuer_with_anlage.zip",
+	})
+	@interface TestZipFileNamesFromAFM {
+	}
+
 	@Target({ ElementType.METHOD })
 	@Retention(RetentionPolicy.RUNTIME)
 	@ParameterizedTest