diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/EingangMapper.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/EingangMapper.java
index d4e3a6852f4bb31473a6b14117ba46a32c235607..0bb1715e75db51f431bf64844feb00fc1f2561bc 100644
--- a/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/EingangMapper.java
+++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/EingangMapper.java
@@ -14,8 +14,7 @@ import org.mapstruct.Mapping;
 import org.mapstruct.NullValueCheckStrategy;
 import org.mapstruct.NullValuePropertyMappingStrategy;
 
-@Mapper(uses = { AntragstellerMapper.class,
-		EingangHeaderMapper.class }, //
+@Mapper(uses = { AntragstellerMapper.class, EingangHeaderMapper.class, OzgFileMapper.class }, //
 		nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE, //
 		nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS, //
 		collectionMappingStrategy = CollectionMappingStrategy.ADDER_PREFERRED)
diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/File.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/File.java
index 6b737e7d34be69b2f28ac0ee22e4296d1cc5cebc..f4afc521452eb9975ed944acc77a847b220b42c9 100644
--- a/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/File.java
+++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/File.java
@@ -1,16 +1,11 @@
 package de.itvsh.ozg.pluto.vorgang;
 
-import lombok.AccessLevel;
-import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Getter;
-import lombok.NoArgsConstructor;
 import lombok.ToString;
 
 @Builder
 @Getter
-@NoArgsConstructor
-@AllArgsConstructor(access = AccessLevel.PRIVATE)
 @ToString
 public class File {
 
diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/OzgFileMapper.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/OzgFileMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..5b50c24dc80d8070de50535e8f6514d4608799b2
--- /dev/null
+++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/OzgFileMapper.java
@@ -0,0 +1,11 @@
+package de.itvsh.ozg.pluto.vorgang;
+
+import org.mapstruct.Mapper;
+
+@Mapper
+public interface OzgFileMapper {
+
+	File map(GrpcAttachment attachment);
+
+	File map(GrpcRepresentation representation);
+}
diff --git a/pluto-server/src/test/java/de/itvsh/ozg/pluto/vorgang/EingangMapperTest.java b/pluto-server/src/test/java/de/itvsh/ozg/pluto/vorgang/EingangMapperTest.java
index 266e86e5d062bc5abdf16cb1eaa6eb9fbb498385..eb23c8787054b6254cff7ac49d31c3c1f93db745 100644
--- a/pluto-server/src/test/java/de/itvsh/ozg/pluto/vorgang/EingangMapperTest.java
+++ b/pluto-server/src/test/java/de/itvsh/ozg/pluto/vorgang/EingangMapperTest.java
@@ -15,6 +15,7 @@ import org.junit.jupiter.api.Test;
 import org.mapstruct.factory.Mappers;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
+import org.mockito.Spy;
 
 class EingangMapperTest {
 
@@ -26,6 +27,9 @@ class EingangMapperTest {
 	@Mock
 	private EingangHeaderMapper eingangHeaderMapper;
 
+	@Spy
+	private OzgFileMapper ozgFileMapper = Mappers.getMapper(OzgFileMapper.class);
+
 	@Nested
 	class TestGrpcEingangToEingang {
 
@@ -95,7 +99,6 @@ class EingangMapperTest {
 
 			@Test
 			void shouldNotBeEmpty() {
-
 				var eingang = mapper.fromGrpc(grpcEingang);
 
 				assertThat(eingang.getFormData()).isNotEmpty();
@@ -103,7 +106,6 @@ class EingangMapperTest {
 
 			@Test
 			void shouldHaveMappedSubForm() {
-
 				var eingang = mapper.fromGrpc(grpcEingang);
 
 				assertThat(eingang.getFormData()).containsKey(TITLE);
@@ -112,7 +114,6 @@ class EingangMapperTest {
 			@DisplayName("mapped FormData should contain fields")
 			@Test
 			void fieldsInSubForm() {
-
 				var eingang = mapper.fromGrpc(grpcEingang);
 				@SuppressWarnings("unchecked")
 				Map<String, Object> formData = (Map<String, Object>) eingang.getFormData().get(TITLE);
@@ -123,7 +124,6 @@ class EingangMapperTest {
 			@DisplayName("mapped FormData should contains subForm")
 			@Test
 			void shouldHaveMappedSubFormWithSubForm() {
-
 				var eingang = mapper.fromGrpc(grpcEingang);
 				@SuppressWarnings("unchecked")
 				Map<String, Object> formData = (Map<String, Object>) eingang.getFormData().get(TITLE);
@@ -134,7 +134,6 @@ class EingangMapperTest {
 			@DisplayName("mapped SubForm should contain field")
 			@Test
 			void subFormShouldContainField() {
-
 				var eingang = mapper.fromGrpc(grpcEingang);
 				@SuppressWarnings("unchecked")
 				Map<String, Object> subForm = (Map<String, Object>) ((Map<String, Object>) eingang.getFormData().get(TITLE)).get(SUBFORM_NAME);
@@ -151,19 +150,16 @@ class EingangMapperTest {
 
 			@BeforeEach
 			void init() {
-
 				eingang = mapper.fromGrpc(GrpcEingangTestFactory.create());
 			}
 
 			@Test
 			void testAttachmentsCount() {
-
 				assertThat(eingang.getAttachments()).isNotNull().isNotEmpty().hasSize(1);
 			}
 
 			@Test
 			void testAttachment1() {
-
 				File attachment = eingang.getAttachments().get(0);
 
 				assertThat(attachment.getId()).isEqualTo(FileTestFactory.ID);
@@ -173,13 +169,11 @@ class EingangMapperTest {
 
 			@Test
 			void testRepresentationsCount() {
-
 				assertThat(eingang.getRepresentations()).isNotNull().isNotEmpty().hasSize(1);
 			}
 
 			@Test
 			void testRepresentation1() {
-
 				File representation = eingang.getRepresentations().get(0);
 
 				assertThat(representation.getId()).isEqualTo(FileTestFactory.ID);
@@ -191,7 +185,6 @@ class EingangMapperTest {
 
 	@Nested
 	class TestEingangToGrpcEingang {
-
 		private final GrpcAntragsteller antragsteller = GrpcAntragstellerTestFactory.create();
 		private final GrpcEingangHeader eingangHeader = GrpcEingangHeaderTestFactory.create();