diff --git a/alfa-client/libs/binary-file-shared/src/lib/binary-file.model.ts b/alfa-client/libs/binary-file-shared/src/lib/binary-file.model.ts
index 6ace813e0592f1b6c009cc28c937e421b29afa35..ad066e5dcc84ed8ed7f48b258a2d32eaeefcca7d 100644
--- a/alfa-client/libs/binary-file-shared/src/lib/binary-file.model.ts
+++ b/alfa-client/libs/binary-file-shared/src/lib/binary-file.model.ts
@@ -36,19 +36,15 @@ export interface BinaryFileResource extends BinaryFile, Resource {}
 export interface BinaryFileListResource extends ListResource {}
 
 export interface ToUploadFile {
-  type: BinaryFileUploadType;
+  type: FileUploadType;
   file: File;
   uri: ResourceUri;
 }
 
-export enum BinaryFileUploadType {
-  BESCHEID = 'Bescheid',
-  KOMMENTAR = 'Kommentar',
-  WIEDERVORLAGE = 'Wiedervorlage',
-  POSTACH_NACHRICHT = 'PostfachNachricht',
-}
+export declare type FileUploadType = string;
 
 export interface UploadFile {
+  type: FileUploadType;
   fileToUpload: File;
   uploadedFile: Observable<StateResource<BinaryFileResource>>;
 }
diff --git a/alfa-client/libs/binary-file-shared/src/lib/binary-file.service.spec.ts b/alfa-client/libs/binary-file-shared/src/lib/binary-file.service.spec.ts
index 0224be702b2694557dcfe2ac287bafdbad3701ea..4b9200a09313ae46fbd06a99a269947faffb72ce 100644
--- a/alfa-client/libs/binary-file-shared/src/lib/binary-file.service.spec.ts
+++ b/alfa-client/libs/binary-file-shared/src/lib/binary-file.service.spec.ts
@@ -44,7 +44,7 @@ import { createDummyResource } from 'libs/tech-shared/test/resource';
 import { Observable, of, throwError } from 'rxjs';
 import { createHttpErrorResponse } from '../../../tech-shared/test/http';
 import { coldError, coldStartWithError, multipleCold, singleCold, singleHot } from '../../../tech-shared/test/marbles';
-import { BinaryFileResource, BinaryFileUploadType, ToUploadFile, UploadFile } from './binary-file.model';
+import { BinaryFileResource, FileUploadType, ToUploadFile, UploadFile } from './binary-file.model';
 import { BinaryFileRepository } from './binary-file.repository';
 import { BinaryFileService } from './binary-file.service';
 
@@ -66,34 +66,38 @@ describe('BinaryFileService', () => {
   });
 
   describe('is upload in progress', () => {
+    const type: FileUploadType = 'DummyType';
     const uploadFile: UploadFile = {
+      type,
       fileToUpload: createFile(),
       uploadedFile: of(createEmptyStateResource<BinaryFileResource>(true)),
     };
 
     beforeEach(() => {
-      service.uploadFiles.next({ [BinaryFileUploadType.BESCHEID]: [uploadFile] });
+      service.uploadFiles.next({ [type]: [uploadFile] });
     });
 
     it('should return true if uploadedFiles contains loading stateResource by key', () => {
-      const uploadInProgress: Observable<boolean> = service.isUploadInProgress(BinaryFileUploadType.BESCHEID);
+      const uploadInProgress: Observable<boolean> = service.isUploadInProgress(type);
 
       expect(uploadInProgress).toBeObservable(singleCold(true));
     });
   });
 
   describe('get uploaded files', () => {
+    const type: FileUploadType = 'DummyType';
     const uploadFile: UploadFile = {
+      type,
       fileToUpload: createFile(),
       uploadedFile: of(createStateResource(createBinaryFileResource())),
     };
 
     beforeEach(() => {
-      service.uploadFiles.next({ [BinaryFileUploadType.BESCHEID]: [uploadFile] });
+      service.uploadFiles.next({ [type]: [uploadFile] });
     });
 
     it('should return uploaded files by key', (done) => {
-      service.getUploadedFiles(BinaryFileUploadType.BESCHEID).subscribe((uploadedFiles: UploadFile[]) => {
+      service.getUploadedFiles(type).subscribe((uploadedFiles: UploadFile[]) => {
         expect(uploadedFiles).toEqual([uploadFile]);
         done();
       });
@@ -103,7 +107,7 @@ describe('BinaryFileService', () => {
   describe('upload file new', () => {
     const file: File = createFile();
     const uri: ResourceUri = faker.internet.url();
-    const type: BinaryFileUploadType = BinaryFileUploadType.BESCHEID;
+    const type: FileUploadType = 'dummyType';
 
     const toUploadFile: ToUploadFile = { file, uri, type };
 
@@ -112,7 +116,7 @@ describe('BinaryFileService', () => {
 
     const binaryFileStateResource$: Observable<StateResource<BinaryFileResource>> = of(createStateResource(binaryFileResource));
 
-    const uploadFile: UploadFile = { fileToUpload: file, uploadedFile: binaryFileStateResource$ };
+    const uploadFile: UploadFile = { type, fileToUpload: file, uploadedFile: binaryFileStateResource$ };
 
     it('should push entry to uploaded files', () => {
       service._buildUploadFile = jest.fn().mockReturnValue(uploadFile);
diff --git a/alfa-client/libs/binary-file-shared/src/lib/binary-file.service.ts b/alfa-client/libs/binary-file-shared/src/lib/binary-file.service.ts
index 02513d3055822c2c7bea631b5dc31d08be7f727a..5c734dbe76d0ff81b81596dba89011cf312044ac 100644
--- a/alfa-client/libs/binary-file-shared/src/lib/binary-file.service.ts
+++ b/alfa-client/libs/binary-file-shared/src/lib/binary-file.service.ts
@@ -48,7 +48,7 @@ import { catchError, map, mergeMap, startWith, switchMap } from 'rxjs/operators'
 import {
   BinaryFileListResource,
   BinaryFileResource,
-  BinaryFileUploadType,
+  FileUploadType,
   ToUploadFile,
   UploadFile,
   UploadFilesByType,
@@ -57,19 +57,14 @@ import { BinaryFileRepository } from './binary-file.repository';
 
 @Injectable({ providedIn: 'root' })
 export class BinaryFileService {
-  uploadFiles: BehaviorSubject<UploadFilesByType> = new BehaviorSubject({
-    [BinaryFileUploadType.BESCHEID]: EMPTY_ARRAY,
-    [BinaryFileUploadType.KOMMENTAR]: EMPTY_ARRAY,
-    [BinaryFileUploadType.WIEDERVORLAGE]: EMPTY_ARRAY,
-    [BinaryFileUploadType.POSTACH_NACHRICHT]: EMPTY_ARRAY,
-  });
+  uploadFiles: BehaviorSubject<UploadFilesByType> = new BehaviorSubject({});
 
   constructor(
     private repository: BinaryFileRepository,
     private snackbarService: SnackBarService,
   ) {}
 
-  public isUploadInProgress(type: BinaryFileUploadType): Observable<boolean> {
+  public isUploadInProgress(type: FileUploadType): Observable<boolean> {
     return this.uploadFiles.asObservable().pipe(
       map((files: UploadFilesByType) => files[type].map((file: UploadFile) => file.uploadedFile)),
       switchMap((files: Observable<StateResource<BinaryFileResource>>[]) => forkJoin(files)),
@@ -77,17 +72,19 @@ export class BinaryFileService {
     );
   }
 
-  public getUploadedFiles(type: BinaryFileUploadType): Observable<UploadFile[]> {
+  public getUploadedFiles(type: FileUploadType): Observable<UploadFile[]> {
     return this.uploadFiles.asObservable().pipe(map((files: UploadFilesByType) => files[type]));
   }
 
   //TODO Rename
   public uploadFileNew(toUploadFile: ToUploadFile): void {
+    if (!(toUploadFile.uri in this.uploadFiles.value)) this.uploadFiles.value[toUploadFile.type] = EMPTY_ARRAY;
     this.uploadFiles.value[toUploadFile.type].push(this._buildUploadFile(toUploadFile));
   }
 
   _buildUploadFile(toUploadFile: ToUploadFile): UploadFile {
     return {
+      type: toUploadFile.type,
       fileToUpload: toUploadFile.file,
       uploadedFile: this._handleUpload(toUploadFile),
     };