diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/common/attacheditem/VorgangAttachedItemHistorieProcessor.java b/alfa-service/src/main/java/de/ozgcloud/alfa/common/attacheditem/VorgangAttachedItemHistorieProcessor.java
new file mode 100644
index 0000000000000000000000000000000000000000..ecbd3482e02823170ba6c0bfcb1b3a737fcabba7
--- /dev/null
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/common/attacheditem/VorgangAttachedItemHistorieProcessor.java
@@ -0,0 +1,22 @@
+package de.ozgcloud.alfa.common.attacheditem;
+
+import java.util.function.Predicate;
+import java.util.stream.Stream;
+
+import org.springframework.stereotype.Component;
+
+import de.ozgcloud.alfa.common.command.Command;
+import de.ozgcloud.alfa.common.command.CommandOrder;
+import de.ozgcloud.alfa.historie.HistorieProcessor;
+
+@Component
+class VorgangAttachedItemHistorieProcessor implements HistorieProcessor {
+
+	private static final Predicate<Command> IS_NOT_DELETE_ATTACHED_ITEM = command -> CommandOrder.DELETE_ATTACHED_ITEM != command.getCommandOrder();
+
+	@Override
+	public Stream<Command> process(Stream<Command> commands) {
+		return commands.filter(IS_NOT_DELETE_ATTACHED_ITEM);
+	}
+
+}
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/historie/HistorieCommandHandler.java b/alfa-service/src/main/java/de/ozgcloud/alfa/historie/HistorieCommandHandler.java
index e7f6307b6518c49161460cc229d352c5cfff3b34..c2d2ae7363c33a4ed93418b6440c5d192e385c2d 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/historie/HistorieCommandHandler.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/historie/HistorieCommandHandler.java
@@ -25,7 +25,6 @@ package de.ozgcloud.alfa.historie;
 
 import java.util.Map;
 import java.util.Optional;
-import java.util.function.Predicate;
 
 import org.apache.commons.collections.MapUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -53,20 +52,10 @@ class HistorieCommandHandler {
 	static final String OZGCLOUD_NACHRICHTEN_MANAGER = "OzgCloud_NachrichtenManager";
 	static final String CLIENT = "client";
 
-	private static final Predicate<Command> IS_CREATE_ATTACHED_ITEM = command -> command.getCommandOrder() == CommandOrder.CREATE_ATTACHED_ITEM;
-
-	public boolean isHistorieCommand(Command command) {
-		return !isDeleteVorgangAttachedItem(command);
-	}
-
 	private boolean isOzgCloudNachrichtenManager(Command command) {
 		return StringUtils.equals(MapUtils.getString(command.getBody(), CLIENT), OZGCLOUD_NACHRICHTEN_MANAGER);
 	}
 
-	boolean isDeleteVorgangAttachedItem(Command command) {
-		return command.getCommandOrder() == CommandOrder.DELETE_ATTACHED_ITEM;
-	}
-
 	public Command translateOrder(Command command) {
 		HistorieCommandHandler translator = new HistorieCommandHandler();
 		return switch (command.getCommandOrder()) {
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/historie/HistorieService.java b/alfa-service/src/main/java/de/ozgcloud/alfa/historie/HistorieService.java
index dbf3cb8299a6d051e9d27cbb0ee1395111327f27..47da447b7ba760e58d7614f3397012334174fbd6 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/historie/HistorieService.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/historie/HistorieService.java
@@ -23,7 +23,6 @@
  */
 package de.ozgcloud.alfa.historie;
 
-import java.util.HashSet;
 import java.util.List;
 import java.util.stream.Stream;
 
@@ -42,13 +41,8 @@ class HistorieService {
 	private final List<HistorieProcessor> processors;
 
 	public Stream<Command> findFinishedCommands(String vorgangId) {
-		var reduceBy = new HashSet<String>();
 		var commands = commandService.findFinishedCommands(vorgangId)
-				.filter(historieCommandHandler::isHistorieCommand)
 				.map(historieCommandHandler::translateOrder).toList();
-
-		commands = commands.stream().filter(command -> !reduceBy.contains(command.getId()))
-				.toList();
 		return processCommands(commands);
 	}
 
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/common/attacheditem/VorgangAttachedItemHistorieProcessorTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/common/attacheditem/VorgangAttachedItemHistorieProcessorTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..f53d75a581b511b3cdc0f6775f24077e4bd35a58
--- /dev/null
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/common/attacheditem/VorgangAttachedItemHistorieProcessorTest.java
@@ -0,0 +1,44 @@
+package de.ozgcloud.alfa.common.attacheditem;
+
+import static org.assertj.core.api.Assertions.*;
+
+import java.util.stream.Stream;
+
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.EnumSource;
+import org.junit.jupiter.params.provider.EnumSource.Mode;
+import org.mockito.Spy;
+
+import de.ozgcloud.alfa.common.command.CommandOrder;
+import de.ozgcloud.alfa.common.command.CommandTestFactory;
+
+class VorgangAttachedItemHistorieProcessorTest {
+
+	@Spy
+	private VorgangAttachedItemHistorieProcessor processor;
+
+	@Nested
+	class TestProcess {
+
+		@ParameterizedTest
+		@EnumSource(names = { "DELETE_ATTACHED_ITEM" }, mode = Mode.EXCLUDE)
+		void shouldKeepCommand(CommandOrder order) {
+			var command = CommandTestFactory.createBuilder().order(order.name()).build();
+
+			var commands = processor.process(Stream.of(command));
+
+			assertThat(commands).containsExactly(command);
+		}
+
+		@ParameterizedTest
+		@EnumSource(names = { "DELETE_ATTACHED_ITEM" }, mode = Mode.INCLUDE)
+		void shouldRemoveCommand(CommandOrder order) {
+			var command = CommandTestFactory.createBuilder().order(order.name()).build();
+
+			var commands = processor.process(Stream.of(command));
+
+			assertThat(commands).isEmpty();
+		}
+	}
+}
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieCommandHandlerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieCommandHandlerTest.java
index 787ad1a283dcd8c9e78c1a568e25f1403ac0928c..7fe5599fffac950da6c74ae51b8789ad1d96a13e 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieCommandHandlerTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieCommandHandlerTest.java
@@ -24,9 +24,7 @@
 package de.ozgcloud.alfa.historie;
 
 import static org.assertj.core.api.Assertions.*;
-import static org.mockito.Mockito.*;
 
-import java.util.Collections;
 import java.util.Map;
 
 import org.junit.jupiter.api.DisplayName;
@@ -60,35 +58,6 @@ class HistorieCommandHandlerTest {
 	@Mock
 	private CommandService commandService;
 
-	@DisplayName("Is historie command")
-	@Nested
-	class TestIsHistorieCommand {
-
-		@Test
-		void shouldReturnTrueIfNoItemNameExists() {
-			var result = handler
-					.isHistorieCommand(Command.builder().order(CommandOrder.CREATE_ATTACHED_ITEM.name()).body(Collections.emptyMap()).build());
-
-			assertThat(result).isTrue();
-		}
-
-		@Test
-		void shouldReturnFalseOnDeleteVorgangAttachedItem() {
-			var result = handler.isHistorieCommand(CommandTestFactory.createBuilder().order(CommandOrder.DELETE_ATTACHED_ITEM.name()).build());
-
-			assertThat(result).isFalse();
-		}
-
-		@Test
-		void shouldCallIsDeleteVorgangAttachedItem() {
-			var command = CommandTestFactory.create();
-
-			handler.isHistorieCommand(command);
-
-			verify(handler).isDeleteVorgangAttachedItem(command);
-		}
-	}
-
 	@DisplayName("translate order")
 	@Nested
 	class TestTranslateOrders {
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieServiceTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieServiceTest.java
index 2f1a2fe680ee2835bdf1becaa9e2fd64945c4575..ffe2a8e7ef026a28d33615d123a73ce559cc6791 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieServiceTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieServiceTest.java
@@ -85,7 +85,6 @@ class HistorieServiceTest {
 			@BeforeEach
 			void initMock() {
 				when(commandService.findFinishedCommands(any())).thenReturn(List.of(responseCommand).stream());
-				when(historieCommandHandler.isHistorieCommand(any())).thenReturn(true);
 				when(historieCommandHandler.translateOrder(any())).thenAnswer(i -> i.getArgument(0));
 
 			}
@@ -97,13 +96,6 @@ class HistorieServiceTest {
 				verify(commandService).findFinishedCommands(VorgangHeaderTestFactory.ID);
 			}
 
-			@Test
-			void shouldFilterInvalidCommands() {
-				service.findFinishedCommands(CommandTestFactory.VORGANG_ID).toList();
-
-				verify(historieCommandHandler).isHistorieCommand(responseCommand);
-			}
-
 			@Test
 			void shouldTranslateCommandOrderByCommandHandler() {
 				service.findFinishedCommands(CommandTestFactory.VORGANG_ID).toList();
@@ -150,7 +142,6 @@ class HistorieServiceTest {
 
 			@BeforeEach
 			void mock() {
-				when(historieCommandHandler.isHistorieCommand(any())).thenReturn(true);
 				when(commandService.findFinishedCommands(any())).thenReturn(finishedCommands.stream());
 				when(historieCommandHandler.translateOrder(any())).thenAnswer(i -> i.getArgument(0));
 				when(processor.process(any())).thenAnswer(i -> i.getArgument(0));