diff --git a/formsolutions-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsFileMapperUtils.java b/formsolutions-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsFileMapperUtils.java
index bb1a00cc86aaf1daf2e710a51a22e8d92377efc4..54562447257da8fbf25cd295bdb33422d2c39906 100644
--- a/formsolutions-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsFileMapperUtils.java
+++ b/formsolutions-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsFileMapperUtils.java
@@ -38,4 +38,5 @@ class FormSolutionsFileMapperUtils {
 		ByteArrayInputStream base64ContentStream = new ByteArrayInputStream(base64FileContent.getBytes());
 		return Base64.getDecoder().wrap(base64ContentStream);
 	}
+
 }
\ No newline at end of file
diff --git a/formsolutions-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsRepresentationsMapper.java b/formsolutions-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsRepresentationsMapper.java
index 586ecf147f7fb5a139c8a481790a346c75e2456d..f6e4e1599d36d38727a6f3727ef9b83aaeea872e 100644
--- a/formsolutions-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsRepresentationsMapper.java
+++ b/formsolutions-adapter/src/main/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsRepresentationsMapper.java
@@ -23,7 +23,7 @@
  */
 package de.itvsh.kop.eingangsadapter.formsolutions;
 
-import java.io.ByteArrayInputStream;
+import java.io.FileWriter;
 import java.io.IOException;
 import java.io.InputStream;
 import java.nio.file.Files;
@@ -33,7 +33,6 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
-import java.util.UUID;
 
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.http.MediaType;
@@ -59,7 +58,9 @@ class FormSolutionsRepresentationsMapper {
 	List<IncomingFile> mapRepresentations(Map<String, Object> plainMap, Optional<String> json) {
 		List<IncomingFile> representations = new ArrayList<>();
 
-		Optional.ofNullable((String) plainMap.get(PDF)).filter(StringUtils::isNoneEmpty).ifPresent(data -> representations.add(buildPdfFile(data)));
+		Optional.ofNullable((String) plainMap.get(PDF))
+				.filter(StringUtils::isNoneEmpty)
+				.ifPresent(data -> representations.add(buildPdfFile(data)));
 
 		json.ifPresent(jsonData -> representations.add(buildJsonFile(jsonData)));
 
@@ -67,24 +68,25 @@ class FormSolutionsRepresentationsMapper {
 	}
 
 	private IncomingFile buildJsonFile(String jsonData) {
-		var size = getSize(new ByteArrayInputStream(jsonData.getBytes()));
+		var jsonFile = writeFile(jsonData);
+
 		return IncomingFile.builder()
-				.id(UUID.randomUUID().toString())
-				.contentStream(new ByteArrayInputStream(jsonData.getBytes()))
+				.file(jsonFile.toFile())
 				.contentType(JSON_CONTENT_TYPE)
 				.name(FILE_NAME_JSON_REP)
-				.size(size)
+				.size(getFileSize(jsonFile))
 				.build();
 	}
 
 	private IncomingFile buildPdfFile(String data) {
-		var size = getSize(FormSolutionsFileMapperUtils.decodeFile(data));
+		var zipFile = writeFile(FormSolutionsFileMapperUtils.decodeFile(data));
+
 		return IncomingFile.builder()
-				.id(UUID.randomUUID().toString())
+				.file(zipFile.toFile())
 				.contentStream(FormSolutionsFileMapperUtils.decodeFile(data))
 				.contentType(PDF_CONTENT_TYPE)
 				.name(FILE_NAME_PDF_REP)
-				.size(size)
+				.size(getFileSize(zipFile))
 				.build();
 	}
 
@@ -96,11 +98,24 @@ class FormSolutionsRepresentationsMapper {
 		return size;
 	}
 
+	Path writeFile(String stringData) {
+		try {
+			Path tmpFile = createTmpFile();
+
+			try (var writer = new FileWriter(tmpFile.toFile())) {
+				writer.write(stringData);
+				writer.flush();
+			}
+
+			return tmpFile;
+		} catch (IOException e) {
+			throw new TechnicalException("Error writing file to temp file.", e);
+		}
+	}
+
 	Path writeFile(InputStream contentStream) {
-		Path tmpFile;
 		try {
-			tmpFile = Files.createTempFile(TMP_FILE_PREFIX, TMP_FILE_SUFFIX);
-			tmpFile.toFile().deleteOnExit();
+			var tmpFile = createTmpFile();
 
 			Files.copy(contentStream, tmpFile, StandardCopyOption.REPLACE_EXISTING);
 			contentStream.close();
@@ -110,6 +125,12 @@ class FormSolutionsRepresentationsMapper {
 		}
 	}
 
+	private Path createTmpFile() throws IOException {
+		var tmpFile = Files.createTempFile(TMP_FILE_PREFIX, TMP_FILE_SUFFIX);
+		tmpFile.toFile().deleteOnExit();
+		return tmpFile;
+	}
+
 	long getFileSize(Path path) {
 		try {
 			return Files.size(path);
diff --git a/formsolutions-adapter/src/test/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsRepresentationsMapperTest.java b/formsolutions-adapter/src/test/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsRepresentationsMapperTest.java
index 6631cc4bc955a8db6ba6fe369149e6cb4903f276..96033bf41979ee4a9c1e6a892380784f4b0ad676 100644
--- a/formsolutions-adapter/src/test/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsRepresentationsMapperTest.java
+++ b/formsolutions-adapter/src/test/java/de/itvsh/kop/eingangsadapter/formsolutions/FormSolutionsRepresentationsMapperTest.java
@@ -32,23 +32,19 @@ import static org.mockito.Mockito.*;
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.nio.file.Path;
 import java.util.List;
 import java.util.Map;
 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.mockito.Mock;
 import org.mockito.Spy;
 
 import de.itvsh.kop.common.errorhandling.TechnicalException;
 import de.itvsh.kop.common.test.TestUtils;
 import de.itvsh.kop.eingangsadapter.common.formdata.FormSolutionsTestFactory;
 import de.itvsh.kop.eingangsadapter.common.formdata.IncomingFile;
-import de.itvsh.kop.eingangsadapter.common.formdata.IncomingFileTestFactory;
 import lombok.SneakyThrows;
 
 class FormSolutionsRepresentationsMapperTest {
@@ -160,44 +156,6 @@ class FormSolutionsRepresentationsMapperTest {
 		}
 	}
 
-	@DisplayName("Get Size")
-	@Nested
-	class TestGetSize {
-
-		@Mock
-		private InputStream stream;
-		@Mock
-		private Path path;
-
-		@BeforeEach
-		void mock() {
-			doReturn(path).when(mapper).writeFile(any());
-			doReturn(IncomingFileTestFactory.SIZE).when(mapper).getFileSize(any());
-			doNothing().when(mapper).deleteTmpFile(any());
-		}
-
-		@Test
-		void shouldWriteFile() {
-			mapper.getSize(stream);
-
-			verify(mapper).writeFile(stream);
-		}
-
-		@Test
-		void shouldGetFileSize() {
-			mapper.getSize(stream);
-
-			verify(mapper).getFileSize(path);
-		}
-
-		@Test
-		void shouldDeleteTmpFile() {
-			mapper.getSize(stream);
-
-			verify(mapper).deleteTmpFile(path);
-		}
-	}
-
 	@Nested
 	class TestWriteFile {