diff --git a/src/main/java/de/ozgcloud/nachrichten/postfach/muk/transfer/AttachmentService.java b/src/main/java/de/ozgcloud/nachrichten/postfach/muk/transfer/AttachmentService.java
index 6426921e9b447b0e4f75ea249233684fd69c4df8..5a259d19982ae9ed73df9280e9c76b1bca7cbc6e 100644
--- a/src/main/java/de/ozgcloud/nachrichten/postfach/muk/transfer/AttachmentService.java
+++ b/src/main/java/de/ozgcloud/nachrichten/postfach/muk/transfer/AttachmentService.java
@@ -48,8 +48,7 @@ public class AttachmentService {
 		ozgCloudFileService.writeFileDataToStream(fileId, outputStream);
 	}
 
-	public String store(OzgCloudUploadFile attachment, BufferedInputStream dataStream) {
-		var fileId = ozgCloudFileService.uploadFile(attachment, dataStream);
-		return fileId.toString();
+	public OzgCloudFileId store(OzgCloudUploadFile attachment, BufferedInputStream dataStream) {
+		return ozgCloudFileService.uploadFile(attachment, dataStream);
 	}
 }
diff --git a/src/main/java/de/ozgcloud/nachrichten/postfach/muk/transfer/ElsterTransferRemoteService.java b/src/main/java/de/ozgcloud/nachrichten/postfach/muk/transfer/ElsterTransferRemoteService.java
index dadd92123ee5b7635c0b481f19524104a7b7c2d8..701a666aec82e76bc8b46e38c516fc9dedcf9c31 100644
--- a/src/main/java/de/ozgcloud/nachrichten/postfach/muk/transfer/ElsterTransferRemoteService.java
+++ b/src/main/java/de/ozgcloud/nachrichten/postfach/muk/transfer/ElsterTransferRemoteService.java
@@ -41,6 +41,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.stereotype.Service;
 
 import de.ozgcloud.apilib.file.OzgCloudFile;
+import de.ozgcloud.apilib.file.OzgCloudFileId;
 import de.ozgcloud.apilib.file.OzgCloudUploadFile;
 import de.ozgcloud.common.binaryfile.TempFileUtils;
 import de.ozgcloud.common.errorhandling.TechnicalException;
@@ -63,6 +64,7 @@ import lombok.extern.log4j.Log4j2;
 @RequiredArgsConstructor
 @ConditionalOnProperty(prefix = MukPostfachProperties.PREFIX, name = { "server" })
 public class ElsterTransferRemoteService {
+	public static final String POSTFACH = "postfach";
 	private final ElsterRestClient restClient;
 	private final MukPostfachProperties postfachProperties;
 	private final MukPostfachMessageMapper mapper;
@@ -212,16 +214,25 @@ public class ElsterTransferRemoteService {
 	}
 
 	Optional<String> storeToOzgCloud(DownloadAnhangDetails downloadAnhangDetails, String vorgangId, ByteArrayInputStream dataIn) throws IOException {
-		Optional<String> fileIdOptional;
+		OzgCloudFileId ozgCloudFileId;
 		try (BufferedInputStream dataStream = new BufferedInputStream(dataIn)) {
-			var uploadFile = OzgCloudUploadFile.builder()
-			  .fileName(downloadAnhangDetails.getDatei())
-			  .contentType(downloadAnhangDetails.getMimeType())
-			  .vorgangId(vorgangId).build();
+			ozgCloudFileId = attachmentService.store(createOzgCloudUploadFile(downloadAnhangDetails, vorgangId), dataStream);
+		}
 
-			fileIdOptional = Optional.of(attachmentService.store(uploadFile, dataStream));
+		if (Objects.nonNull(ozgCloudFileId)) {
+			return Optional.of(ozgCloudFileId.toString());
 		}
-		return fileIdOptional;
+
+		LOG.error("Received no OzgCloudFileId when saving attachment {} to vorgangId {}", downloadAnhangDetails, vorgangId);
+		return Optional.empty();
+	}
+
+	static OzgCloudUploadFile createOzgCloudUploadFile(final DownloadAnhangDetails downloadAnhangDetails, final String vorgangId) {
+		return OzgCloudUploadFile.builder()
+		  .fileName(downloadAnhangDetails.getDatei())
+		  .fieldName(POSTFACH)
+		  .contentType(downloadAnhangDetails.getMimeType())
+		  .vorgangId(vorgangId).build();
 	}
 }
 
diff --git a/src/test/java/de/ozgcloud/nachrichten/postfach/muk/transfer/ElsterTransferRemoteServiceTest.java b/src/test/java/de/ozgcloud/nachrichten/postfach/muk/transfer/ElsterTransferRemoteServiceTest.java
index 7710d872637a75120aa94479b509e8877a32beb5..3f6d7c48c594074818cd96be1f259cff6a0ff4a7 100644
--- a/src/test/java/de/ozgcloud/nachrichten/postfach/muk/transfer/ElsterTransferRemoteServiceTest.java
+++ b/src/test/java/de/ozgcloud/nachrichten/postfach/muk/transfer/ElsterTransferRemoteServiceTest.java
@@ -30,6 +30,7 @@ import static org.assertj.core.api.Assertions.*;
 import static org.mockito.Mockito.*;
 
 import java.io.IOException;
+import java.net.URI;
 import java.nio.file.Path;
 import java.util.UUID;
 
@@ -42,12 +43,14 @@ import org.mockito.Mock;
 import org.mockito.Spy;
 
 import de.ozgcloud.apilib.file.OzgCloudFile;
+import de.ozgcloud.apilib.file.OzgCloudFileId;
 import de.ozgcloud.apilib.file.OzgCloudFileTestFactory;
 import de.ozgcloud.common.errorhandling.TechnicalException;
 import de.ozgcloud.muk.elster.transfer.BereitstellungAnhangWithUploadId;
 import de.ozgcloud.muk.elster.transfer.BereitstellungAuftragNeuV3;
 import de.ozgcloud.muk.elster.transfer.BereitstellungAuftragStatus;
 import de.ozgcloud.muk.elster.transfer.BereitstellungInfo;
+import de.ozgcloud.muk.elster.transfer.DownloadAnhangDetails;
 import de.ozgcloud.muk.elster.transfer.UploadInfo;
 import de.ozgcloud.nachrichten.postfach.PostfachNachricht;
 import de.ozgcloud.nachrichten.postfach.muk.BereitstellungAnhangTestFactory;
@@ -285,7 +288,25 @@ class ElsterTransferRemoteServiceTest {
 		private void setupForAttachments() {
 			when(postfachProperties.getServer()).thenReturn("http://localhost");
 			when(restClient.getForObject(matches(postfachProperties.getServer() + DOWNLOAD_URI), any())).thenReturn("Test,Data".getBytes());
-			when(attachmentService.store(any(), any())).thenReturn(ObjectIdToUUIDConverter.toUUID(new ObjectId().toHexString()).toString());
+			when(attachmentService.store(any(), any())).thenReturn(OzgCloudFileId.from(ObjectIdToUUIDConverter.toUUID(new ObjectId().toHexString()).toString()));
+		}
+
+		@Test
+		void shouldHandleAttachmentSaveError() {
+			when(postfachProperties.getServer()).thenReturn("http://localhost");
+			when(restClient.getForObject(matches(postfachProperties.getServer() + DOWNLOAD_URI), any())).thenReturn("Test,Data".getBytes());
+			when(attachmentService.store(any(), any())).thenReturn(null);
+
+			DownloadAnhangDetails downloadAnhangDetails = new DownloadAnhangDetails();
+			downloadAnhangDetails.setMimeType(OzgCloudFileTestFactory.CONTENT_TYPE);
+			downloadAnhangDetails.setDownloadUrl(URI.create("/download"));
+			downloadAnhangDetails.setDateiBezeichnung(OzgCloudFileTestFactory.NAME);
+			downloadAnhangDetails.setDatei("");
+
+			var res = elsterTransferService.downloadAnhang(downloadAnhangDetails, ObjectId.get().toHexString());
+
+			assertThat(res).isNotPresent();
+
 		}
 
 		@Test
@@ -300,7 +321,7 @@ class ElsterTransferRemoteServiceTest {
 		@Test
 		void shouldHaveVorgangId() {
 			when(restClient.getForObject(matches(postfachProperties.getServer() + DOWNLOAD_URI), any())).thenReturn("Test,Data".getBytes());
-			when(attachmentService.store(any(), any())).thenReturn(new ObjectId().toHexString());
+			when(attachmentService.store(any(), any())).thenReturn(OzgCloudFileId.from(new ObjectId().toHexString()));
 
 			var antwort = elsterTransferService.getAntwort(AntwortDetailsTestFactory.create());
 
@@ -368,4 +389,53 @@ class ElsterTransferRemoteServiceTest {
 			);
 		}
 	}
+
+	@Nested
+	class TestCreatingOzgCloudFile {
+		DownloadAnhangDetails downloadAnhangDetails = new DownloadAnhangDetails();
+		String vorgangId = ObjectId.get().toHexString();
+
+		@BeforeEach
+		void setUp() {
+			downloadAnhangDetails.setMimeType(OzgCloudFileTestFactory.CONTENT_TYPE);
+			downloadAnhangDetails.setDownloadUrl(URI.create("/download"));
+			downloadAnhangDetails.setDateiBezeichnung(OzgCloudFileTestFactory.NAME);
+			downloadAnhangDetails.setDatei(OzgCloudFileTestFactory.NAME);
+		}
+
+		@Test
+		void shouldCreateOzgCloudFile() {
+			var file = ElsterTransferRemoteService.createOzgCloudUploadFile(downloadAnhangDetails, vorgangId);
+
+			assertThat(file).isNotNull();
+		}
+
+		@Test
+		void shouldHaveFileName() {
+			var file = ElsterTransferRemoteService.createOzgCloudUploadFile(downloadAnhangDetails, vorgangId);
+
+			assertThat(file.getFileName()).isEqualTo(downloadAnhangDetails.getDatei());
+		}
+
+		@Test
+		void shouldHaveVorgangId() {
+			var file = ElsterTransferRemoteService.createOzgCloudUploadFile(downloadAnhangDetails, vorgangId);
+
+			assertThat(file.getVorgangId()).isEqualTo(vorgangId);
+		}
+
+		@Test
+		void shouldHaveContentType() {
+			var file = ElsterTransferRemoteService.createOzgCloudUploadFile(downloadAnhangDetails, vorgangId);
+
+			assertThat(file.getContentType()).isEqualTo(downloadAnhangDetails.getMimeType());
+		}
+
+		@Test
+		void shouldHaveFieldName() {
+			var file = ElsterTransferRemoteService.createOzgCloudUploadFile(downloadAnhangDetails, vorgangId);
+
+			assertThat(file.getFieldName()).isEqualTo(POSTFACH);
+		}
+	}
 }
\ No newline at end of file