diff --git a/src/app/features/preservation/aip/components/presentationals/aip-form/aip-form.presentational.html b/src/app/features/preservation/aip/components/presentationals/aip-form/aip-form.presentational.html
index b48dc18b9b759d4c625939021fd782f617677748..216461ba33b63caa650c13f7020486824b5ebc63 100644
--- a/src/app/features/preservation/aip/components/presentationals/aip-form/aip-form.presentational.html
+++ b/src/app/features/preservation/aip/components/presentationals/aip-form/aip-form.presentational.html
@@ -92,8 +92,15 @@
       >
       </dlcm-shared-searchable-single-select>
 
-      <dlcm-shared-compliance-level-rating [formControl]="getFormControl(formDefinition.complianceLevel)"></dlcm-shared-compliance-level-rating>
-
+      <div class="span-row">
+        <dlcm-shared-compliance-level-rating [formControl]="getFormControl(formDefinition.complianceLevel)"></dlcm-shared-compliance-level-rating>
+        <mat-form-field>
+          <mat-label>{{'aip.form.container' | translate }}</mat-label>
+          <input matInput
+                 [formControlName]="formDefinition.container"
+          >
+        </mat-form-field>
+      </div>
       <mat-form-field>
         <mat-label>{{'aip.form.archive' | translate }}</mat-label>
         <input matInput
@@ -103,9 +110,9 @@
 
       <div class="span-row">
         <mat-form-field>
-          <mat-label>{{'aip.form.container' | translate }}</mat-label>
+          <mat-label>{{'aip.form.files' | translate }}</mat-label>
           <input matInput
-                 [formControlName]="formDefinition.container"
+                 [formControlName]="formDefinition.files"
           >
         </mat-form-field>
         <mat-form-field>
@@ -116,17 +123,34 @@
         </mat-form-field>
       </div>
 
-      <div class="span-row">
+      <div class="span-row"
+           [class.only-one]="getFormControl(formDefinition.status).value !== packageStatusEnum.DISPOSED"
+      >
         <mat-form-field>
           <mat-label>{{'aip.form.size' | translate }}</mat-label>
           <input matInput
                  [formControlName]="formDefinition.size"
           >
         </mat-form-field>
+        <mat-form-field *ngIf="getFormControl(formDefinition.status).value === packageStatusEnum.DISPOSED">
+          <mat-label>{{'aip.form.tombstoneSize' | translate }}</mat-label>
+          <input matInput
+                 [formControlName]="formDefinition.tombstoneSize"
+          >
+        </mat-form-field>
+      </div>
+
+      <div class="span-row">
         <mat-form-field>
-          <mat-label>{{'aip.form.files' | translate }}</mat-label>
+          <mat-label>{{'aip.form.retention' | translate }}</mat-label>
           <input matInput
-                 [formControlName]="formDefinition.files"
+                 [formControlName]="formDefinition.retention"
+          >
+        </mat-form-field>
+        <mat-form-field>
+          <mat-label>{{'aip.form.retentionEnd' | translate }}</mat-label>
+          <input matInput
+                 [formControlName]="formDefinition.retentionEnd"
           >
         </mat-form-field>
       </div>
diff --git a/src/app/features/preservation/aip/components/presentationals/aip-form/aip-form.presentational.ts b/src/app/features/preservation/aip/components/presentationals/aip-form/aip-form.presentational.ts
index b4756d5b088de78d3f385db9576cc087bf11f7b2..06c77988bef4a92cb97d56f5a1ac1943f0a806eb 100644
--- a/src/app/features/preservation/aip/components/presentationals/aip-form/aip-form.presentational.ts
+++ b/src/app/features/preservation/aip/components/presentationals/aip-form/aip-form.presentational.ts
@@ -15,7 +15,10 @@ import {
 import {TranslateService} from "@ngx-translate/core";
 import {SharedAbstractFormPresentational} from "@shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational";
 import {AccessLevelEnumHelper} from "@shared/enums/business/access-level-enum.helper";
-import {PackageStatusEnumHelper} from "@shared/enums/business/package-status.enum";
+import {
+  PackageStatusEnum,
+  PackageStatusEnumHelper,
+} from "@shared/enums/business/package-status.enum";
 import {RoutesEnum} from "@shared/enums/routes.enum";
 import {BaseFormDefinition} from "@shared/models/base-form-definition.model";
 import {SharedLicenseState} from "@shared/stores/license/shared-license.state";
@@ -41,6 +44,8 @@ export class AipFormPresentational extends SharedAbstractFormPresentational<Aip>
   accessEnumValues: KeyValue[] = AccessLevelEnumHelper.getListKeyValue();
   packageStatusEnumValues: KeyValue[] = PackageStatusEnumHelper.getListKeyValue();
 
+  get packageStatusEnum(): typeof PackageStatusEnum { return PackageStatusEnum; }
+
   sharedLicenseActionNameSpace: ResourceNameSpace = sharedLicenseActionNameSpace;
   sharedLicenseState: typeof SharedLicenseState = SharedLicenseState;
 
@@ -77,6 +82,9 @@ export class AipFormPresentational extends SharedAbstractFormPresentational<Aip>
       [this.formDefinition.size]: [FileUtil.transformFileSize(aip.archiveSize), []],
       [this.formDefinition.files]: [aip.archiveFileNumber, []],
       [this.formDefinition.metadataVersion]: [aip.info.metadataVersion, []],
+      [this.formDefinition.retention]: [aip.smartRetention, []],
+      [this.formDefinition.retentionEnd]: [DateUtil.convertDateToDateTimeString(new Date(aip.retentionEnd)), []],
+      [this.formDefinition.tombstoneSize]: [aip.smartTombstoneSize, []],
     });
   }
 
@@ -133,4 +141,7 @@ class FormComponentFormDefinition extends BaseFormDefinition {
   @PropertyName() size: string;
   @PropertyName() files: string;
   @PropertyName() metadataVersion: string;
+  @PropertyName() retention: string;
+  @PropertyName() retentionEnd: string;
+  @PropertyName() tombstoneSize: string;
 }
diff --git a/src/app/features/preservation/aip/components/routables/aip-detail-edit/aip-detail-edit.routable.ts b/src/app/features/preservation/aip/components/routables/aip-detail-edit/aip-detail-edit.routable.ts
index 9d79ba2802d86edbeeda65f599186ca819f9219f..706b425c8fb1fba12009067895d71569dd33b0a5 100644
--- a/src/app/features/preservation/aip/components/routables/aip-detail-edit/aip-detail-edit.routable.ts
+++ b/src/app/features/preservation/aip/components/routables/aip-detail-edit/aip-detail-edit.routable.ts
@@ -128,6 +128,22 @@ export class AipDetailEditRoutable extends SharedAbstractDetailEditCommonRoutabl
       labelToTranslate: MARK_AS_TRANSLATABLE("app.navigation.button.check"),
       order: 40,
     },
+    {
+      color: "primary",
+      icon: IconNameEnum.dispose,
+      displayCondition: current => !isNullOrUndefined(current) && !isNullOrUndefined(current.info) && current.info.status === PackageStatusEnum.COMPLETED,
+      callback: () => this.dispose(),
+      labelToTranslate: MARK_AS_TRANSLATABLE("app.navigation.button.dispose"),
+      order: 40,
+    },
+    {
+      color: "primary",
+      icon: IconNameEnum.approveDisposal,
+      displayCondition: current => !isNullOrUndefined(current) && !isNullOrUndefined(current.info) && current.info.status === PackageStatusEnum.DISPOSABLE,
+      callback: () => this.approveDisposal(),
+      labelToTranslate: MARK_AS_TRANSLATABLE("app.navigation.button.approveDisposal"),
+      order: 40,
+    },
     {
       color: "primary",
       icon: IconNameEnum.download,
@@ -139,7 +155,7 @@ export class AipDetailEditRoutable extends SharedAbstractDetailEditCommonRoutabl
     {
       color: "primary",
       icon: IconNameEnum.resume,
-      displayCondition: current => !isNullOrUndefined(current) && !isNullOrUndefined(current.info) && current.info.status !== PackageStatusEnum.COMPLETED,
+      displayCondition: current => !isNullOrUndefined(current) && !isNullOrUndefined(current.info) && current.info.status == PackageStatusEnum.IN_ERROR,
       callback: () => this.resume(),
       labelToTranslate: MARK_AS_TRANSLATABLE("app.navigation.button.resume"),
       order: 40,
@@ -205,6 +221,14 @@ export class AipDetailEditRoutable extends SharedAbstractDetailEditCommonRoutabl
     this._store.dispatch(new PreservationAipAction.Check(this._resId));
   }
 
+  dispose(): void {
+    this._store.dispatch(new PreservationAipAction.Dispose(this._resId));
+  }
+
+  approveDisposal(): void {
+    this._store.dispatch(new PreservationAipAction.ApproveDisposal(this._resId));
+  }
+
   resume(): void {
     this._store.dispatch(new PreservationAipAction.Resume(this._resId));
   }
diff --git a/src/app/features/preservation/aip/stores/aip.action.ts b/src/app/features/preservation/aip/stores/aip.action.ts
index 073626260392652ba66d2609ce51da13793495ac..f86a0fb53caf90369217a33b244a258db6d17a21 100644
--- a/src/app/features/preservation/aip/stores/aip.action.ts
+++ b/src/app/features/preservation/aip/stores/aip.action.ts
@@ -213,6 +213,38 @@ export namespace PreservationAipAction {
     static readonly type: string = `[${state}] Check Fail`;
   }
 
+  export class Dispose extends BaseAction {
+    static readonly type: string = `[${state}] Dispose`;
+
+    constructor(public id: string) {
+      super();
+    }
+  }
+
+  export class DisposeSuccess extends BaseSubAction<Dispose> {
+    static readonly type: string = `[${state}] Dispose Success`;
+  }
+
+  export class DisposeFail extends BaseSubAction<Dispose> {
+    static readonly type: string = `[${state}] Dispose Fail`;
+  }
+
+  export class ApproveDisposal extends BaseAction {
+    static readonly type: string = `[${state}] ApproveDisposal`;
+
+    constructor(public id: string) {
+      super();
+    }
+  }
+
+  export class ApproveDisposalSuccess extends BaseSubAction<ApproveDisposal> {
+    static readonly type: string = `[${state}] ApproveDisposal Success`;
+  }
+
+  export class ApproveDisposalFail extends BaseSubAction<ApproveDisposal> {
+    static readonly type: string = `[${state}] ApproveDisposal Fail`;
+  }
+
   export class Resume extends BaseAction {
     static readonly type: string = `[${state}] Resume`;
 
diff --git a/src/app/features/preservation/aip/stores/aip.state.ts b/src/app/features/preservation/aip/stores/aip.state.ts
index e39876ab120b6fac6d0fcf5b0d489587c7b7eb80..b0c3c50d172830dfce8ab51071714c493be1af32 100644
--- a/src/app/features/preservation/aip/stores/aip.state.ts
+++ b/src/app/features/preservation/aip/stores/aip.state.ts
@@ -334,4 +334,70 @@ export class PreservationAipState extends ResourceState<PreservationAipStateMode
     });
     this.notificationService.showError(MARK_AS_TRANSLATABLE("notification.aip.action.check.fail"));
   }
+
+  @Action(PreservationAipAction.Dispose)
+  dispose(ctx: StateContext<PreservationAipStateModel>, action: PreservationAipAction.Dispose): Observable<string> {
+    ctx.patchState({
+      isLoadingCounter: ctx.getState().isLoadingCounter + 1,
+    });
+    return this.apiService.delete<string>(`${this._urlResource}/${action.id}`, null)
+      .pipe(
+        tap(result => {
+          ctx.dispatch(new PreservationAipAction.DisposeSuccess(action));
+        }),
+        catchError(error => {
+          ctx.dispatch(new PreservationAipAction.DisposeFail(action));
+          throw error;
+        }),
+      );
+  }
+
+  @Action(PreservationAipAction.DisposeSuccess)
+  disposeSuccess(ctx: StateContext<PreservationAipStateModel>, action: PreservationAipAction.DisposeSuccess): void {
+    ctx.patchState({
+      isLoadingCounter: ctx.getState().isLoadingCounter - 1,
+    });
+    this.notificationService.showInformation(MARK_AS_TRANSLATABLE("notification.aip.action.dispose.success"), true);
+  }
+
+  @Action(PreservationAipAction.DisposeFail)
+  disposeFail(ctx: StateContext<PreservationAipStateModel>, action: PreservationAipAction.DisposeFail): void {
+    ctx.patchState({
+      isLoadingCounter: ctx.getState().isLoadingCounter - 1,
+    });
+    this.notificationService.showError(MARK_AS_TRANSLATABLE("notification.aip.action.dispose.fail"));
+  }
+
+  @Action(PreservationAipAction.ApproveDisposal)
+  approveDisposal(ctx: StateContext<PreservationAipStateModel>, action: PreservationAipAction.ApproveDisposal): Observable<string> {
+    ctx.patchState({
+      isLoadingCounter: ctx.getState().isLoadingCounter + 1,
+    });
+    return this.apiService.post<string>(`${this._urlResource}/${action.id}/${ApiActionEnum.APPROVE_DISPOSAL}`, null)
+      .pipe(
+        tap(result => {
+          ctx.dispatch(new PreservationAipAction.ApproveDisposalSuccess(action));
+        }),
+        catchError(error => {
+          ctx.dispatch(new PreservationAipAction.ApproveDisposalFail(action));
+          throw error;
+        }),
+      );
+  }
+
+  @Action(PreservationAipAction.ApproveDisposalSuccess)
+  approveDisposalSuccess(ctx: StateContext<PreservationAipStateModel>, action: PreservationAipAction.ApproveDisposalSuccess): void {
+    ctx.patchState({
+      isLoadingCounter: ctx.getState().isLoadingCounter - 1,
+    });
+    this.notificationService.showInformation(MARK_AS_TRANSLATABLE("notification.aip.action.approveDisposal.success"), true);
+  }
+
+  @Action(PreservationAipAction.ApproveDisposalFail)
+  approveDisposalFail(ctx: StateContext<PreservationAipStateModel>, action: PreservationAipAction.ApproveDisposalFail): void {
+    ctx.patchState({
+      isLoadingCounter: ctx.getState().isLoadingCounter - 1,
+    });
+    this.notificationService.showError(MARK_AS_TRANSLATABLE("notification.aip.action.approveDisposal.fail"));
+  }
 }
diff --git a/src/app/features/preservation/job/helper/job.helper.ts b/src/app/features/preservation/job/helper/job.helper.ts
index e3288d7298a2edd1a1cf84e96eb52d7bfa226bc1..30cf8039865c565e90479a75d19949a5ad1ae7ef 100644
--- a/src/app/features/preservation/job/helper/job.helper.ts
+++ b/src/app/features/preservation/job/helper/job.helper.ts
@@ -73,6 +73,10 @@ export class JobHelper {
         key: PreservationJob.JobTypeEnum.ARCHIVECHECK,
         value: MARK_AS_TRANSLATABLE("preservation.job.jobTypeEnum.archiveCheck"),
       },
+      {
+        key: PreservationJob.JobTypeEnum.DISPOSAL,
+        value: MARK_AS_TRANSLATABLE("preservation.job.jobTypeEnum.disposal"),
+      },
     ];
   }
 
diff --git a/src/app/shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss b/src/app/shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss
index cfce8ee84f92823a5a6bf862e47f67f0950ee7df..8f2f8e36f86e55174d0cf078eac49bc8fe1331ba 100644
--- a/src/app/shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss
+++ b/src/app/shared/components/presentationals/shared-abstract-form/shared-abstract-form.presentational.scss
@@ -87,15 +87,20 @@ form {
 
     > * {
       width: 100%;
-      min-width: 140px;
+    }
 
-      @include respond-to-breakpoint-and-bigger('md') {
-        &:first-child {
-          padding-right: 5px;
-        }
+    &:not(.only-one) {
+      > * {
+        min-width: 140px;
+
+        @include respond-to-breakpoint-and-bigger('md') {
+          &:first-child {
+            padding-right: 5px;
+          }
 
-        &:last-child {
-          padding-left: 5px;
+          &:last-child {
+            padding-left: 5px;
+          }
         }
       }
     }
diff --git a/src/app/shared/enums/api-action.enum.ts b/src/app/shared/enums/api-action.enum.ts
index 85fbdfca50dd8a1d51891e990c1e6cb6971aa984..86f0a27117bf4d366e83b6fb5dbaaa7a6e0f2821 100644
--- a/src/app/shared/enums/api-action.enum.ts
+++ b/src/app/shared/enums/api-action.enum.ts
@@ -22,6 +22,7 @@ export class ApiActionEnum {
   public static CHECK: string = "check";
   public static CHECK_FIXITY: string = "check-fixity";
   public static SEARCH_DOI: string = "search-doi";
+  public static APPROVE_DISPOSAL: string = "approve-disposal";
 
   public static SELF: string = "self";
   public static MODULE: string = "module";
diff --git a/src/app/shared/enums/business/package-status.enum.ts b/src/app/shared/enums/business/package-status.enum.ts
index 5422d75f9eb9a2438917c2fc4c53f4826a49aace..9d52bb1c3c6ea92e5f607f192d820727a9d4e86e 100644
--- a/src/app/shared/enums/business/package-status.enum.ts
+++ b/src/app/shared/enums/business/package-status.enum.ts
@@ -18,7 +18,12 @@ export enum PackageStatusEnum {
   RELOADED = "RELOADED",
   PRESERVATION_ERROR = "PRESERVATION_ERROR",
   CLEANING = "CLEANING",
-  CLEANED = "CLEANED"
+  CLEANED = "CLEANED",
+  DISPOSABLE = "DISPOSABLE",
+  DISPOSAL_APPROVED_BY_ORGUNIT = "DISPOSAL_APPROVED_BY_ORGUNIT",
+  DISPOSAL_APPROVED = "DISPOSAL_APPROVED",
+  DISPOSED = "DISPOSED",
+  REPLICATING_TOMBSTONE = "REPLICATING_TOMBSTONE"
 }
 
 export class PackageStatusEnumHelper {
@@ -84,6 +89,27 @@ export class PackageStatusEnumHelper {
         key: PackageStatusEnum.CLEANED,
         value: MARK_AS_TRANSLATABLE("enum.packageStatus.cleaned"),
       },
+      {
+        key: PackageStatusEnum.DISPOSABLE,
+        value: MARK_AS_TRANSLATABLE("enum.packageStatus.disposable"),
+      },
+      {
+        key: PackageStatusEnum.DISPOSAL_APPROVED_BY_ORGUNIT,
+        value: MARK_AS_TRANSLATABLE("enum.packageStatus.disposalApprovedByOrgunit"),
+      },
+      {
+        key: PackageStatusEnum.DISPOSAL_APPROVED,
+        value: MARK_AS_TRANSLATABLE("enum.packageStatus.disposalApproved"),
+      },
+      {
+        key: PackageStatusEnum.DISPOSED,
+        value: MARK_AS_TRANSLATABLE("enum.packageStatus.disposed"),
+      },
+      {
+        key: PackageStatusEnum.REPLICATING_TOMBSTONE,
+        value: MARK_AS_TRANSLATABLE("enum.packageStatus.replicatingTombstone"),
+      },
+
     ];
   }
 }
diff --git a/src/app/shared/enums/icon-name.enum.ts b/src/app/shared/enums/icon-name.enum.ts
index e8e754fa92acf83549eac8ab0ecb0506925daf3e..746534fb1407ed4e382777d633f3c65b56084f15 100644
--- a/src/app/shared/enums/icon-name.enum.ts
+++ b/src/app/shared/enums/icon-name.enum.ts
@@ -128,5 +128,7 @@ export enum IconNameEnum {
   defaultValue,
   change,
   trueValue,
-  falseValue
+  falseValue,
+  dispose,
+  approveDisposal,
 }
diff --git a/src/app/shared/helpers/icon.helper.ts b/src/app/shared/helpers/icon.helper.ts
index 8e0d19d6324c15d09f4f9d02f2165c71b3e8f039..05b08c9cb081b0bd8cb5ae6e7be68f5e789c9a0c 100644
--- a/src/app/shared/helpers/icon.helper.ts
+++ b/src/app/shared/helpers/icon.helper.ts
@@ -658,5 +658,15 @@ export class IconHelper {
       lib: IconLibEnum.materialIcon,
       icon: "highlight_off",
     },
+    {
+      name: IconNameEnum.dispose,
+      lib: IconLibEnum.materialIcon,
+      icon: "delete_forever",
+    },
+    {
+      name: IconNameEnum.approveDisposal,
+      lib: IconLibEnum.materialIcon,
+      icon: "check",
+    },
   ];
 }
diff --git a/src/assets/i18n/de.json b/src/assets/i18n/de.json
index c17b7ef536899dab96fb6949fae33ef713cea000..d7b4e86426dbd5830985155f106d0bb224bd9126 100644
--- a/src/assets/i18n/de.json
+++ b/src/assets/i18n/de.json
@@ -851,8 +851,11 @@
       "name": "Name",
       "organizationUnit": "Organisatorische Einheit",
       "resId": "ResID",
+      "retention": "Dauer der Aufbewahrung",
+      "retentionEnd": "Ablauf der Aufbewahrungsfrist",
       "size": "Größe",
       "status": "Stand",
+      "tombstoneSize": "Größe der Metadaten",
       "yearOfcreation": "Jahr"
     },
     "table": {
@@ -951,12 +954,14 @@
     },
     "navigation": {
       "button": {
+        "approveDisposal": "Entsorgung genehmigen",
         "back": "Zurück",
         "backToDetail": "Zurück",
         "check": "Siehe",
         "create": "erstellen",
         "deepCheck": "Tiefe Prüfsummen",
         "delete": "löschen",
+        "dispose": "Entsorgen Sie",
         "download": "herunterladen",
         "edit": "bearbeiten",
         "reindex": "Neu indizieren",
@@ -1636,7 +1641,7 @@
       "doi": "Wenn Sie einen DOI reservieren möchten, bevor der Archivierungsprozess abgeschlossen ist, können Sie dies tun, indem Sie auf diese Schaltfläche",
       "embargoAccessLevel": "Legt die Zugriffsebene des Embargos fest: \n\n1) Eingeschränkt (Zugang beschränkt auf Mitglieder der Organisationseinheit) \n2) Geschlossen (benutzerdefinierter Zugang).",
       "hasEmbargo": "Die Dauer, für die Ihr Datensatz im eingeschränkten oder geschlossenen Zugriff verbleiben soll. \n\nSobald das Embargo aufgehoben wird, stehen die Daten in der zuvor definierten Zugriffsebene zur Verfügung.\nSprache des Datensatzes\nDieses Feld ist obligatorisch, wenn Sie Ihre Daten im Open Access veröffentlichen (Zugangsebene: öffentlich)\nÄndern Sie die Reihenfolge, in der die Beitragenden angezeigt werden\nZeigt die Optionen an, die bei der Erstellung Ihres Erhaltungsbereichs (d.h. der Organisationseinheit) definiert wurden. ",
-      "language": "",
+      "language": "Sprache des Datensatzes",
       "license": "Weitere Informationen finden Sie in der Dokumentation.",
       "orderAuthors": "Das Datum, an dem der Datensatz (die Hinterlegung) öffentlich online verfügbar sein wird",
       "preservationPolicy": "Zeigt die Optionen an, die bei der Erstellung Ihres Erhaltungsbereichs (d.h. der Organisationseinheit) definiert wurden. \n\nWeitere Informationen finden Sie in der Dokumentation.\nAbbrechen\nerstellen\nAktualisierung\nErstellung\nÄnderung\nAktualisierung des DIP nicht möglich\nLange DOI kopieren\nKurz-DOI kopieren\nUrl mit langer DOI kopieren\nUrl mit kurzer DOI kopieren\nLange DOI in die Zwischenablage kopiert\nDer kurze DOI konnte nicht abgerufen werden\nKurze DOI in die Zwischenablage kopiert\nUrl mit langem DOI in die Zwischenablage kopiert\nDer kurze DOI konnte nicht abgerufen werden\nUrl mit kurzem DOI in die Zwischenablage kopiert\nGeschlossen\nÖffentlich\nEingeschränkt\nErstellt\nBenutzerdefiniert\nJSON\nSchemenlos\nXML\nGeprüft\nüberprüfen\nGereinigt\nReinigung\nAbgeschlossen\nHerunterladen von\nIm Irrtum\nIn Vorbereitung\nIn Bearbeitung\nIndexierung\nFehler bei der Konservierung\nBereit\nNeuindizierung\nNeu geladen\nGespeichert\nFortgeschrittene\nDirekt\nBild\nEinfach\nDer Zugang zu dieser Ressource ist verboten.\nInterner Server-Fehler\nSie können Ihr Token nicht auffrischen, Sie müssen die Verbindung wiederherstellen\nDie gesuchte Ressource wird nicht gefunden\nSie sind derzeit offline\nSie haben nicht die erforderliche Berechtigung für den Zugriff auf diese Ressource\nDer Server ist zur Zeit nicht erreichbar. Bitte versuchen Sie es später noch einmal\nSie können keine Datei mit dem gleichen Namen im gleichen Verzeichnis hochladen\nZusammengefallen alle\nOrdner löschen\nDownload-Ordner\nErweitern Sie alle\nDateien\nDieser Wert wird bereits verwendet\nSie befinden sich im Bearbeitungsmodus\nBei der Vorbereitung des Pakets ist ein Fehler aufgetreten\nPaket in Vorbereitung. Der Download wird bald beginnen.\nPaket heruntergeladen\nDas Archiv wurde Ihrer Download-Bestellung hinzugefügt.\nDieses Archiv wartet bereits darauf, heruntergeladen zu werden\nKlicken Sie für weitere Optionen\nZurück zur Archivliste\nZurück zum Suchergebnis\nDLCM bietet viele Dienstleistungen an\nDLCM ist auch\nUnd vor allem...\nZur Download-Bestellung hinzufügen\nZugang anfordern\nherunterladen\nDas Konsultations- und Archivportal der Universität Genf\nWillkommen bei DLCM\nKein Ergebnis zum Anzeigen...\nErster Schritt zur Archivierung Ihrer Daten\nEine Einzahlung erstellen\nSuche nach Publikationen in öffentlichen oder privaten Archiven\nSuche nach einem Archiv\nEntwickelt von\nFinanziert durch\nPartner\nProjekt-Mitglieder\nSuche nach Archivtitel oder Organisationseinheit\nDOI\nAkzeptiertes Datum\nZugriffsebene\nMitwirkende\nZur Download-Bestellung hinzufügen\nZugang anfordern\nDatacite-Metadaten\nBeschreibung\nDlcm-Metadaten\nherunterladen\nEmbargo-Zugangsstufe\nEnddatum des Embargos\nAktenzeichen\nausblenden\nLizenz\nOrganisatorische Einheit\nJahr der Veröffentlichung\nanzeigen\nGröße\nEingereichtes Datum\nTitel\nGeben Sie  ein.\nKein Archiv für die ausgewählte Organisationseinheit\nWählen Sie eine Organisationseinheit\nEnglisch\nFranzösisch\nDeutsch\nWebService\nUnmöglich, eine Überprüfung durchzuführen\nDie Prüfung des AIP wird durchgeführt\nEs ist unmöglich, eine tiefe Prüfsumme zu erstellen\nDie tiefen Prüfsummen des AIP werden überprüft\nUnmöglich, das AIP neu zu indexieren\nDas AIP wird neu indexiert\nNeustart der AIP-Verarbeitung nicht möglich\nDie AIP-Verarbeitung wurde neu gestartet\nUnmöglich, eine einfache Prüfsumme zu erstellen\nDie einfachen Prüfsummen des AIP werden überprüft\nDownload im Gange\nAIP heruntergeladen\nDownload im Gange\nEinzahlung heruntergeladen\nDas Verschieben der Datei ist nicht möglich\nDatei wurde verschoben\nRessource wieder aufgenommen\nUnmöglich, die Datei nicht zu ignorieren\nDie Datei wird nicht ignoriert\nDer Ordner kann nicht gelöscht werden\nDer Ordner wurde gelöscht\nOrdner heruntergeladen\nNeustart der DIP-Verarbeitung nicht möglich\nDie DIP-Verarbeitung wurde neu gestartet\nDownload im Gange\nDatei heruntergeladen\nAkzeptiert\nFragen Sie",
@@ -1705,6 +1710,10 @@
       "cleaned": "Gereinigt",
       "cleaning": "Reinigung",
       "completed": "Abgeschlossen",
+      "disposable": "Einwegartikel",
+      "disposalApproved": "Entsorgung genehmigt",
+      "disposalApprovedByOrgunit": "Entsorgung von der Organisationseinheit genehmigt",
+      "disposed": "Verfügbar",
       "downloading": "Herunterladen von",
       "inError": "Im Irrtum",
       "inPreparation": "In Vorbereitung",
@@ -1714,6 +1723,7 @@
       "ready": "Bereit",
       "reindexing": "Neuindizierung",
       "reloaded": "Neu geladen",
+      "replicatingTombstone": "Replizierender Grabstein",
       "stored": "Gespeichert"
     },
     "queryType": {
@@ -1873,6 +1883,10 @@
   "notification": {
     "aip": {
       "action": {
+        "approveDisposal": {
+          "fail": "Unmöglich, die Entsorgung zu genehmigen",
+          "success": "Das Archiv wurde für den Beginn des Entsorgungsprozesses genehmigt"
+        },
         "check": {
           "fail": "Unmöglich, eine Überprüfung durchzuführen",
           "success": "Die Prüfung des AIP wird durchgeführt"
@@ -1881,6 +1895,10 @@
           "fail": "Es ist unmöglich, eine tiefe Prüfsumme zu erstellen",
           "success": "Die tiefen Prüfsummen des AIP werden überprüft"
         },
+        "dispose": {
+          "fail": "Das Archiv ist bereit für den Entsorgungsprozess: Aufbewahrung nicht abgelaufen",
+          "success": "Das Archiv ist Kandidat für den Entsorgungsprozess"
+        },
         "reindex": {
           "fail": "Unmöglich, das AIP neu zu indexieren",
           "success": "Das AIP wird neu indexiert"
@@ -2013,7 +2031,7 @@
         "status": "Stand"
       },
       "home": {
-        "subtitle": "",
+        "subtitle": "order.allOrder.home.subtitle",
         "title": "Alle Aufträge"
       },
       "notification": {
@@ -2075,7 +2093,7 @@
         "name": "Name"
       },
       "home": {
-        "subtitle": "",
+        "subtitle": " ",
         "title": "Meine Befehle"
       },
       "inError": "Bei der Vorbereitung der Bestellung ist ein Fehler aufgetreten",
@@ -2311,6 +2329,7 @@
       "jobTypeEnum": {
         "archiveCheck": "Archiv-Prüfung",
         "cleanSubmission": "Saubere Einreichung",
+        "disposal": "Entsorgungsverfahren",
         "fixity": "Beständigkeit",
         "migration": "Migration",
         "purgeSubmissionTempFiles": "Temporäre Einreichungsdateien bereinigen",
@@ -2735,4 +2754,4 @@
       }
     }
   }
-}
+}
\ No newline at end of file
diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json
index 6918da676e56ddcb487cc1a2fcef0660aeaa98a3..adbdd97180eb7842222ec06c982f344817c57e70 100644
--- a/src/assets/i18n/en.json
+++ b/src/assets/i18n/en.json
@@ -851,8 +851,11 @@
       "name": "Name",
       "organizationUnit": "Organizational unit",
       "resId": "ResID",
-      "size": "Size",
+      "retention": "Retention duration",
+      "retentionEnd": "Retention expiration",
+      "size": "Archive size",
       "status": "Status",
+      "tombstoneSize": "Metadata size",
       "yearOfcreation": "Year"
     },
     "table": {
@@ -951,12 +954,14 @@
     },
     "navigation": {
       "button": {
+        "approveDisposal": "Approve disposal",
         "back": "Back",
         "backToDetail": "Back",
         "check": "Check",
         "create": "Create",
         "deepCheck": "Deep checksums",
         "delete": "Delete",
+        "dispose": "Dispose",
         "download": "Download",
         "edit": "Edit",
         "reindex": "Reindex",
@@ -1705,6 +1710,10 @@
       "cleaned": "Cleaned",
       "cleaning": "Cleaning",
       "completed": "Completed",
+      "disposable": "Disposable",
+      "disposalApproved": "Disposal approved",
+      "disposalApprovedByOrgunit": "Disposal approved by organizational unit",
+      "disposed": "Disposed",
       "downloading": "Downloading",
       "inError": "In Error",
       "inPreparation": "In preparation",
@@ -1714,6 +1723,7 @@
       "ready": "Ready",
       "reindexing": "Reindexing",
       "reloaded": "Reloaded",
+      "replicatingTombstone": "Replicating tombstone",
       "stored": "Stored"
     },
     "queryType": {
@@ -1873,30 +1883,38 @@
   "notification": {
     "aip": {
       "action": {
+        "approveDisposal": {
+          "fail": "Impossible to approve disposal",
+          "success": "The archive has been approved to start the disposal process"
+        },
         "check": {
           "fail": "Impossible to do a check",
-          "success": "The AIP's check will be executed"
+          "success": "The archive's check will be executed"
         },
         "deepChecksum": {
           "fail": "Impossible to do a deep checksum",
-          "success": "The AIP's deep checksums will be checked"
+          "success": "The archive's deep checksums will be checked"
+        },
+        "dispose": {
+          "fail": "The archive is ready for disposal process: retention not expired",
+          "success": "The archive is candidate to disposal process"
         },
         "reindex": {
-          "fail": "Impossible to reindex the AIP",
-          "success": "The AIP will be reindexed"
+          "fail": "Impossible to reindex the archive",
+          "success": "The archive will be reindexed"
         },
         "resume": {
-          "fail": "Impossible to restart AIP processing",
-          "success": "AIP processing has been restarted"
+          "fail": "Impossible to restart archive processing",
+          "success": "The archive processing has been restarted"
         },
         "simpleChecksum": {
           "fail": "Impossible to do a simple checkum",
-          "success": "The AIP's simple checksums will be checked"
+          "success": "The archive's simple checksums will be checked"
         }
       },
       "file": {
-        "download": "Download in progress",
-        "downloadWithSuccess": "AIP downloaded"
+        "download": "Archive download in progress",
+        "downloadWithSuccess": "Archive downloaded"
       }
     },
     "deposit": {
@@ -2311,6 +2329,7 @@
       "jobTypeEnum": {
         "archiveCheck": "Archive Check",
         "cleanSubmission": "Clean Submission",
+        "disposal": "Disposal Process",
         "fixity": "Fixity",
         "migration": "Migration",
         "purgeSubmissionTempFiles": "Purge Temporary Submission Files",
@@ -2735,4 +2754,4 @@
       }
     }
   }
-}
+}
\ No newline at end of file
diff --git a/src/assets/i18n/fr.json b/src/assets/i18n/fr.json
index 18a3e946b585fc768dbdccae1ade498795e92ae5..b0d1ec8efdabce27388c02f7e35451f34dd16612 100644
--- a/src/assets/i18n/fr.json
+++ b/src/assets/i18n/fr.json
@@ -851,8 +851,11 @@
       "name": "Nom",
       "organizationUnit": "Unité organisationnelle",
       "resId": "Identifiant",
-      "size": "Taille",
+      "retention": "Durée de conservation",
+      "retentionEnd": "Fin de conservation",
+      "size": "Taille de l'archive",
       "status": "Statut",
+      "tombstoneSize": "Taille des métadonnées",
       "yearOfcreation": "Année"
     },
     "table": {
@@ -951,12 +954,14 @@
     },
     "navigation": {
       "button": {
+        "approveDisposal": "Approuver le sort final",
         "back": "Retour",
         "backToDetail": "Retour",
         "check": "Vérifier",
         "create": "Créer",
         "deepCheck": "Profond checksums",
         "delete": "Supprimer",
+        "dispose": "Sort final",
         "download": "Télécharger",
         "edit": "Modifier",
         "reindex": "Réindexer",
@@ -1704,7 +1709,11 @@
       "checking": "En cours de vérification",
       "cleaned": "Nettoyé",
       "cleaning": "En cours de nettoyage",
-      "completed": "Complété",
+      "completed": "Terminé",
+      "disposable": "Prêt à être détruit",
+      "disposalApproved": "Sort final approuvé",
+      "disposalApprovedByOrgunit": "Sort final approuvé par l'unité organisationelle",
+      "disposed": "Détruit",
       "downloading": "En cours de téléchargement",
       "inError": "En erreur",
       "inPreparation": "En préparation",
@@ -1714,6 +1723,7 @@
       "ready": "Prêt",
       "reindexing": "Réindexation",
       "reloaded": "Rechargement",
+      "replicatingTombstone": "En cours de réplication du record",
       "stored": "Stocké"
     },
     "queryType": {
@@ -1873,25 +1883,33 @@
   "notification": {
     "aip": {
       "action": {
+        "approveDisposal": {
+          "fail": "Impossible d'approuver le sort final de l'archive",
+          "success": "Le sort final de l'archive va démarrer"
+        },
         "check": {
           "fail": "Impossible de faire une verification",
-          "success": "La verification de l'AIP vas être exécutée"
+          "success": "La verification de l'archive vas être exécutée"
         },
         "deepChecksum": {
           "fail": "Impossible de faire un checksum profond",
-          "success": "Les checksums profond de l'AIP vont être vérifiés"
+          "success": "Les checksums profond de l'archive vont être vérifiés"
+        },
+        "dispose": {
+          "fail": "La durée de conservation de l'archive n'est pas terminée",
+          "success": "L'archive est prête pour le processus du sort final"
         },
         "reindex": {
-          "fail": "Impossible de réindexer l'AIP",
-          "success": "L'AIP va être réindexé"
+          "fail": "Impossible de réindexer l'archive",
+          "success": "L'archive va être réindexée"
         },
         "resume": {
-          "fail": "Impossible de relancer le traitement de l'AIP",
-          "success": "Le traitement de l'AIP a été relancé"
+          "fail": "Impossible de relancer le traitement de l'archive",
+          "success": "Le traitement de l'archive a été relancée"
         },
         "simpleChecksum": {
           "fail": "Impossible de faire un simple checksums",
-          "success": "Les checksums simple de l'AIP vont être vérifiés"
+          "success": "Les checksums simple de l'archive vont être vérifiés"
         }
       },
       "file": {
@@ -2310,10 +2328,11 @@
       },
       "jobTypeEnum": {
         "archiveCheck": "Vérification des archives",
-        "cleanSubmission": "Soumission propre",
+        "cleanSubmission": "Nettoyage de la soumission",
+        "disposal": "Sort final",
         "fixity": "Fixité",
         "migration": "Migration",
-        "purgeSubmissionTempFiles": "Purge fichiers soumission",
+        "purgeSubmissionTempFiles": "Purge des fichiers de soumission",
         "rebuildRegistry": "Reconstruction du registre",
         "reindex": "Réindexation",
         "reload": "Rechargement",
@@ -2735,4 +2754,4 @@
       }
     }
   }
-}
+}
\ No newline at end of file
diff --git a/src/assets/openapi/DLCM-APIs.json b/src/assets/openapi/DLCM-APIs.json
index d916cc139d34700593b1e12653dcb7426b39743a..646e058ab685d8a1ba511346dc01723a22eb682b 100644
--- a/src/assets/openapi/DLCM-APIs.json
+++ b/src/assets/openapi/DLCM-APIs.json
@@ -263,6 +263,15 @@
             "description": "The size in human-readable format of the AIP",
             "type": "string"
           },
+          "smartTombstoneSize" : {
+            "description" : "The size in human-readable format of the tombstone AIP",
+            "type" : "string"
+          },
+          "tombstoneSize" : {
+            "description" : "The size in bytes of the tombstone AIP",
+            "format" : "int32",
+            "type" : "number"
+          },
           "virusCheck": {
             "properties": {
               "checkDate": {
@@ -1501,6 +1510,7 @@
             "enum": [
               "ARCHIVE_CHECK",
               "CLEAN_SUBMISSION",
+              "DISPOSAL",
               "FIXITY",
               "MIGRATION",
               "PURGE_SUBMISSION_TEMP_FILES",