diff --git a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragZustaendigeStelleMapper.java b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragZustaendigeStelleMapper.java
index 9ddc1287c6c7433070c59de09264b0f8156bcc75..3e0ed8c3336fe365c2f8779cf1d6ecf98d37719f 100644
--- a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragZustaendigeStelleMapper.java
+++ b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragZustaendigeStelleMapper.java
@@ -1,11 +1,20 @@
 package de.ozgcloud.eingang.semantik.formbased.mantelantrag;
 
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
 import java.util.Map;
 import java.util.Optional;
+import java.util.Set;
 import java.util.function.UnaryOperator;
 import java.util.stream.IntStream;
 
+import jakarta.annotation.PostConstruct;
+
 import org.apache.commons.collections.MapUtils;
+import org.apache.logging.log4j.util.Strings;
+import org.springframework.boot.context.properties.bind.Bindable;
+import org.springframework.boot.context.properties.bind.Binder;
 import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Component;
 
@@ -32,6 +41,18 @@ public class MantelantragZustaendigeStelleMapper implements FormBasedMapper {
 	static final String TELEFON_FIELD = "telefon";
 
 	private final Environment environment;
+	private Set<String> xtaIdentifiers;
+
+	@PostConstruct
+	void init() {
+		xtaIdentifiers = new HashSet<>(getIdentifierList());
+	}
+
+	List<String> getIdentifierList() {
+		return Binder.get(environment)
+				.bind("ozgcloud.xta.identifiers", Bindable.listOf(String.class))
+				.orElseGet(Collections::emptyList);
+	}
 
 	@Override
 	public boolean isResponsible(FormData formData) {
@@ -46,11 +67,15 @@ public class MantelantragZustaendigeStelleMapper implements FormBasedMapper {
 		try {
 			return adaptFormDataWithPossibleException(formData);
 		} catch (TechnicalException exception) {
-			LOG.warn("Mantelantrag is invalid: %s".formatted(exception.getMessage()));
+			logWarningForFailure(exception);
 			return formData;
 		}
 	}
 
+	void logWarningForFailure(Exception exception) {
+		LOG.warn("Failed mapping Zustaendigestelle of Mantelantrag: %s".formatted(exception.getMessage()));
+	}
+
 	FormData adaptFormDataWithPossibleException(FormData formData) {
 		var fieldMap = formData.getFormData();
 		var slotIndex = findSlotIndex(fieldMap);
@@ -85,15 +110,40 @@ public class MantelantragZustaendigeStelleMapper implements FormBasedMapper {
 	}
 
 	int findSlotIndex(Map<String, Object> fieldMap) {
-		var identifier = environment.getProperty("ozgcloud.xta.identifier");
+		var matchingSlots = getMatchingSlots(fieldMap);
+		verifyOneMatchingIdentifier(matchingSlots);
+		return matchingSlots.getFirst();
+	}
+
+	private void verifyOneMatchingIdentifier(List<Integer> matchingSlots) {
+		if (matchingSlots.size() != 1) {
+			var message = getMultipleSlotsMessage(matchingSlots);
+			if (matchingSlots.isEmpty()) {
+				throw new TechnicalException(message);
+			} else {
+				logWarningForUnexpected(message);
+			}
+		}
+	}
+
+	void logWarningForUnexpected(String message) {
+		LOG.warn("Unexpected Zustaendigestelle in Mantelantrag: %s".formatted(message));
+	}
+
+	String getMultipleSlotsMessage(List<Integer> matchingSlots) {
+		return "Found %d matching nachrichtenbroker addresses! Expected one of '%s'.".formatted(matchingSlots.size(),
+				Strings.join(xtaIdentifiers, ','));
+	}
+
+	private List<Integer> getMatchingSlots(Map<String, Object> fieldMap) {
 		return IntStream.range(0, 3)
-				.filter(slotIndex -> getFieldByKeyOrEmpty(
-								fieldMap,
-								getNameForSlotIndex(ZUSTELLUNG_NACHRICHTENBROKER_FIELD, slotIndex)
-						).equals(identifier)
-				)
-				.findFirst()
-				.orElseThrow(() -> new TechnicalException("No matching nachrichtenbroker address '%s' found!".formatted(identifier)));
+				.filter(slotIndex -> xtaIdentifiers.contains(getXtaIdentifierOfSlot(fieldMap, slotIndex)))
+				.boxed()
+				.toList();
+	}
+
+	private String getXtaIdentifierOfSlot(Map<String, Object> fieldMap, int slotIndex) {
+		return getFieldByKeyOrEmpty(fieldMap, getNameForSlotIndex(ZUSTELLUNG_NACHRICHTENBROKER_FIELD, slotIndex));
 	}
 
 	String getNameForSlotIndex(String name, int slotIndex) {
diff --git a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragITCase.java b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragITCase.java
index 9d2094d600c3eed7495003e5dfa9ba969a9b4599..a4951086c82837ebc3c01ef5f19b8833882b0e3c 100644
--- a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragITCase.java
+++ b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragITCase.java
@@ -29,7 +29,7 @@ import de.ozgcloud.eingang.semantik.enginebased.formsolutions.FormSolutionsEngin
 import lombok.SneakyThrows;
 
 @ActiveProfiles({ "local", "itcase" })
-@SpringBootTest(classes = Application.class, properties = { "ozgcloud.xta.identifier=afmsh:ozg-cloud-utopia-test" })
+@SpringBootTest(classes = Application.class, properties = { "ozgcloud.xta.identifiers=afmsh:ozg-cloud-utopia-test" })
 public class MantelantragITCase {
 
 	private static final String FILE_NAME_XDOMEA = "mantelantrag/4620-EH6C_b3c9168a-6ae9-4361-8b2f-6837bb341021_Geschaeftsgang.Geschaeftsgang.0201.xml";
diff --git a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragZustaendigeStelleMapperTest.java b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragZustaendigeStelleMapperTest.java
index f03169a6704aae741e3234b82aff876448b027d6..2cad108d2ae30f76782b0c9ddfdd934becb9be37 100644
--- a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragZustaendigeStelleMapperTest.java
+++ b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragZustaendigeStelleMapperTest.java
@@ -5,6 +5,7 @@ import static org.assertj.core.api.Assertions.*;
 import static org.mockito.Mockito.*;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.function.Function;
 import java.util.stream.Stream;
@@ -17,10 +18,11 @@ import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.Arguments;
 import org.junit.jupiter.params.provider.MethodSource;
 import org.junit.jupiter.params.provider.ValueSource;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
 import org.mockito.Spy;
-import org.springframework.core.env.Environment;
 
 import de.ozgcloud.eingang.common.errorhandling.TechnicalException;
 import de.ozgcloud.eingang.common.formdata.FormData;
@@ -31,13 +33,18 @@ import de.ozgcloud.eingang.common.formdata.ZustaendigeStelle;
 class MantelantragZustaendigeStelleMapperTest {
 	private final static String TARGET_OEID = "123456";
 	private static final String IDENTIFIER = "gea:test";
+	private static final String IDENTIFIER2 = "dfad:test";
+	private static final List<String> IDENTIFIERS = List.of(IDENTIFIER, IDENTIFIER2, "aa:other");
 
 	@Spy
 	@InjectMocks
 	private MantelantragZustaendigeStelleMapper mapper;
 
-	@Mock
-	private Environment environment;
+	@BeforeEach
+	void mock() {
+		doReturn(IDENTIFIERS).when(mapper).getIdentifierList();
+		mapper.init();
+	}
 
 	@DisplayName("is responsible")
 	@Nested
@@ -128,6 +135,17 @@ class MantelantragZustaendigeStelleMapperTest {
 
 			assertThat(resultFormData).isEqualTo(formData);
 		}
+
+		@DisplayName("should log warning with exception")
+		@Test
+		void shouldLogWarningWithException() {
+			var exception = new TechnicalException("some error");
+			doThrow(exception).when(mapper).adaptFormDataWithPossibleException(formData);
+
+			mapper.parseFormData(formData);
+
+			verify(mapper).logWarningForFailure(exception);
+		}
 	}
 
 	@DisplayName("adapt form data with possible exception")
@@ -275,10 +293,11 @@ class MantelantragZustaendigeStelleMapperTest {
 
 		private Map<String, Object> fieldMap;
 
+		@Captor
+		private ArgumentCaptor<String> warningCaptor;
+
 		@BeforeEach
 		void mock() {
-			when(environment.getProperty("ozgcloud.xta.identifier")).thenReturn(IDENTIFIER);
-
 			fieldMap = new HashMap<>(Map.of(
 					getZustaendigeStelleName(1), "unknown",
 					getZustaendigeStelleName(2), ""
@@ -306,6 +325,18 @@ class MantelantragZustaendigeStelleMapperTest {
 			assertThatThrownBy(() -> mapper.findSlotIndex(fieldMap))
 					.isInstanceOf(TechnicalException.class);
 		}
+
+		@DisplayName("should log warning if multiple slots match")
+		@Test
+		void shouldLogWarningIfMultipleSlotsMatch() {
+			fieldMap.put(getZustaendigeStelleName(0), IDENTIFIER2);
+			fieldMap.put(getZustaendigeStelleName(2), IDENTIFIER);
+
+			mapper.findSlotIndex(fieldMap);
+
+			verify(mapper).logWarningForUnexpected(warningCaptor.capture());
+			assertThat(warningCaptor.getValue()).isEqualTo(mapper.getMultipleSlotsMessage(List.of(0, 2)));
+		}
 	}
 
 	@DisplayName("get name for slot index")
diff --git a/xta-adapter/src/main/helm/templates/xta_adapter_cronjob.yaml b/xta-adapter/src/main/helm/templates/xta_adapter_cronjob.yaml
index b8d0d2b9870587f17f992129bf23928c2bcb48a0..25da0415e81e4921e726683f62a7f9e1526a3d5a 100644
--- a/xta-adapter/src/main/helm/templates/xta_adapter_cronjob.yaml
+++ b/xta-adapter/src/main/helm/templates/xta_adapter_cronjob.yaml
@@ -63,8 +63,8 @@ spec:
                   value: {{ (.Values.xta).server.address }}
                 - name: ozgcloud_xta_server_protocol
                   value: {{ (.Values.xta).server.protocol }}
-                - name: ozgcloud_xta_identifier
-                  value: {{ quote (.Values.xta).identifier }}
+                - name: ozgcloud_xta_identifiers
+                  value: {{ (.Values.xta).identifiers | join "," | quote }}
                 - name: ozgcloud_xta_keystore_file
                   value: "keystore/xta-keystore.p12"
                 - name: ozgcloud_xta_keystore_password
@@ -170,4 +170,4 @@ spec:
           {{- with .Values.podSecurityContext }}
           securityContext:
 {{ toYaml . | indent 12 }}
-          {{- end }}
\ No newline at end of file
+          {{- end }}
diff --git a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/WsHeaderAddingInterceptor.java b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/WsHeaderAddingInterceptor.java
index a685b0a20bfc5a93b90dcd606cebb2dea31e8187..f0ae4deba9f754a290717d608921cc3acf353301 100644
--- a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/WsHeaderAddingInterceptor.java
+++ b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/WsHeaderAddingInterceptor.java
@@ -1,5 +1,11 @@
 package de.ozgcloud.eingang.xta;
 
+import java.util.Objects;
+
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBElement;
+import jakarta.xml.bind.JAXBException;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.ws.client.WebServiceClientException;
@@ -11,17 +17,12 @@ import de.ozgcloud.eingang.common.errorhandling.TechnicalException;
 import eu.osci.ws._2014._10.transport.OriginatorsType;
 import eu.osci.ws._2014._10.transport.PartyIdentifierType;
 import eu.osci.ws._2014._10.transport.PartyType;
-import jakarta.validation.Valid;
-import jakarta.xml.bind.JAXBContext;
-import jakarta.xml.bind.JAXBElement;
-import jakarta.xml.bind.JAXBException;
 
 @Component
 class WsHeaderAddingInterceptor implements ClientInterceptor {
 
 	@Autowired
-	@Valid
-	private XtaProperties properties;
+	private XtaCurrentIdentifierService xtaCurrentIdentifierService;
 
 	@Override
 	public boolean handleRequest(MessageContext messageContext) throws WebServiceClientException {
@@ -44,7 +45,10 @@ class WsHeaderAddingInterceptor implements ClientInterceptor {
 
 		PartyType partyType = new PartyType();
 		PartyIdentifierType identifier = new PartyIdentifierType();
-		identifier.setValue(properties.getIdentifier());
+		identifier.setValue(Objects.requireNonNull(
+				xtaCurrentIdentifierService.getCurrentIdentifier(),
+				"Expect current identifier to be set!")
+		);
 		partyType.setIdentifier(identifier);
 
 		var origin = new OriginatorsType();
diff --git a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaCurrentIdentifierService.java b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaCurrentIdentifierService.java
new file mode 100644
index 0000000000000000000000000000000000000000..f5f6b25a9b49c40f8a088305b237570a11761b14
--- /dev/null
+++ b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaCurrentIdentifierService.java
@@ -0,0 +1,28 @@
+package de.ozgcloud.eingang.xta;
+
+import java.util.List;
+
+import jakarta.validation.Valid;
+
+import org.springframework.stereotype.Service;
+
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+import lombok.Setter;
+
+@Service
+@RequiredArgsConstructor
+public class XtaCurrentIdentifierService {
+
+	@Setter
+	@Getter
+	private String currentIdentifier;
+
+	@Valid
+	private final XtaProperties properties;
+
+	public List<String> getIdentifiers() {
+		return properties.getIdentifiers();
+	}
+
+}
diff --git a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaProperties.java b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaProperties.java
index 2f31999ff99e8d9e997a8e57b6ee2b6260855beb..23a4e4bcc030f56f017200536653a3fca84c44d4 100644
--- a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaProperties.java
+++ b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaProperties.java
@@ -2,6 +2,7 @@ package de.ozgcloud.eingang.xta;
 
 import java.math.BigInteger;
 import java.net.URI;
+import java.util.List;
 
 import jakarta.validation.constraints.NotEmpty;
 import jakarta.validation.constraints.NotNull;
@@ -31,7 +32,7 @@ class XtaProperties {
 	private KeyStore keyStore;
 	private Actions actions;
 	@NotEmpty
-	private String identifier;
+	private List<String> identifiers;
 }
 
 @Validated
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 2341fbf6dc93899cb0c195ee6f09be52266c5c81..ae71ea062381ed78d7c32bb211100af55b55ed86 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
@@ -4,14 +4,13 @@ import java.util.Spliterators;
 import java.util.stream.Stream;
 import java.util.stream.StreamSupport;
 
-import de.ozgcloud.eingang.common.vorgang.VorgangNummerSupplier;
-import de.ozgcloud.eingang.xdomea.XdomeaMessageDataMapper;
-import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import de.ozgcloud.eingang.common.formdata.FormData;
+import de.ozgcloud.eingang.common.vorgang.VorgangNummerSupplier;
+import de.ozgcloud.eingang.xdomea.XdomeaMessageDataMapper;
 import lombok.NonNull;
 import lombok.extern.log4j.Log4j2;
 
@@ -31,12 +30,20 @@ class XtaService {
 	private XdomeaMessageDataMapper xdomeaMessageDataMapper;
 	@Autowired
 	private XtaIncomingFilesMapper xtaIncomingFilesMapper;
+	@Autowired
+	private XtaCurrentIdentifierService service;
 
 	public Stream<FormData> getMessages() {
 		return createXtaMessageStream().filter(this::isSupportedMessageType).map(this::getFormData);
 	}
 
 	Stream<XtaMessageMetaData> createXtaMessageStream() {
+		return service.getIdentifiers().stream()
+				.flatMap(this::createXtaMessageStreamForIdentifier);
+	}
+
+	private Stream<XtaMessageMetaData> createXtaMessageStreamForIdentifier(String identifier) {
+		service.setCurrentIdentifier(identifier);
 		var iterator = new XtaMessageMetadataRemoteIterator(remoteService);
 		return StreamSupport.stream(Spliterators.spliteratorUnknownSize(iterator, 0), false);
 	}
diff --git a/xta-adapter/src/main/resources/application-local.yml b/xta-adapter/src/main/resources/application-local.yml
index 83e7b8ca8d1088a6fcbae18446b9ac917d21f942..b35125c65bce0ce95de34f97fb97c398bbcefc15 100644
--- a/xta-adapter/src/main/resources/application-local.yml
+++ b/xta-adapter/src/main/resources/application-local.yml
@@ -1,6 +1,7 @@
 ozgcloud:
   xta:
-    identifier: gae:jens.reese@mgm-tp.com
+    identifiers:
+      - gae:jens.reese@mgm-tp.com
     server:
       address: localhost:3000
       name: LI33-0005
diff --git a/xta-adapter/src/test/helm/xta_adapter_cronjob_basic_test.yaml b/xta-adapter/src/test/helm/xta_adapter_cronjob_basic_test.yaml
index 3e4e37b8fe3f8ad0fce65be7a136aa3b8219431c..7eac13e81398613f23cc5e4dedc3309b69030c5a 100644
--- a/xta-adapter/src/test/helm/xta_adapter_cronjob_basic_test.yaml
+++ b/xta-adapter/src/test/helm/xta_adapter_cronjob_basic_test.yaml
@@ -60,7 +60,8 @@ tests:
       image.name: xta-adapter
       xta:
         schedule: "1 1 * * * *"
-        identifier: gae:test@ozg-sh.de
+        identifiers:
+          - gae:test@ozg-sh.de
         server: 
           address: 1.2.3.4
           name: test
@@ -144,4 +145,4 @@ tests:
           path: spec.jobTemplate.spec.template.spec.containers[0].securityContext.capabilities
           value:
             drop:
-              - ALL
\ No newline at end of file
+              - ALL
diff --git a/xta-adapter/src/test/helm/xta_adapter_cronjob_env_test.yaml b/xta-adapter/src/test/helm/xta_adapter_cronjob_env_test.yaml
index 30ad85fc12a3b14b56cecbbc4bc08b18f4d0d20a..77547800e84d3f8f60fe508c57df9e5f7d0a0de6 100644
--- a/xta-adapter/src/test/helm/xta_adapter_cronjob_env_test.yaml
+++ b/xta-adapter/src/test/helm/xta_adapter_cronjob_env_test.yaml
@@ -36,7 +36,9 @@ tests:
     set:
       image.name: xta-adapter
       xta:
-        identifier: gae:test@ozg-sh.de
+        identifiers:
+          - gae:test@ozg-sh.de
+          - afmsh:test@ozg-sh.de
         server:
           name: test
           address: 1.2.3.4
@@ -70,8 +72,8 @@ tests:
       - contains:
           path: spec.jobTemplate.spec.template.spec.containers[0].env
           content:
-            name: ozgcloud_xta_identifier
-            value: "gae:test@ozg-sh.de"
+            name: ozgcloud_xta_identifiers
+            value: "gae:test@ozg-sh.de,afmsh:test@ozg-sh.de"
       - contains:
           path: spec.jobTemplate.spec.template.spec.containers[0].env
           content:
@@ -116,7 +118,8 @@ tests:
       image.name: xta-adapter
       env.overrideSpringProfiles: local
       xta:
-        identifier: gae:test@ozg-sh.de
+        identifiers:
+          - gae:test@ozg-sh.de
         server:
           name: test
           address: 1.2.3.4
@@ -196,4 +199,4 @@ tests:
           path: spec.jobTemplate.spec.template.spec.containers[0].env
           content:
             name: my_test_environment_name
-            value: "A test value"
\ No newline at end of file
+            value: "A test value"
diff --git a/xta-adapter/src/test/helm/xta_adapter_cronjob_volumes_test.yaml b/xta-adapter/src/test/helm/xta_adapter_cronjob_volumes_test.yaml
index 7af81adc1e39cc206f113ab1e00415b147a65f99..352f196bf1b8a8cafccb6fa868e8da0efe595636 100644
--- a/xta-adapter/src/test/helm/xta_adapter_cronjob_volumes_test.yaml
+++ b/xta-adapter/src/test/helm/xta_adapter_cronjob_volumes_test.yaml
@@ -36,7 +36,8 @@ tests:
     set:
       image.name: xta-adapter
       xta:
-        identifier: gae:test@ozg-sh.de
+        identifiers:
+          - gae:test@ozg-sh.de
         server:
           name: test
           address: 1.2.3.4
@@ -66,7 +67,8 @@ tests:
     set:
       image.name: xta-adapter
       xta:
-        identifier: gae:test@ozg-sh.de
+        identifiers:
+          - gae:test@ozg-sh.de
         server:
           name: test
           address: 1.2.3.4
diff --git a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaCurrentIdentifierServiceTest.java b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaCurrentIdentifierServiceTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..884faf6b4dad5eda37f6be16c92b4e88cc3d095a
--- /dev/null
+++ b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaCurrentIdentifierServiceTest.java
@@ -0,0 +1,44 @@
+package de.ozgcloud.eingang.xta;
+
+import static org.assertj.core.api.Assertions.*;
+import static org.mockito.Mockito.*;
+
+import java.util.List;
+
+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.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Spy;
+
+class XtaCurrentIdentifierServiceTest {
+
+	private static final String IDENTIFIER1 = "identifier1";
+	private static final String IDENTIFIER2 = "identifier2";
+	private static final List<String> IDENTIFIERS = List.of(IDENTIFIER1, IDENTIFIER2);
+
+	@Spy
+	@InjectMocks
+	private XtaCurrentIdentifierService service;
+
+	@Mock
+	private XtaProperties properties;
+
+	@DisplayName("get identifiers")
+	@Nested
+	class TestGetIdentifiers {
+		@BeforeEach
+		void mock() {
+			when(properties.getIdentifiers()).thenReturn(IDENTIFIERS);
+		}
+
+		@DisplayName("should return")
+		@Test
+		void shouldReturn() {
+			assertThat(service.getIdentifiers()).isEqualTo(IDENTIFIERS);
+		}
+	}
+
+}
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 75a00a6610db89ffeaed0ba620d4676038fda296..997ce3bf36df47953077bbda509fc1f68705f83f 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
@@ -8,6 +8,7 @@ import java.util.List;
 import java.util.stream.Stream;
 
 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.mockito.ArgumentCaptor;
@@ -19,8 +20,8 @@ import org.mockito.Spy;
 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.XdomeaMessageDataTestFactory;
 import de.ozgcloud.eingang.xdomea.XdomeaMessageDataMapper;
+import de.ozgcloud.eingang.xdomea.XdomeaMessageDataTestFactory;
 
 class XtaServiceTest {
 
@@ -43,6 +44,9 @@ class XtaServiceTest {
 	@Mock
 	private XdomeaMessageDataMapper xdomeaMessageDataMapper;
 
+	@Mock
+	private XtaCurrentIdentifierService currentIdentifierService;
+
 	@Nested
 	class TestGetMessagesAsFormData {
 
@@ -124,7 +128,7 @@ class XtaServiceTest {
 		private ArgumentCaptor<XtaMessageMetaData> messageMetaDataCaptor;
 
 		@Captor
-		private ArgumentCaptor<XdomeaMessageData>  classificationCaptor;
+		private ArgumentCaptor<XdomeaMessageData> classificationCaptor;
 
 		@BeforeEach
 		void init() {
@@ -185,4 +189,46 @@ class XtaServiceTest {
 		}
 	}
 
+	@DisplayName("create XTA message stream")
+	@Nested
+	class TestCreateXtaMessageStream {
+		private static final List<String> XTA_IDENTIFIERS = List.of("XTA_IDENTIFIER", "XTA_IDENTIFIER2");
+
+		@Captor
+		private ArgumentCaptor<String> identifierCaptor;
+
+		@BeforeEach
+		void mock() {
+			when(remoteService.getMessagesMetadata())
+					.thenReturn(XtaMessageMetaDatasAndHeaderTestFactory.create())
+					.thenReturn(XtaMessageMetaDatasAndHeaderTestFactory.create());
+			when(currentIdentifierService.getIdentifiers()).thenReturn(XTA_IDENTIFIERS);
+		}
+
+		@DisplayName("should return")
+		@Test
+		void shouldReturn() {
+			var result = service.createXtaMessageStream().toList();
+
+			assertThat(result).isEqualTo(getExpectedMessages());
+		}
+
+		private List<XtaMessageMetaData> getExpectedMessages() {
+			return Stream.concat(
+					XtaMessageMetaDatasAndHeaderTestFactory.create().getMessages(),
+					XtaMessageMetaDatasAndHeaderTestFactory.create().getMessages()
+			).toList();
+		}
+
+		@DisplayName("should call set current identifier")
+		@Test
+		void shouldCallSetCurrentIdentifier() {
+			service.createXtaMessageStream().toList();
+
+			verify(currentIdentifierService, times(2))
+					.setCurrentIdentifier(identifierCaptor.capture());
+			assertThat(identifierCaptor.getAllValues()).isEqualTo(XTA_IDENTIFIERS);
+		}
+	}
+
 }
diff --git a/xta-adapter/src/test/resources/application-itcase.yml b/xta-adapter/src/test/resources/application-itcase.yml
index 99b88fbe12ffdb4562dc264c08595afde1b9092a..e4f04915dcad084966187e831830afba2e8da1c1 100644
--- a/xta-adapter/src/test/resources/application-itcase.yml
+++ b/xta-adapter/src/test/resources/application-itcase.yml
@@ -1,6 +1,7 @@
 ozgcloud:
   xta:
-    identifier: afmsh:010600000000_Online-Dienste
+    identifiers:
+      - afmsh:010600000000_Online-Dienste
     server:
       address: localhost:3000
       name: LI33-0005