diff --git a/src/app/enums/index.ts b/src/app/enums/index.ts
index 7a1b11b9f3487a9332e5aa9b155eb82a60e2c7d0..ef98f42eaeccda1dde46993f10b74d45ee5f1bab 100644
--- a/src/app/enums/index.ts
+++ b/src/app/enums/index.ts
@@ -843,6 +843,19 @@ export namespace Enums {
         value: MARK_AS_TRANSLATABLE("enum.disseminationPolicy.type.basic"),
       },
     ];
+
+    export type DownloadFileNameEnum = DisseminationPolicyPartial.DownloadFileNameEnum;
+    export const DownloadFileNameEnum = DisseminationPolicyPartial.DownloadFileNameEnum;
+    export const DownloadFileNameEnumTranslate: KeyValue[] = [
+      {
+        key: DisseminationPolicy.DownloadFileNameEnum.ID,
+        value: MARK_AS_TRANSLATABLE("enum.disseminationPolicy.downloadFileName.id"),
+      },
+      {
+        key: DisseminationPolicy.DownloadFileNameEnum.NAME,
+        value: MARK_AS_TRANSLATABLE("enum.disseminationPolicy.downloadFileName.name"),
+      },
+    ];
   }
 
   export namespace FormDescription {
diff --git a/src/app/features/admin/dissemination-policy/components/presentationals/admin-dissemination-policy-form/admin-dissemination-policy-form.presentational.html b/src/app/features/admin/dissemination-policy/components/presentationals/admin-dissemination-policy-form/admin-dissemination-policy-form.presentational.html
index 766e548b5186f85c27b007f0e35ccaf027e6b83c..d4d848f4b8086854bc2354e7ccaf2414d201bca6 100644
--- a/src/app/features/admin/dissemination-policy/components/presentationals/admin-dissemination-policy-form/admin-dissemination-policy-form.presentational.html
+++ b/src/app/features/admin/dissemination-policy/components/presentationals/admin-dissemination-policy-form/admin-dissemination-policy-form.presentational.html
@@ -23,6 +23,59 @@
                  solidifyTooltipOnEllipsis
       ></mat-error>
     </mat-form-field>
+    <mat-form-field *ngIf="getFormControl(formDefinition.prefix) as fd"
+                    [appearance]="appearanceInputMaterial"
+                    [class.mat-form-field-invalid]="formValidationHelper.displayInvalidWhenRequired(fd, displayEmptyRequiredFieldInError)"
+                    solidifyTooltipOnEllipsis
+    >
+      <mat-label>{{labelTranslateEnum.prefixLabel | translate}}</mat-label>
+      <input [formControl]="fd"
+             [required]="formValidationHelper.hasRequiredField(fd)"
+             [solidifyValidation]="errors"
+             matInput
+      >
+      <mat-error #errors
+                 solidifyTooltipOnEllipsis
+      ></mat-error>
+    </mat-form-field>
+
+    <mat-form-field *ngIf="getFormControl(formDefinition.downloadFileName) as fd"
+                    [appearance]="appearanceInputMaterial"
+                    [class.mat-form-field-invalid]="formValidationHelper.displayInvalidWhenRequired(fd, displayEmptyRequiredFieldInError)"
+                    solidifyTooltipOnEllipsis
+    >
+      <mat-label>{{labelTranslateEnum.downloadFileNameLabel | translate}}</mat-label>
+      <mat-select [formControl]="fd"
+                  [required]="formValidationHelper.hasRequiredField(fd)"
+                  [solidifyValidation]="errors"
+      >
+        <mat-option *ngFor="let type of disseminationPolicyDownloadFileNameEnumToTranslate"
+                    [value]="type.key"
+                    solidifyTooltipOnEllipsis
+        >
+          {{type.value | translate}}
+        </mat-option>
+      </mat-select>
+      <mat-error #errors
+                 solidifyTooltipOnEllipsis
+      ></mat-error>
+    </mat-form-field>
+
+    <mat-form-field *ngIf="getFormControl(formDefinition.suffix) as fd"
+                    [appearance]="appearanceInputMaterial"
+                    [class.mat-form-field-invalid]="formValidationHelper.displayInvalidWhenRequired(fd, displayEmptyRequiredFieldInError)"
+                    solidifyTooltipOnEllipsis
+    >
+      <mat-label>{{labelTranslateEnum.suffixLabel | translate}}</mat-label>
+      <input [formControl]="fd"
+             [required]="formValidationHelper.hasRequiredField(fd)"
+             [solidifyValidation]="errors"
+             matInput
+      >
+      <mat-error #errors
+                 solidifyTooltipOnEllipsis
+      ></mat-error>
+    </mat-form-field>
 
     @if (model | isNotNullNorUndefined) {
       @for (parameter of fieldsParameters; track parameter) {
@@ -56,7 +109,7 @@
                   [required]="formValidationHelper.hasRequiredField(fd)"
                   [solidifyValidation]="errors"
       >
-        <mat-option *ngFor="let type of disseminationPolicyEnumToTranslate"
+        <mat-option *ngFor="let type of disseminationPolicyTypeEnumToTranslate"
                     [value]="type.key"
                     solidifyTooltipOnEllipsis
         >
diff --git a/src/app/features/admin/dissemination-policy/components/presentationals/admin-dissemination-policy-form/admin-dissemination-policy-form.presentational.ts b/src/app/features/admin/dissemination-policy/components/presentationals/admin-dissemination-policy-form/admin-dissemination-policy-form.presentational.ts
index 0ca6976252aa8a5d43f680d32fbe3263c6ef68d0..3a6662822c0ea9bad4baa6bc72c21c9b921ec6a6 100644
--- a/src/app/features/admin/dissemination-policy/components/presentationals/admin-dissemination-policy-form/admin-dissemination-policy-form.presentational.ts
+++ b/src/app/features/admin/dissemination-policy/components/presentationals/admin-dissemination-policy-form/admin-dissemination-policy-form.presentational.ts
@@ -41,6 +41,7 @@ import {BaseFormDefinition} from "@shared/models/base-form-definition.model";
 import {
   AbstractFormPresentational,
   isNotNullNorUndefined,
+  isNotNullNorUndefinedNorEmptyArray,
   isNotNullNorUndefinedNorWhiteString,
   MappingObject,
   MappingObjectUtil,
@@ -58,10 +59,15 @@ import {
 export class AdminDisseminationPolicyFormPresentational extends AbstractFormPresentational<DisseminationPolicy> implements OnInit {
   formDefinition: FormComponentFormDefinition = new FormComponentFormDefinition();
 
-  get disseminationPolicyEnumToTranslate(): typeof Enums.DisseminationPolicy.TypeEnumTranslate {
+  get disseminationPolicyTypeEnumToTranslate(): typeof Enums.DisseminationPolicy.TypeEnumTranslate {
     return Enums.DisseminationPolicy.TypeEnumTranslate;
   }
 
+  get disseminationPolicyDownloadFileNameEnumToTranslate(): typeof Enums.DisseminationPolicy.DownloadFileNameEnumTranslate {
+    return Enums.DisseminationPolicy.DownloadFileNameEnumTranslate;
+  }
+
+
   get labelTranslateEnum(): typeof LabelTranslateEnum {
     return LabelTranslateEnum;
   }
@@ -89,6 +95,10 @@ export class AdminDisseminationPolicyFormPresentational extends AbstractFormPres
     this.form = this._fb.group({
       [this.formDefinition.name]: [disseminationPolicies.name, [SolidifyValidator]],
       [this.formDefinition.type]: [disseminationPolicies.type, [SolidifyValidator]],
+      [this.formDefinition.prefix]: [disseminationPolicies.prefix, [SolidifyValidator]],
+      [this.formDefinition.downloadFileName]: [disseminationPolicies.downloadFileName, [SolidifyValidator]],
+      [this.formDefinition.suffix]: [disseminationPolicies.suffix, [SolidifyValidator]],
+
     });
     this.fieldsParameters.forEach((param) => {
       this.form.addControl(param, this._fb.control(MappingObjectUtil.get(parameters, param), [Validators.required, SolidifyValidator]));
@@ -99,12 +109,20 @@ export class AdminDisseminationPolicyFormPresentational extends AbstractFormPres
     this.form = this._fb.group({
       [this.formDefinition.name]: ["", [Validators.required, SolidifyValidator]],
       [this.formDefinition.type]: ["", [Validators.required, SolidifyValidator]],
+      [this.formDefinition.prefix]: ["", [SolidifyValidator]],
+      [this.formDefinition.downloadFileName]: ["", [SolidifyValidator]],
+      [this.formDefinition.suffix]: ["", [SolidifyValidator]],
     });
   }
 
   protected _treatmentBeforeSubmit(disseminationPolicies: DisseminationPolicy): DisseminationPolicy {
-    if (isNotNullNorUndefined(this.model)) {
-      disseminationPolicies.parameters = JSON.stringify(disseminationPolicies.parameters);
+    if (isNotNullNorUndefined(this.model) && isNotNullNorUndefinedNorEmptyArray(this.fieldsParameters)) {
+      const parameters = {} as MappingObject<string, string>;
+      this.fieldsParameters.forEach((param) => {
+       const paramValue =  this.form.get(param).value;
+       MappingObjectUtil.set(parameters, param, paramValue);
+      });
+      disseminationPolicies.parameters = JSON.stringify(parameters);
     }
     return disseminationPolicies;
   }
@@ -113,4 +131,7 @@ export class AdminDisseminationPolicyFormPresentational extends AbstractFormPres
 class FormComponentFormDefinition extends BaseFormDefinition {
   @PropertyName() name: string;
   @PropertyName() type: string;
+  @PropertyName() prefix: string;
+  @PropertyName() downloadFileName: string;
+  @PropertyName() suffix: string;
 }
diff --git a/src/app/models/index.ts b/src/app/models/index.ts
index 418c809fbcf3a3cc0100d80b99148c6739992a70..f123f397b39976ea19f77a9f398cb8ae1af89ff3 100644
--- a/src/app/models/index.ts
+++ b/src/app/models/index.ts
@@ -355,6 +355,7 @@ export type Dip = OverrideType<DipPartial, Package> & BaseResource;
 
 export type DisseminationPolicy = OverrideType<DisseminationPolicyPartial, {
   type?: Enums.DisseminationPolicy.TypeEnum;
+  downloadFileName?: Enums.DisseminationPolicy.DownloadFileNameEnum;
 }> & BaseResourceExtended;
 
 export type DisseminationPolicyDto = OverrideType<DisseminationPolicyDtoPartial, {
diff --git a/src/app/shared/enums/label-translate.enum.ts b/src/app/shared/enums/label-translate.enum.ts
index 4e52a5c2e5edbf6f668c1df891bd628e6bc726cf..bb9623453f47856d6365b18e297514c12d079cc9 100644
--- a/src/app/shared/enums/label-translate.enum.ts
+++ b/src/app/shared/enums/label-translate.enum.ts
@@ -353,6 +353,8 @@ export class LabelTranslateEnum {
   static version: string = MARK_AS_TRANSLATABLE("general.label.version");
   static format: string = MARK_AS_TRANSLATABLE("general.label.format");
   static urlRedirect: string = MARK_AS_TRANSLATABLE("general.label.urlRedirect");
+  static suffixLabel: string = MARK_AS_TRANSLATABLE("general.label.suffix");
+  static downloadFileNameLabel: string = MARK_AS_TRANSLATABLE("general.label.downloadFileName");
   static nameLabel: string = MARK_AS_TRANSLATABLE("general.label.name");
   static titleLabel: string = MARK_AS_TRANSLATABLE("general.label.title");
   static taskTypeLabel: string = MARK_AS_TRANSLATABLE("general.label.taskType");
diff --git a/src/assets/i18n/de.json b/src/assets/i18n/de.json
index 28c992f9d787bd1f3aa9fdacb313ff222836c606..7011c6b7b88919bcb80c294433aef4860fc6ae26 100644
--- a/src/assets/i18n/de.json
+++ b/src/assets/i18n/de.json
@@ -1001,6 +1001,10 @@
         "hedera": "enum.disseminationPolicy.type.hedera",
         "iiif": "enum.disseminationPolicy.type.iiif",
         "basic": "enum.disseminationPolicy.type.basic"
+      },
+      "downloadFileName": {
+        "name": "enum.disseminationPolicy.downloadFileName.name",
+        "id": "enum.disseminationPolicy.downloadFileName.archiveId",
       }
     },
     "globalBanner": {
@@ -1381,6 +1385,7 @@
       "domainSoftware": "Domain-Software",
       "downloadArchive": "Archiv herunterladen",
       "downloadDua": "general.label.downloadDua",
+      "downloadFileName": "Dateiname für den Archiv-Download",
       "downloadNumber": "Anzahl der Downloads",
       "downloadSubmissionAgreementFile": "general.label.downloadSubmissionAgreementFile",
       "duaFile": "general.label.duaFile",
@@ -1619,6 +1624,7 @@
       "submissionPolicy": "Einreichungsrichtlinie",
       "submissionRequireSubmissionAgreement": "general.label.submissionRequireSubmissionAgreement",
       "submittedDate": "Einreichungsdatum",
+      "suffix": "Suffix",
       "system": "general.label.system",
       "taskType": "general.label.taskType",
       "theChecksumFormatIsNotTheExpectedOne": "general.label.theChecksumFormatIsNotTheExpectedOne",
diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json
index 2f3b7fe60c3a85cdadc58ec4cae0794c295a242b..59f5e0aae514b0249e4345bb577f1b472072ea4b 100644
--- a/src/assets/i18n/en.json
+++ b/src/assets/i18n/en.json
@@ -1001,6 +1001,10 @@
         "hedera": "Hedera",
         "iiif": "IIIF",
         "basic": "Basic"
+      },
+      "downloadFileName": {
+        "name": "Archive filename",
+        "id": "Id of the archive"
       }
     },
     "globalBanner": {
@@ -1381,6 +1385,7 @@
       "domainSoftware": "Domain software",
       "downloadArchive": "Download archive",
       "downloadDua": "Download DUA",
+      "downloadFileName": "File name for archive download",
       "downloadNumber": "Number of downloads",
       "downloadSubmissionAgreementFile": "Download submission agreement file",
       "duaFile": "Contract on the use of data",
@@ -1621,6 +1626,7 @@
       "submissionPolicy": "Submission policy",
       "submissionRequireSubmissionAgreement": "Submission requires a submission agreement",
       "submittedDate": "Submission date",
+      "suffix": "Suffix",
       "system": "System",
       "taskType": "Task type",
       "theChecksumFormatIsNotTheExpectedOne": "The checksum format is not the expected one",
diff --git a/src/assets/i18n/fr.json b/src/assets/i18n/fr.json
index 6e8eef86f632c930c05a81af7836abf35225ac60..2ce6c20a5ec533b6b69293d4ed499a69b65cfcc6 100644
--- a/src/assets/i18n/fr.json
+++ b/src/assets/i18n/fr.json
@@ -1001,6 +1001,10 @@
         "hedera": "Hedera",
         "iiif": "IIIF",
         "basic": "Basic"
+      },
+      "downloadFileName": {
+        "name": "Nom d'archive",
+        "id": "Id d'archive"
       }
     },
     "globalBanner": {
@@ -1381,6 +1385,7 @@
       "domainSoftware": "Logiciels de domaine",
       "downloadArchive": "Télécharger l'archive",
       "downloadDua": "Télécharger DUA",
+      "downloadFileName": "Nom du fichier pour le téléchargement d'archive",
       "downloadNumber": "Nombre de téléchargements",
       "downloadSubmissionAgreementFile": "Télécharger le fichier d'accord de versement",
       "duaFile": "Contrat sur l'utilisation des données",
@@ -1621,6 +1626,7 @@
       "submissionPolicy": "Politique de soumission",
       "submissionRequireSubmissionAgreement": "La soumission nécessite un accord de versement",
       "submittedDate": "Date de soumission",
+      "suffix": "Suffixe",
       "system": "Système",
       "taskType": "Type de tâche",
       "theChecksumFormatIsNotTheExpectedOne": "Le format du checksum n'est pas celui attendu",
diff --git a/src/assets/openapi/dlcm-openapi-3.0.json b/src/assets/openapi/dlcm-openapi-3.0.json
index 609adffcf7a4b8bf39ddcb8b6def7fe7712d543e..c34afbdb2fd91c5db0ebc949b2dbcec52cb9f706 100644
--- a/src/assets/openapi/dlcm-openapi-3.0.json
+++ b/src/assets/openapi/dlcm-openapi-3.0.json
@@ -36105,14 +36105,6 @@
             "schema": {
               "type": "string"
             }
-          },
-          {
-            "name": "changeFileNameToArchiveName",
-            "in": "query",
-            "required": false,
-            "schema": {
-              "type": "boolean"
-            }
           }
         ],
         "responses": {
@@ -37439,14 +37431,6 @@
             "schema": {
               "type": "string"
             }
-          },
-          {
-            "name": "changeFileNameToArchiveName",
-            "in": "query",
-            "required": false,
-            "schema": {
-              "type": "boolean"
-            }
           }
         ],
         "responses": {
@@ -38652,14 +38636,6 @@
             "schema": {
               "type": "string"
             }
-          },
-          {
-            "name": "changeFileNameToArchiveName",
-            "in": "query",
-            "required": false,
-            "schema": {
-              "type": "boolean"
-            }
           }
         ],
         "responses": {
@@ -40559,15 +40535,15 @@
             "type": "string",
             "writeOnly": true
           },
-          "hasEmbargo": {
-            "type": "boolean"
-          },
           "collectionSize": {
             "type": "integer",
             "description": "The number of archives in the deposit.",
             "format": "int32",
             "readOnly": true
           },
+          "hasEmbargo": {
+            "type": "boolean"
+          },
           "_links": {
             "$ref": "#/components/schemas/Links"
           }
@@ -41917,11 +41893,6 @@
             "description": "The last archiving process date of the AIP: the first archiving date or the last metadata edition.",
             "format": "date-time"
           },
-          "ready": {
-            "type": "boolean",
-            "description": "If AIP package is ready.",
-            "readOnly": true
-          },
           "complianceLevel": {
             "type": "string",
             "description": "Compliance level to define the preservation quality based on data file format:\n- NOT_ASSESSED => The format could not be evaluated\n- NO_COMPLIANCE => The format could not be determined\n- WEAK_COMPLIANCE => The format was determined: content type detected\n- AVERAGE_COMPLIANCE => The format was determined: WEAK_COMPLIANCE + PRONOM identifier detected\n- FULL_COMPLIANCE => The format was determined: AVERAGE_COMPLIANCE + the format is part of golden formats\n",
@@ -41934,6 +41905,11 @@
               "FULL_COMPLIANCE"
             ]
           },
+          "ready": {
+            "type": "boolean",
+            "description": "If AIP package is ready.",
+            "readOnly": true
+          },
           "dataFileNumber": {
             "type": "integer",
             "description": "The number of AIP data files.",
@@ -42481,15 +42457,15 @@
             "description": "The publication date of the deposit.",
             "format": "date"
           },
+          "organizationalUnitId": {
+            "type": "string",
+            "description": "The organizational unit identifier of the SIP."
+          },
           "ready": {
             "type": "boolean",
             "description": "If SIP package is ready.",
             "readOnly": true
           },
-          "organizationalUnitId": {
-            "type": "string",
-            "description": "The organizational unit identifier of the SIP."
-          },
           "dataFileNumber": {
             "type": "integer",
             "description": "The number of SIP data files.",
@@ -44451,6 +44427,26 @@
             "type": "string",
             "description": "The parameters of the dissemination policy."
           },
+          "prefix": {
+            "maxLength": 255,
+            "minLength": 0,
+            "type": "string",
+            "description": "The prefix used when downloading a file with this dissemination policy."
+          },
+          "downloadFileName": {
+            "type": "string",
+            "description": "Name used when downloading file: ARCHIVE_ID or ARCHIVE_NAME",
+            "enum": [
+              "ARCHIVE_ID",
+              "ARCHIVE_NAME"
+            ]
+          },
+          "suffix": {
+            "maxLength": 255,
+            "minLength": 0,
+            "type": "string",
+            "description": "The suffix used when downloading a file with this dissemination policy."
+          },
           "useNumber": {
             "type": "integer",
             "description": "The number of the dissemination policy use in organizational units.",
@@ -45474,14 +45470,14 @@
             "type": "string",
             "writeOnly": true
           },
-          "dipNumber": {
+          "aipNumber": {
             "type": "integer",
-            "description": "The DIP number of the order query.",
+            "description": "The AIP number of the order query.",
             "format": "int32"
           },
-          "aipNumber": {
+          "dipNumber": {
             "type": "integer",
-            "description": "The AIP number of the order query.",
+            "description": "The DIP number of the order query.",
             "format": "int32"
           },
           "_links": {