diff --git a/vorgang-manager-server/pom.xml b/vorgang-manager-server/pom.xml
index 531812c916825757741b1a92567de0ed3a43e2d4..3dfafb9c33fed498bbb5bdec550c73cb4564de3e 100644
--- a/vorgang-manager-server/pom.xml
+++ b/vorgang-manager-server/pom.xml
@@ -55,12 +55,12 @@
 		<user-manager-interface.version>2.12.0</user-manager-interface.version>
 		<bescheid-manager.version>1.23.0-SNAPSHOT</bescheid-manager.version>
 		<processor-manager.version>0.5.0</processor-manager.version>
-		<nachrichten-manager.version>2.14.1</nachrichten-manager.version>
+		<nachrichten-manager.version>2.16.0-PR-41-SNAPSHOT</nachrichten-manager.version>
 		<api-lib.version>0.16.0-SNAPSHOT</api-lib.version>
 		<notification-manager.version>2.13.0</notification-manager.version>
 		<collaboration-manager.version>0.6.0</collaboration-manager.version>
 		<archive-manager.version>0.1.0</archive-manager.version>
-		<document-manager.version>1.1.0</document-manager.version>
+		<document-manager.version>1.2.0-SNAPSHOT</document-manager.version>
 
 		<zip.version>2.11.5</zip.version>
 		<jsoup.version>1.15.3</jsoup.version>
diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/VorgangManagerServerConfiguration.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/VorgangManagerServerConfiguration.java
index 685b4dded3009cbecf85b8da24a283cb6db7f84e..30a0c50d4afba3a459eeb0c5ecd6c38d5561f1a4 100644
--- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/VorgangManagerServerConfiguration.java
+++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/VorgangManagerServerConfiguration.java
@@ -1,5 +1,6 @@
 package de.ozgcloud.vorgang;
 
+import org.mapstruct.factory.Mappers;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Primary;
@@ -9,6 +10,8 @@ import org.springframework.data.mongodb.repository.config.EnableMongoRepositorie
 import de.ozgcloud.apilib.common.command.OzgCloudCommandService;
 import de.ozgcloud.apilib.common.command.grpc.CommandMapper;
 import de.ozgcloud.apilib.common.command.grpc.GrpcOzgCloudCommandService;
+import de.ozgcloud.apilib.vorgang.OzgCloudFileIdMapper;
+import de.ozgcloud.apilib.vorgang.OzgCloudUserIdMapper;
 import de.ozgcloud.vorgang.grpc.command.CommandServiceGrpc;
 import io.mongock.runner.springboot.EnableMongock;
 import net.devh.boot.grpc.client.inject.GrpcClient;
@@ -28,4 +31,14 @@ public class VorgangManagerServerConfiguration {
 		return new GrpcOzgCloudCommandService(commandServiceStub, commandMapper, contextProvider,
 				GrpcOzgCloudCommandService.DEFAULT_COMMAND_REQUEST_THRESHOLD_MILLIS);
 	}
+
+	@Bean
+	OzgCloudFileIdMapper ozgCloudFileIdMapper() {
+		return Mappers.getMapper(OzgCloudFileIdMapper.class);
+	}
+
+	@Bean
+	OzgCloudUserIdMapper ozgCloudUserIdMapper() {
+		return Mappers.getMapper(OzgCloudUserIdMapper.class);
+	}
 }
diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/command/PersistPostfachNachrichtByCommandService.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/command/PersistPostfachNachrichtByCommandService.java
index 911528981b55e1c7a961b39264cbf4f0cc9f8427..ce7f18f7266ab3a839cda8e0b38e84166a394320 100644
--- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/command/PersistPostfachNachrichtByCommandService.java
+++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/command/PersistPostfachNachrichtByCommandService.java
@@ -19,28 +19,17 @@
  */
 package de.ozgcloud.vorgang.command;
 
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.net.URLConnection;
-import java.util.Base64;
 import java.util.Map;
 import java.util.Optional;
 import java.util.stream.Stream;
 
-import jakarta.activation.MimetypesFileTypeMap;
-
-import org.apache.http.entity.ContentType;
 import org.springframework.stereotype.Service;
 
-import de.ozgcloud.common.errorhandling.TechnicalException;
-import de.ozgcloud.nachrichten.postfach.AttachmentFile;
+import de.ozgcloud.nachrichten.file.AttachmentFile;
 import de.ozgcloud.nachrichten.postfach.PersistPostfachNachrichtService;
 import de.ozgcloud.nachrichten.postfach.PostfachNachricht;
 import de.ozgcloud.vorgang.attached_item.VorgangAttachedItem;
 import de.ozgcloud.vorgang.attached_item.VorgangAttachedItemService;
-import de.ozgcloud.vorgang.files.BinaryFile;
-import de.ozgcloud.vorgang.files.FileService;
-import de.ozgcloud.vorgang.files.UploadedFilesReference;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.log4j.Log4j2;
 
@@ -55,10 +44,8 @@ class PersistPostfachNachrichtByCommandService implements PersistPostfachNachric
 
 	static final String CLIENT = "OzgCloud_NachrichtenManager";
 	static final String ITEM_NAME = "PostfachMail";
-	static final String ATTACHMENT_NAME = "PostfachAttachment";
 
 	private final VorgangAttachedItemService attachedItemService;
-	private final FileService fileService;
 
 	@Override
 	public void persistNachricht(Optional<String> userId, PostfachNachricht nachricht) {
@@ -87,48 +74,7 @@ class PersistPostfachNachrichtByCommandService implements PersistPostfachNachric
 
 	@Override
 	public String persistAttachment(String vorgangId, AttachmentFile attachment) {
-		var contentType = getTypeByFile(attachment);
-		try (var content = attachment.getContent()) {
-			var decContent = Base64.getDecoder().decode(content.readAllBytes());
-
-			return fileService.uploadFileStream(
-					createUploadedFilesReference(vorgangId, attachment),
-					buildBinaryFile(attachment.getName(), contentType, decContent.length),
-					new ByteArrayInputStream(decContent)).toString();
-		} catch (IOException e) {
-			throw new TechnicalException("Can not read attached file", e);
-		}
-	}
-
-	UploadedFilesReference createUploadedFilesReference(String vorgangId, AttachmentFile attachment) {
-		return UploadedFilesReference.builder().vorgangId(vorgangId).client(CLIENT).name(ATTACHMENT_NAME).fileName(attachment.getName()).build();
-	}
-
-	BinaryFile buildBinaryFile(String fileName, String contentType, long size) {
-		return BinaryFile.builder().name(fileName).contentType(contentType).size(size).build();
-	}
-
-	String getTypeByFile(AttachmentFile attachmentFile) {
-		var fileNameMap = URLConnection.getFileNameMap();
-
-		return Optional.ofNullable(fileNameMap.getContentTypeFor(attachmentFile.getName())).orElseGet(() -> getTypeByContent(attachmentFile));
-	}
-
-	private String getTypeByContent(AttachmentFile attachmentFile) {
-		try (var contentStream = attachmentFile.getContent()) {
-			return Optional.ofNullable(URLConnection.guessContentTypeFromStream(contentStream))
-					.orElseGet(() -> getByMimeTypes(attachmentFile.getName()));
-		} catch (IOException e) {
-			LOG.warn("IO-Exception while guessing content type", e);
-		}
-		return ContentType.APPLICATION_OCTET_STREAM.toString();
-	}
-
-	// uses map file: src/main/resources/mime.types
-	private String getByMimeTypes(String fileName) {
-		var fileTypeMap = new MimetypesFileTypeMap();
-
-		return fileTypeMap.getContentType(fileName);
+		throw new UnsupportedOperationException("Not implemented. Use a gRPC service instead.");
 	}
 
 	@Override
diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/files/FileService.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/files/FileService.java
index 6d9269df8c25710314f41dd58a70ece44918af1c..f27336eb7c80b21bbc2e1607d7cf361e65ce285a 100644
--- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/files/FileService.java
+++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/files/FileService.java
@@ -34,9 +34,6 @@ import java.util.stream.Stream;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
-import com.mongodb.client.gridfs.model.GridFSFile;
-
-import de.ozgcloud.nachrichten.postfach.BinaryFileService;
 import de.ozgcloud.vorgang.common.security.PolicyService;
 import de.ozgcloud.vorgang.vorgang.IncomingFile;
 import lombok.RequiredArgsConstructor;
@@ -44,7 +41,7 @@ import lombok.RequiredArgsConstructor;
 //TODO make service package protected, as soon PersistPostfachMailByCommandService and FileStreamService is gone
 @Service
 @RequiredArgsConstructor
-public class FileService implements BinaryFileService {
+public class FileService {
 
 	public static final int CHUNK_SIZE = 255 * 1024;
 
@@ -63,7 +60,7 @@ public class FileService implements BinaryFileService {
 		return repository.findRepresentations(vorgangId, eingangId);
 	}
 
-	public FileId uploadFile(BinaryFile binaryFile) {
+	public FileId saveBinaryFile(BinaryFile binaryFile) {
 		return fileIdMapper.toFileId(binaryFileRepository.save(binaryFile).getId());
 	}
 
@@ -71,20 +68,6 @@ public class FileService implements BinaryFileService {
 		binaryFileRepository.patch(fileId, version, patch);
 	}
 
-	public FileId uploadFileStream(UploadedFilesReference ref, BinaryFile file, InputStream content) {
-		var contentId = uploadFileContent(ref, content);
-		try {
-			return fileIdMapper.toFileId(binaryFileRepository.save(addContentId(file, contentId)).getId());
-		} catch (Exception e) {
-			deleteContent(contentId);
-			throw e;
-		}
-	}
-
-	BinaryFile addContentId(BinaryFile file, FileId contentId) {
-		return binaryFileRepository.save(file.toBuilder().contentId(contentId.toString()).build());
-	}
-
 	@Async
 	public CompletableFuture<FileId> uploadFileContentStreamAsync(UploadedFilesReference ref, InputStream content) {
 		return CompletableFuture.completedFuture(uploadFileContent(ref, content));
@@ -98,16 +81,6 @@ public class FileService implements BinaryFileService {
 		return binaryFileRepository.getFileContent(fileId);
 	}
 
-	@Override
-	public InputStream getUploadedFileStream(de.ozgcloud.nachrichten.postfach.FileId fileId) {
-		return binaryFileRepository.getFileContent(FileId.from(fileId.toString()));
-	}
-
-	@Override
-	public GridFSFile getFile(de.ozgcloud.nachrichten.postfach.FileId fileId) {
-		return binaryFileRepository.getFile(FileId.from(fileId.toString()));
-	}
-
 	public Stream<BinaryFile> findFilesMetaData(Collection<FileId> ids) {
 		return binaryFileRepository.findAll(ids);
 	}
diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/files/GrpcBinaryFileService.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/files/GrpcBinaryFileService.java
index f84f7567b437fb64a8f6398a20a0bc31bf34a911..741f7c2809c7948680b14702c2f4d8cd2d5aa34e 100644
--- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/files/GrpcBinaryFileService.java
+++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/files/GrpcBinaryFileService.java
@@ -103,7 +103,7 @@ public class GrpcBinaryFileService extends BinaryFileServiceImplBase {
 	}
 
 	FileId uploadBinaryFile(BinaryFile binaryFile, Optional<FileId> contentId) {
-		return service.uploadFile(updateContentId(binaryFile, contentId));
+		return service.saveBinaryFile(updateContentId(binaryFile, contentId));
 	}
 
 	BinaryFile buildBinaryFile(GrpcUploadBinaryFileRequest fileUploadRequest) {
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachMailITCase.java b/vorgang-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachMailITCase.java
index 9a3d16fcbaac67e2ba35de1a512ddbd21ae4c72a..aa555852c92e2e86b17bee6b37f746e3057f08dc 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachMailITCase.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachMailITCase.java
@@ -77,8 +77,9 @@ import io.grpc.stub.StreamObserver;
 		"grpc.server.in-process-name=postfachitcase",
 		"grpc.client.ozgcloud-command-manager.address=in-process:postfachitcase",
 		"grpc.client.command-manager.address=in-process:postfachitcase",
-		"grpc.client.-manager.address=in-process:postfachitcase",
+		"grpc.client.vorgang-manager.address=in-process:postfachitcase",
 		"grpc.client.pluto.address=in-process:postfachitcase",
+		"grpc.client.file-manager.address=in-process:postfachitcase",
 		"ozgcloud.osi.postfach.proxyapi.url=http://localhost/ApiProxy/V1/Message",
 		"ozgcloud.osi.postfach.proxyapi.key=1234",
 		"ozgcloud.osi.postfach.proxyapi.realm=test-realm",
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/processor/ProcessorITCase.java b/vorgang-manager-server/src/test/java/de/ozgcloud/processor/ProcessorITCase.java
index 495d3665e76fb0e5badd9cceaadb0e6b8a99dd18..ebe51461913b0292f5e15d3d0822edd8b917761e 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/processor/ProcessorITCase.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/processor/ProcessorITCase.java
@@ -18,11 +18,13 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.mock.mockito.MockBean;
 import org.springframework.context.ApplicationEventPublisher;
-import org.springframework.test.context.ActiveProfiles;
+import org.springframework.test.annotation.DirtiesContext;
 
 import de.ozgcloud.command.CommandStatus;
 import de.ozgcloud.command.VorgangCreatedEvent;
+import de.ozgcloud.common.test.ITCase;
 import de.ozgcloud.notification.postfach.PostfachService;
+import de.ozgcloud.notification.user.UserNotificationEventListener;
 import de.ozgcloud.processor.processor.ProcessorService;
 import de.ozgcloud.processor.vorgang.Vorgang;
 import de.ozgcloud.processor.vorgang.VorgangId;
@@ -39,11 +41,12 @@ import de.ozgcloud.vorgang.vorgang.VorgangTestFactory;
 		"ozgcloud.processors.0.address=http://localhost:8090/testprocessor",
 		"ozgcloud.processors.0.forms.0.formEngineName=testFormEngine",
 		"ozgcloud.processors.0.forms.0.formId=testForm",
-		"grpc.server.port=9091",
-		"ozgcloud.command-manager.address=static://127.0.0.1:9091"
+		"grpc.server.in-process-name=test",
+		"ozgcloud.command-manager.address=in-process:test",
 }, classes = { VorgangManagerServerApplication.class })
-@ActiveProfiles({ "local", "itcase" })
 @WithMockCustomUser
+@ITCase
+@DirtiesContext
 class ProcessorITCase {
 
 	@Autowired
@@ -56,6 +59,8 @@ class ProcessorITCase {
 	private PostfachService postfachService;
 	@MockBean
 	private de.ozgcloud.notification.vorgang.VorgangService notificationService;
+	@MockBean
+	private UserNotificationEventListener userNotificationEventListener;
 
 	@MockBean
 	private CommandService commandService;
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/command/AttachmentFileTestFactory.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/command/AttachmentFileTestFactory.java
deleted file mode 100644
index b8eeba2de71da1036e75f50f40a4bdb5f82765ff..0000000000000000000000000000000000000000
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/command/AttachmentFileTestFactory.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (C) 2023 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.command;
-
-import java.io.InputStream;
-import java.nio.charset.Charset;
-import java.util.function.Supplier;
-
-import org.apache.commons.io.IOUtils;
-
-import de.ozgcloud.nachrichten.postfach.AttachmentFile;
-import de.ozgcloud.nachrichten.postfach.AttachmentFile.AttachmentFileBuilder;
-
-public class AttachmentFileTestFactory {
-
-	public static final String ATTACHMENT_NAME = "test.txt";
-	public static final String CONTENT_TYPE = "text/plain";
-
-	public static final String BASE64_CONTENT = "dGVzdA==";
-	public static final String CONTENT = "test";
-	public static final long SIZE = 4L;
-	public static final Supplier<InputStream> CONTENT_SUPPLIER = () -> IOUtils.toInputStream(CONTENT, Charset.defaultCharset());
-	public static final Supplier<InputStream> BASE64_CONTENT_SUPPLIER = () -> IOUtils.toInputStream(BASE64_CONTENT, Charset.defaultCharset());
-
-	public static AttachmentFile create() {
-		return createBuilder().build();
-	}
-
-	public static AttachmentFileBuilder createBuilder() {
-		return AttachmentFile.builder()
-				.name(ATTACHMENT_NAME)
-				.contentType(CONTENT_TYPE)
-				.content(CONTENT_SUPPLIER);
-	}
-}
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/command/PersistPostfachNachrichtByCommandServiceTest.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/command/PersistPostfachNachrichtByCommandServiceTest.java
index 3fb64a82fb78919fd61f684597613554a26129fa..1b957a497ffb77e994ce6a2bf2ce9d6648cb1804 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/command/PersistPostfachNachrichtByCommandServiceTest.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/command/PersistPostfachNachrichtByCommandServiceTest.java
@@ -27,32 +27,23 @@ import static org.assertj.core.api.Assertions.*;
 import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
 
-import java.io.InputStream;
 import java.util.Map;
 import java.util.Optional;
 import java.util.stream.Stream;
 
-import org.apache.http.entity.ContentType;
 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;
-import org.mockito.Captor;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
 
+import de.ozgcloud.nachrichten.file.AttachmentFileTestFactory;
 import de.ozgcloud.nachrichten.postfach.GrpcPostfachMailTestFactory;
 import de.ozgcloud.nachrichten.postfach.PostfachAddressTestFactory;
 import de.ozgcloud.nachrichten.postfach.PostfachNachrichtTestFactory;
-import de.ozgcloud.nachrichten.postfach.osi.MessageAttachmentTestFactory;
-import de.ozgcloud.nachrichten.postfach.osi.MessageTestFactory;
 import de.ozgcloud.vorgang.attached_item.VorgangAttachedItemService;
 import de.ozgcloud.vorgang.attached_item.VorgangAttachedItemTestFactory;
-import de.ozgcloud.vorgang.files.BinaryFile;
-import de.ozgcloud.vorgang.files.FileId;
-import de.ozgcloud.vorgang.files.FileService;
-import de.ozgcloud.vorgang.files.UploadedFilesReference;
 import de.ozgcloud.vorgang.vorgang.VorgangTestFactory;
 
 class PersistPostfachNachrichtByCommandServiceTest {
@@ -61,8 +52,6 @@ class PersistPostfachNachrichtByCommandServiceTest {
 	private PersistPostfachNachrichtByCommandService service;
 	@Mock
 	private VorgangAttachedItemService attachedItemService;
-	@Mock
-	private FileService fileService;
 
 	@DisplayName("Persist nachricht")
 	@Nested
@@ -165,160 +154,16 @@ class PersistPostfachNachrichtByCommandServiceTest {
 		}
 	}
 
-	@Nested
-	class TestUploadedFilesReferenceCreation {
-		@Test
-		void shouldCreateUploadedFilesReference() {
-			UploadedFilesReference ref = service.createUploadedFilesReference(MessageTestFactory.VORGANG_ID, AttachmentFileTestFactory.create());
-
-			assertThat(ref.getVorgangId()).isEqualTo(MessageTestFactory.VORGANG_ID);
-			assertThat(ref.getClient()).isEqualTo(PersistPostfachNachrichtByCommandService.CLIENT);
-			assertThat(ref.getName()).isEqualTo(PersistPostfachNachrichtByCommandService.ATTACHMENT_NAME);
-		}
-	}
-
-	@Nested
-	class TestBinaryFileCreation {
-		@Test
-		void shouldCreateOzgFile() {
-			BinaryFile file = service.buildBinaryFile(MessageAttachmentTestFactory.FILENAME, ContentType.APPLICATION_OCTET_STREAM.toString(),
-					MessageAttachmentTestFactory.SIZE);
-
-			assertThat(file.getContentType()).isEqualTo(ContentType.APPLICATION_OCTET_STREAM.toString());
-			assertThat(file.getSize()).isEqualTo(MessageAttachmentTestFactory.SIZE);
-			assertThat(file.getName()).isEqualTo(MessageAttachmentTestFactory.FILENAME);
-		}
-	}
-
-	@DisplayName("On Persisting Attachement")
+	@DisplayName("On Persisting Attachment")
 	@Nested
 	class TestPersistAttachment {
-		@BeforeEach
-		void init() {
-			when(fileService.uploadFileStream(any(), any(), any())).thenReturn(FileId.from("42"));
-		}
-
-		@DisplayName("Upload files Reference")
-		@Nested
-		class TestUploadFilesReference {
-
-			@Captor
-			private ArgumentCaptor<UploadedFilesReference> refCaptor;
-
-			@Test
-			void shouldHaveClientName() {
-				var ref = callService();
-
-				assertThat(ref.getClient()).isEqualTo(PersistPostfachNachrichtByCommandService.CLIENT);
-			}
-
-			@Test
-			void shouldHaveName() {
-				var ref = callService();
-
-				assertThat(ref.getName()).isEqualTo(PersistPostfachNachrichtByCommandService.ATTACHMENT_NAME);
-			}
-
-			@Test
-			void shouldHaveVorgangId() {
-				var ref = callService();
-
-				assertThat(ref.getVorgangId()).isEqualTo(VorgangTestFactory.ID);
-			}
-
-			private UploadedFilesReference callService() {
-				service.persistAttachment(VorgangTestFactory.ID, AttachmentFileTestFactory.create());
-
-				verify(fileService).uploadFileStream(refCaptor.capture(), any(), any());
-
-				return refCaptor.getValue();
-			}
-		}
-
-		@DisplayName("OZG-File")
-		@Nested
-		class TestBinaryFile {
-			@Captor
-			private ArgumentCaptor<BinaryFile> ozgFileCaptor;
-
-			@Test
-			void shouldHaveName() {
-				var file = callService();
-
-				assertThat(file.getName()).isEqualTo(MessageAttachmentTestFactory.FILENAME);
-			}
-
-			@Test
-			void shouldHaveSize() {
-				var file = callService();
-
-				assertThat(file.getSize()).isEqualTo(MessageAttachmentTestFactory.SIZE);
-			}
-
-			@Test
-			void shouldHaveContentType() {
-				var file = callService();
-
-				assertThat(file.getContentType()).isEqualTo("text/plain");
-			}
-
-			private BinaryFile callService() {
-				var attachmentFile = AttachmentFileTestFactory.createBuilder().content(AttachmentFileTestFactory.BASE64_CONTENT_SUPPLIER).build();
-
-				service.persistAttachment(VorgangTestFactory.ID, attachmentFile);
-
-				verify(fileService).uploadFileStream(any(), ozgFileCaptor.capture(), any());
-
-				return ozgFileCaptor.getValue();
-			}
-		}
-
-		@Test
-		void shouldHaveContent() {
-			ArgumentCaptor<InputStream> contentCaptor = ArgumentCaptor.forClass(InputStream.class);
-			var attachment = AttachmentFileTestFactory.createBuilder().content(AttachmentFileTestFactory.BASE64_CONTENT_SUPPLIER).build();
-
-			service.persistAttachment(VorgangTestFactory.ID, attachment);
-
-			verify(fileService).uploadFileStream(any(), any(), contentCaptor.capture());
-			assertThat(contentCaptor.getValue()).hasContent(AttachmentFileTestFactory.CONTENT);
-		}
-
-		@Test
-		void shouldReturnFileId() {
-			var id = service.persistAttachment(VorgangTestFactory.ID, AttachmentFileTestFactory.create());
-
-			assertThat(id).isEqualTo("42");
-		}
-	}
-
-	@Nested
-	class TestGetTypeByFileName {
-		@Test
-		void shouldReturnDocxType() {
-			var attachmentFile = AttachmentFileTestFactory.createBuilder().name("file.docx").contentType("word-file").build();
-
-			var type = service.getTypeByFile(attachmentFile);
-
-			assertThat(type).isEqualTo("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
-		}
 
 		@Test
-		void shouldReturnOctedStreamAsUnkown() {
-			var attachmentFile = AttachmentFileTestFactory.createBuilder().name("file.qtsch").contentType("lalal").build();
-
-			var type = service.getTypeByFile(attachmentFile);
-
-			assertThat(type).isEqualTo(ContentType.APPLICATION_OCTET_STREAM.toString());
-		}
-
-		@Test
-		void shouldReturnOdtType() {
-			var attachmentFile = AttachmentFileTestFactory.createBuilder().name("file.odt").contentType("opendoc file").build();
-
-			var type = service.getTypeByFile(attachmentFile);
+		void shouldThrowException() {
+			var attachmentFile = AttachmentFileTestFactory.create();
 
-			assertThat(type).isEqualTo("application/vnd.oasis.opendocument.text");
+			assertThatThrownBy(() -> service.persistAttachment(VorgangTestFactory.ID, attachmentFile)).isInstanceOf(
+					UnsupportedOperationException.class);
 		}
 	}
 
@@ -345,7 +190,7 @@ class PersistPostfachNachrichtByCommandServiceTest {
 		void shouldThrowException() {
 			assertThatThrownBy(() -> service.findAnswers(serviceKontoType, PostfachAddressTestFactory.STRING_BASED_IDENTIFIER_POSTFACH_ID_VALUE,
 					GrpcPostfachMailTestFactory.REFERENCED_NACHRICHT_ID))
-							.isInstanceOf(UnsupportedOperationException.class);
+					.isInstanceOf(UnsupportedOperationException.class);
 		}
 	}
 }
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/files/FileServiceTest.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/files/FileServiceTest.java
index b2222627a2c3463e35bfbb103dc2c904d9ebc045..6a354586b8606de596a4024a6380f9fc71bbae98 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/files/FileServiceTest.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/files/FileServiceTest.java
@@ -85,118 +85,27 @@ class FileServiceTest {
 
 		@Test
 		void shouldCallSave() {
-			service.uploadFile(file);
+			service.saveBinaryFile(file);
 
 			verify(binaryFileRepository).save(file);
 		}
 
 		@Test
 		void shouldCallFileIdMapper() {
-			service.uploadFile(file);
+			service.saveBinaryFile(file);
 
 			verify(fileIdMapper).toFileId(SAVED_FILE_ID);
 		}
 
 		@Test
 		void shouldReturnFileId() {
-			var result = service.uploadFile(file);
+			var result = service.saveBinaryFile(file);
 
 			assertThat(result).hasToString(SAVED_FILE_ID);
 		}
 
 	}
 
-	@DisplayName("Upload filestream")
-	@Nested
-	class TestUploadFileStream {
-
-		private final BinaryFile savedBinaryFile = BinaryFileTestFactory.create();
-		private final BinaryFile updatedBinaryFile = BinaryFileTestFactory.createBuilder().contentId(IncomingFileTestFactory.ID.toString()).build();
-
-		@BeforeEach
-		void init() {
-			when(service.uploadFileContent(any(), any())).thenReturn(IncomingFileTestFactory.ID);
-			doReturn(updatedBinaryFile).when(service).addContentId(any(), any());
-		}
-
-		@Nested
-		class TestUploadSuccessfully {
-
-			@BeforeEach
-			void init() {
-				when(binaryFileRepository.save(any())).thenReturn(savedBinaryFile);
-				when(fileIdMapper.toFileId(any())).thenReturn(BinaryFileTestFactory.ID);
-			}
-
-
-			@Test
-			void shouldCallUploadFileContent() {
-				uploadFileStream();
-
-				verify(service).uploadFileContent(ref, contentStream);
-			}
-
-			@Test
-			void shouldCallAddContentId() {
-				uploadFileStream();
-
-				verify(service).addContentId(file, IncomingFileTestFactory.ID);
-			}
-
-			@Test
-			void shouldCallSave() {
-				uploadFileStream();
-
-				verify(binaryFileRepository).save(updatedBinaryFile);
-			}
-
-			@Test
-			void shouldCallFileIdMapper() {
-				uploadFileStream();
-
-				verify(fileIdMapper).toFileId(BinaryFileTestFactory.ID_STR);
-			}
-
-			@Test
-			void shouldReturnFileId() {
-				var id = uploadFileStream();
-
-				assertThat(id).isEqualTo(BinaryFileTestFactory.ID);
-			}
-		}
-
-		@Nested
-		class TestUploadFails {
-
-			private final RuntimeException exception = new RuntimeException();
-			@BeforeEach
-			void init() {
-				when(binaryFileRepository.save(any())).thenThrow(exception);
-			}
-
-			@Test
-			void shouldCallDeleteContent() {
-				try {
-					uploadFileStream();
-				} catch (Exception e) {
-					// ignore
-				}
-
-				verify(service).deleteContent(IncomingFileTestFactory.ID);
-			}
-
-			@Test
-			void shouldPassException() {
-				assertThatThrownBy(TestUploadFileStream.this::uploadFileStream).isSameAs(exception);
-			}
-		}
-
-		private FileId uploadFileStream() {
-			return service.uploadFileStream(ref, file, contentStream);
-		}
-
-	}
-
 	@DisplayName("upload filestream async")
 	@Nested
 	class TestUploadFileContentStreamAsync {
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/files/GrpcBinaryFileServiceTest.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/files/GrpcBinaryFileServiceTest.java
index 7ee6839925198ecdb28692f83688aedefffe0ac1..05274641b52fe1a313f648abbeb32965886d2ba3 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/files/GrpcBinaryFileServiceTest.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/files/GrpcBinaryFileServiceTest.java
@@ -148,7 +148,7 @@ class GrpcBinaryFileServiceTest {
 
 		@BeforeEach
 		void init() {
-			when(service.uploadFile(any())).thenReturn(CONTENT_FILE_ID);
+			when(service.saveBinaryFile(any())).thenReturn(CONTENT_FILE_ID);
 			doReturn(updatedBinaryFile).when(grpcService).updateContentId(any(), any());
 		}
 
@@ -163,7 +163,7 @@ class GrpcBinaryFileServiceTest {
 		void shouldCallUploadFile() {
 			uploadBinaryFile();
 
-			verify(service).uploadFile(updatedBinaryFile);
+			verify(service).saveBinaryFile(updatedBinaryFile);
 		}
 
 		@Test