diff --git a/src/app/services/structure.service.ts b/src/app/services/structure.service.ts
index f767540dcf7e19398809830daf1d5955ebeeb11e..97caee520996d96e60eac4b9bc35d9eb2c3a9ac6 100644
--- a/src/app/services/structure.service.ts
+++ b/src/app/services/structure.service.ts
@@ -40,8 +40,13 @@ export class StructureService {
   }
 
   public getStructure(id: string): Observable<Structure> {
-    return this.http.get(`${this.baseUrl}/${id}`).pipe(map((item: any) => new Structure(item)));
+    return this.http.get<Structure>(`${this.baseUrl}/${id}`);
   }
+
+  public delete(id: string): Observable<Structure> {
+    return this.http.delete<Structure>(`${this.baseUrl}/${id}`);
+  }
+
   public getStructures(filters: Filter[]): Observable<Structure[]> {
     if (filters && filters.length > 0) {
       let requestUrl = `${this.baseUrl}/search`;
diff --git a/src/app/shared/components/modal/modal-type.enum.ts b/src/app/shared/components/modal/modal-type.enum.ts
new file mode 100644
index 0000000000000000000000000000000000000000..2dedc045ed2b8cad19c0c2f74c62a9794c310cbe
--- /dev/null
+++ b/src/app/shared/components/modal/modal-type.enum.ts
@@ -0,0 +1,4 @@
+export enum AppModalType {
+  information = 1,
+  confirmation = 2,
+}
diff --git a/src/app/shared/components/modal/modal.component.html b/src/app/shared/components/modal/modal.component.html
index 44094a5b8ae11d23fda1f3e476ac33543a2b7ed0..c482f44e9af9d181d130cbaf190be0f446c3c7f1 100644
--- a/src/app/shared/components/modal/modal.component.html
+++ b/src/app/shared/components/modal/modal.component.html
@@ -1,15 +1,25 @@
 <div class="cModal" [ngClass]="openned ? 'oModal' : ''">
-  <div (clickOutside)="closeModal()">
+  <div (clickOutside)="closeModal(false)">
     <p>{{ content }}</p>
-    <footer class="footer">
+    <div *ngIf="modalType && modalType === modalTypeEnum.information" class="footer">
       <a
-        (click)="closeModal()"
+        (click)="closeModal(false)"
         href="https://services.formulaireextranet.grandlyon.com/saisie-fiche-structure/"
         tabindex="0"
         target="_blank"
         rel="noreferrer noopener"
         >Continuer vers le formulaire</a
       >
-    </footer>
+    </div>
+    <div
+      *ngIf="this.modalType && this.modalType === modalTypeEnum.confirmation"
+      fxLayout="row"
+      fxLayoutAlign="center"
+      fxLayoutGap="20px"
+      class="footer"
+    >
+      <a (click)="closeModal(false)" tabindex="0">Annuler</a>
+      <button (click)="closeModal(true)">Confirmer</button>
+    </div>
   </div>
 </div>
diff --git a/src/app/shared/components/modal/modal.component.scss b/src/app/shared/components/modal/modal.component.scss
index 5d12fa7647408b644a3339d0dbd7ec6b085d915a..412a482e456972c34da72e14821a458fdafeb057 100644
--- a/src/app/shared/components/modal/modal.component.scss
+++ b/src/app/shared/components/modal/modal.component.scss
@@ -36,3 +36,6 @@
   }
   padding: 28px;
 }
+button {
+  @include btn-search-filter;
+}
diff --git a/src/app/shared/components/modal/modal.component.ts b/src/app/shared/components/modal/modal.component.ts
index b4a3566e38eea410d444a0b1a3518ec19c620b7a..07f8772664828ca71e35cf79fbeb7170ae8cafa0 100644
--- a/src/app/shared/components/modal/modal.component.ts
+++ b/src/app/shared/components/modal/modal.component.ts
@@ -1,19 +1,21 @@
-import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
+import { Component, EventEmitter, Input, Output } from '@angular/core';
+import { AppModalType } from './modal-type.enum';
 
 @Component({
   selector: 'app-modal',
   templateUrl: './modal.component.html',
   styleUrls: ['./modal.component.scss'],
 })
-export class ModalComponent implements OnInit {
+export class ModalComponent {
   constructor() {}
 
   @Input() public openned: boolean;
   @Input() public content: string;
-  @Output() closed = new EventEmitter();
-  ngOnInit(): void {}
+  @Input() public modalType: AppModalType;
+  @Output() closed = new EventEmitter<boolean>();
+  public modalTypeEnum = AppModalType;
 
-  public closeModal(): void {
-    this.closed.emit();
+  public closeModal(value: boolean): void {
+    this.closed.emit(value);
   }
 }
diff --git a/src/app/structure-list/components/search/search.component.html b/src/app/structure-list/components/search/search.component.html
index fe3bc0e488aa489017e3bab7d9d413ee4c77cae0..565f49826919f7f643e3e49c060ed0c9431d4bf4 100644
--- a/src/app/structure-list/components/search/search.component.html
+++ b/src/app/structure-list/components/search/search.component.html
@@ -109,6 +109,8 @@
   <a (click)="openConfirmationModal()" class="primary right" tabindex="0">Ajouter une structure</a>
 </div>
 <app-modal
+  *ngIf="isConfirmationModalOpen"
+  [modalType]="modalType.information"
   [openned]="isConfirmationModalOpen"
   [content]="confirmationModalContent"
   (closed)="closeConfirmationModal()"
diff --git a/src/app/structure-list/components/search/search.component.ts b/src/app/structure-list/components/search/search.component.ts
index ecbf1405be3c2646b8a45e5cd0288e5cdb6faec2..56c38e623f7347a98048678730dd1722deb158d2 100644
--- a/src/app/structure-list/components/search/search.component.ts
+++ b/src/app/structure-list/components/search/search.component.ts
@@ -3,6 +3,7 @@ import { FormBuilder, FormGroup } from '@angular/forms';
 import { forkJoin } from 'rxjs';
 import { GeoJson } from '../../../map/models/geojson.model';
 import { GeojsonService } from '../../../services/geojson.service';
+import { AppModalType } from '../../../shared/components/modal/modal-type.enum';
 import { TypeModal } from '../../enum/typeModal.enum';
 import { Category } from '../../models/category.model';
 import { Filter } from '../../models/filter.model';
@@ -20,13 +21,7 @@ export class SearchComponent implements OnInit, OnChanges {
   @Output() locatationReset: EventEmitter<boolean> = new EventEmitter<boolean>();
   @Output() locatationTrigger: EventEmitter<boolean> = new EventEmitter<boolean>();
   @Input() locate = false;
-
-  constructor(public searchService: SearchService, private fb: FormBuilder, private geoJsonService: GeojsonService) {
-    this.searchForm = this.fb.group({
-      searchTerm: '',
-    });
-  }
-
+  public modalType = AppModalType;
   // Form search input
   public searchForm: FormGroup;
   // Modal variable
@@ -44,10 +39,14 @@ export class SearchComponent implements OnInit, OnChanges {
   public confirmationModalContent =
     'Afin d’ajouter votre structure,vous allez être redirigé vers le formulaire Grand Lyon à remplir.';
 
+  constructor(public searchService: SearchService, private fb: FormBuilder, private geoJsonService: GeojsonService) {
+    this.searchForm = this.fb.group({
+      searchTerm: '',
+    });
+  }
   ngOnInit(): void {
     // Will store the different categories
     this.categories = [];
-
     this.checkedModulesFilter = new Array();
   }
 
diff --git a/src/app/structure-list/components/structure-details/structure-details.component.html b/src/app/structure-list/components/structure-details/structure-details.component.html
index 0d2659880097ca8719e2c596d41b26ef84d33bac..30a0aef4d6d12305578c30f984ab4ceb4bb09e82 100644
--- a/src/app/structure-list/components/structure-details/structure-details.component.html
+++ b/src/app/structure-list/components/structure-details/structure-details.component.html
@@ -9,7 +9,7 @@
 <div class="structrue-details-container" *ngIf="structure && !isLoading">
   <!-- Header info -->
   <div fxLayout="row" fxLayoutAlign="end center">
-    <div (click)="close()" class="ico-close-details"></div>
+    <div (click)="close(false)" class="ico-close-details"></div>
   </div>
   <div fxLayout="row" class="structure-details-block" fxLayoutAlign="baseline baseline" fxLayoutGap="8px">
     <div fxLayout="column" fxLayoutGap="10px" fxFlex="100%">
@@ -92,6 +92,9 @@
         >
           Modifier cette structure
         </a>
+        <a *ngIf="profileService.isAdmin()" (click)="toggleDeleteModal()" class="primary" tabindex="0">
+          Supprimer cette structure
+        </a>
       </div>
       <div>
         {{ structure.description }}
@@ -275,3 +278,10 @@
     </div>
   </div>
 </div>
+<app-modal
+  *ngIf="deleteModalOpenned"
+  [modalType]="modalType.confirmation"
+  [openned]="deleteModalOpenned"
+  [content]="'Voulez-vous vraiment supprimer cette structure ?'"
+  (closed)="deleteStructure($event)"
+></app-modal>
diff --git a/src/app/structure-list/components/structure-details/structure-details.component.ts b/src/app/structure-list/components/structure-details/structure-details.component.ts
index 747ca0402f88d59d7bf864b1f150f2c39b04572c..0f7026f1768d84c56d778b7ecc28fbda13549c2e 100644
--- a/src/app/structure-list/components/structure-details/structure-details.component.ts
+++ b/src/app/structure-list/components/structure-details/structure-details.component.ts
@@ -5,10 +5,9 @@ import { Category } from '../../models/category.model';
 import { AccessModality } from '../../enum/access-modality.enum';
 import { SearchService } from '../../services/search.service';
 import * as _ from 'lodash';
-import { ActivatedRoute } from '@angular/router';
+import { ActivatedRoute, Router } from '@angular/router';
 import { PrintService } from '../../../shared/service/print.service';
 import { Equipment } from '../../enum/equipment.enum';
-import { typeStructureEnum } from '../../../shared/enum/typeStructure.enum';
 import { StructureService } from '../../../services/structure.service';
 import { TclService } from '../../../services/tcl.service';
 import { TclStopPoint } from '../../../models/tclStopPoint.model';
@@ -16,6 +15,7 @@ import { ProfileService } from '../../../profile/services/profile.service';
 import { User } from '../../../models/user.model';
 import { AuthService } from '../../../services/auth.service';
 import { PublicCategorie } from '../../enum/public.enum';
+import { AppModalType } from '../../../shared/components/modal/modal-type.enum';
 @Component({
   selector: 'app-structure-details',
   templateUrl: './structure-details.component.html',
@@ -39,15 +39,18 @@ export class StructureDetailsComponent implements OnInit {
   public isLoading: boolean = false;
   public isEditMode: boolean = false;
   public currentProfile: User = null;
+  public deleteModalOpenned = false;
+  public modalType = AppModalType;
 
   constructor(
-    route: ActivatedRoute,
     private printService: PrintService,
     private searchService: SearchService,
     private structureService: StructureService,
     private tclService: TclService,
     private profileService: ProfileService,
-    private authService: AuthService
+    private authService: AuthService,
+    private route: ActivatedRoute,
+    private router: Router
   ) {
     route.url.subscribe((url) => {
       if (url[0].path === 'structure') {
@@ -103,8 +106,8 @@ export class StructureDetailsComponent implements OnInit {
     }
   }
 
-  public close(): void {
-    this.closeDetails.emit(true);
+  public close(refreshRequired: boolean): void {
+    this.closeDetails.emit(refreshRequired);
   }
 
   public print(): void {
@@ -116,6 +119,25 @@ export class StructureDetailsComponent implements OnInit {
     this.displayForm();
   }
 
+  public toggleDeleteModal(): void {
+    this.deleteModalOpenned = !this.deleteModalOpenned;
+  }
+
+  public deleteStructure(shouldDelete: boolean): void {
+    this.toggleDeleteModal();
+    if (shouldDelete) {
+      this.structureService.delete(this.structure._id).subscribe((res) => {
+        this.reload();
+      });
+    }
+  }
+
+  private reload(): void {
+    this.router.routeReuseStrategy.shouldReuseRoute = () => false;
+    this.router.onSameUrlNavigation = 'reload';
+    this.router.navigate(['./'], { relativeTo: this.route });
+  }
+
   public claimStructure(): void {
     this.isEditMode = false;
     this.displayForm();