diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/files/GrpcFileService.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/files/GrpcFileService.java
index aecb28e71a31a57da6758eb530b96dfbc82590f4..47bf27883911770d7d6e869b2608d0c3590418ac 100644
--- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/files/GrpcFileService.java
+++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/files/GrpcFileService.java
@@ -25,6 +25,7 @@ package de.ozgcloud.vorgang.files;
 
 import java.util.List;
 
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import de.ozgcloud.vorgang.grpc.file.FileServiceGrpc.FileServiceImplBase;
@@ -46,17 +47,33 @@ public class GrpcFileService extends FileServiceImplBase {
 
 	@Override
 	public void getAttachments(GrpcGetAttachmentsRequest request, StreamObserver<GrpcGetAttachmentsResponse> responseObserver) {
-		List<OzgFile> response = service.getAttachments(request.getEingangId());
+		List<OzgFile> response = service.getAttachments(getVorgangId(request), getEingangId(request));
 
 		responseObserver.onNext(GrpcGetAttachmentsResponse.newBuilder().addAllFile(fileMapper.map(response)).build());
 		responseObserver.onCompleted();
 	}
 
+	private String getVorgangId(GrpcGetAttachmentsRequest request) {
+		return StringUtils.trimToNull(request.getVorgangId());
+	}
+
+	private String getEingangId(GrpcGetAttachmentsRequest request) {
+		return StringUtils.trimToNull(request.getEingangId());
+	}
+
 	@Override
 	public void getRepresentations(GrpcGetRepresentationsRequest request, StreamObserver<GrpcGetRepresentationsResponse> responseObserver) {
-		List<OzgFile> response = service.getRepresentations(request.getEingangId());
+		List<OzgFile> response = service.getRepresentations(getVorgangId(request), getEingangId(request));
 
 		responseObserver.onNext(GrpcGetRepresentationsResponse.newBuilder().addAllFile(fileMapper.map(response)).build());
 		responseObserver.onCompleted();
 	}
+
+	private String getVorgangId(GrpcGetRepresentationsRequest request) {
+		return StringUtils.trimToNull(request.getVorgangId());
+	}
+
+	private String getEingangId(GrpcGetRepresentationsRequest request) {
+		return StringUtils.trimToNull(request.getEingangId());
+	}
 }
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/files/GrpcFileServiceTest.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/files/GrpcFileServiceTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..8e360dce809d844cee27859cd5c12a4c407c708d
--- /dev/null
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/files/GrpcFileServiceTest.java
@@ -0,0 +1,154 @@
+/*
+ * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
+ * Ministerpräsidenten des Landes Schleswig-Holstein
+ * Staatskanzlei
+ * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ *
+ * Lizenziert unter der EUPL, Version 1.2 oder - sobald
+ * diese von der Europäischen Kommission genehmigt wurden -
+ * Folgeversionen der EUPL ("Lizenz");
+ * Sie dürfen dieses Werk ausschließlich gemäß
+ * dieser Lizenz nutzen.
+ * Eine Kopie der Lizenz finden Sie hier:
+ *
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+ *
+ * Sofern nicht durch anwendbare Rechtsvorschriften
+ * gefordert oder in schriftlicher Form vereinbart, wird
+ * die unter der Lizenz verbreitete Software "so wie sie
+ * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+ * ausdrücklich oder stillschweigend - verbreitet.
+ * Die sprachspezifischen Genehmigungen und Beschränkungen
+ * unter der Lizenz sind dem Lizenztext zu entnehmen.
+ */
+package de.ozgcloud.vorgang.files;
+
+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.Nested;
+import org.junit.jupiter.api.Test;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+
+import de.ozgcloud.vorgang.grpc.file.GrpcGetAttachmentsResponse;
+import de.ozgcloud.vorgang.grpc.file.GrpcGetRepresentationsResponse;
+import de.ozgcloud.vorgang.grpc.file.GrpcOzgFile;
+import io.grpc.stub.StreamObserver;
+
+class GrpcFileServiceTest {
+
+	private static final GrpcOzgFile GRPC_OZG_FILE = GrpcOzgFileTestFactory.create();
+
+	@InjectMocks
+	private GrpcFileService grpcFileService;
+
+	@Mock
+	private FileService fileService;
+
+	@Mock
+	private GrpcOzgFileMapper fileMapper;
+
+	@BeforeEach
+	void init() {
+		when(fileMapper.map(anyList())).thenReturn(List.of(GRPC_OZG_FILE));
+	}
+
+	@Nested
+	class TestGetAttachments {
+
+		@Mock
+		private StreamObserver<GrpcGetAttachmentsResponse> responseObserver;
+
+		@Captor
+		private ArgumentCaptor<GrpcGetAttachmentsResponse> responseCaptor;
+
+		@Test
+		void shouldCallGetAttachments() {
+			getAttachments();
+
+			verify(fileService).getAttachments(GrpcGetAttachmentsRequestTestFactory.VORGANG_ID, GrpcGetAttachmentsRequestTestFactory.EINGANG_ID);
+		}
+
+		@Test
+		void shouldCallFileMapper() {
+			var ozgFiles = List.of(OzgFileTestFactory.create());
+			when(fileService.getAttachments(anyString(), anyString())).thenReturn(ozgFiles);
+
+			getAttachments();
+
+			verify(fileMapper).map(ozgFiles);
+		}
+
+		@Test
+		void shouldAddFilesToResponse() {
+			getAttachments();
+
+			verify(responseObserver).onNext(responseCaptor.capture());
+			assertThat(responseCaptor.getValue().getFileList()).containsExactly(GRPC_OZG_FILE);
+		}
+
+		@Test
+		void shouldCallCompleted() {
+			getAttachments();
+
+			verify(responseObserver).onCompleted();
+		}
+
+		private void getAttachments() {
+			grpcFileService.getAttachments(GrpcGetAttachmentsRequestTestFactory.create(), responseObserver);
+		}
+	}
+
+	@Nested
+	class TestGetRepresentations {
+
+		@Mock
+		private StreamObserver<GrpcGetRepresentationsResponse> responseObserver;
+
+		@Captor
+		private ArgumentCaptor<GrpcGetRepresentationsResponse> responseCaptor;
+
+		@Test
+		void shouldCallGetRepresentations() {
+			getRepresentations();
+
+			verify(fileService).getRepresentations(GrpcGetRepresentationsRequestTestFactory.VORGANG_ID,
+					GrpcGetRepresentationsRequestTestFactory.EINGANG_ID);
+		}
+
+		@Test
+		void shouldCallFileMapper() {
+			var ozgFiles = List.of(OzgFileTestFactory.create());
+			when(fileService.getRepresentations(anyString(), anyString())).thenReturn(ozgFiles);
+
+			getRepresentations();
+
+			verify(fileMapper).map(ozgFiles);
+		}
+
+		@Test
+		void shouldAddFilesToResponse() {
+			getRepresentations();
+
+			verify(responseObserver).onNext(responseCaptor.capture());
+			assertThat(responseCaptor.getValue().getFileList()).containsExactly(GRPC_OZG_FILE);
+		}
+
+		@Test
+		void shouldCallCompleted() {
+			getRepresentations();
+
+			verify(responseObserver).onCompleted();
+		}
+
+		private void getRepresentations() {
+			grpcFileService.getRepresentations(GrpcGetRepresentationsRequestTestFactory.create(), responseObserver);
+		}
+	}
+}
\ No newline at end of file
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/files/GrpcGetAttachmentsRequestTestFactory.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/files/GrpcGetAttachmentsRequestTestFactory.java
index d33e4d90b6067d3872c824e2ebfa1a6b72e9da15..e19787b667a256e1ffd79c5e3cfbc519d4309725 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/files/GrpcGetAttachmentsRequestTestFactory.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/files/GrpcGetAttachmentsRequestTestFactory.java
@@ -25,9 +25,11 @@ package de.ozgcloud.vorgang.files;
 
 import de.ozgcloud.vorgang.grpc.file.GrpcGetAttachmentsRequest;
 import de.ozgcloud.vorgang.vorgang.EingangTestFactory;
+import de.ozgcloud.vorgang.vorgang.VorgangTestFactory;
 
 public class GrpcGetAttachmentsRequestTestFactory {
 
+	public static final String VORGANG_ID = VorgangTestFactory.ID;
 	public static final String EINGANG_ID = EingangTestFactory.ID;
 
 	public static GrpcGetAttachmentsRequest create() {
@@ -36,6 +38,7 @@ public class GrpcGetAttachmentsRequestTestFactory {
 
 	public static GrpcGetAttachmentsRequest.Builder createBuilder() {
 		return GrpcGetAttachmentsRequest.newBuilder()
-				.setEingangId(EINGANG_ID);
+				.setEingangId(EINGANG_ID)
+				.setVorgangId(VORGANG_ID);
 	}
 }
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/files/GrpcGetRepresentationsRequestTestFactory.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/files/GrpcGetRepresentationsRequestTestFactory.java
index 55e5de3da4ca62bf1c9b4ed05dbd49f73683cc8a..7408b7bb7156096578840c28efa6dd26552ab7af 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/files/GrpcGetRepresentationsRequestTestFactory.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/files/GrpcGetRepresentationsRequestTestFactory.java
@@ -25,10 +25,12 @@ package de.ozgcloud.vorgang.files;
 
 import de.ozgcloud.vorgang.grpc.file.GrpcGetRepresentationsRequest;
 import de.ozgcloud.vorgang.vorgang.EingangTestFactory;
+import de.ozgcloud.vorgang.vorgang.VorgangTestFactory;
 
 public class GrpcGetRepresentationsRequestTestFactory {
 
 	public static final String EINGANG_ID = EingangTestFactory.ID;
+	public static final String VORGANG_ID = VorgangTestFactory.ID;
 
 	public static GrpcGetRepresentationsRequest create() {
 		return createBuilder().build();
@@ -36,6 +38,7 @@ public class GrpcGetRepresentationsRequestTestFactory {
 
 	public static GrpcGetRepresentationsRequest.Builder createBuilder() {
 		return GrpcGetRepresentationsRequest.newBuilder()
-				.setEingangId(EINGANG_ID);
+				.setEingangId(EINGANG_ID)
+				.setVorgangId(VORGANG_ID);
 	}
 }
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/files/GrpcOzgFileTestFactory.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/files/GrpcOzgFileTestFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..e2dec587074c6fa5d6a13ef1be50e9bbddaa1bbd
--- /dev/null
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/files/GrpcOzgFileTestFactory.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
+ * Ministerpräsidenten des Landes Schleswig-Holstein
+ * Staatskanzlei
+ * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ *
+ * Lizenziert unter der EUPL, Version 1.2 oder - sobald
+ * diese von der Europäischen Kommission genehmigt wurden -
+ * Folgeversionen der EUPL ("Lizenz");
+ * Sie dürfen dieses Werk ausschließlich gemäß
+ * dieser Lizenz nutzen.
+ * Eine Kopie der Lizenz finden Sie hier:
+ *
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+ *
+ * Sofern nicht durch anwendbare Rechtsvorschriften
+ * gefordert oder in schriftlicher Form vereinbart, wird
+ * die unter der Lizenz verbreitete Software "so wie sie
+ * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+ * ausdrücklich oder stillschweigend - verbreitet.
+ * Die sprachspezifischen Genehmigungen und Beschränkungen
+ * unter der Lizenz sind dem Lizenztext zu entnehmen.
+ */
+package de.ozgcloud.vorgang.files;
+
+import de.ozgcloud.vorgang.grpc.file.GrpcOzgFile;
+
+public class GrpcOzgFileTestFactory {
+
+	public static GrpcOzgFile create() {
+		return createBuilder().build();
+	}
+
+	public static GrpcOzgFile.Builder createBuilder() {
+		return GrpcOzgFile.newBuilder()
+				.setId(OzgFileTestFactory.ID.toString())
+				.setName(OzgFileTestFactory.NAME)
+				.setSize(OzgFileTestFactory.SIZE)
+				.setContentType(OzgFileTestFactory.CONTENT_TYPE);
+	}
+}