diff --git a/src/main/java/com/nisum/ascend/promotions/controller/PromotionsController.java b/src/main/java/com/nisum/ascend/promotions/controller/PromotionsController.java
index 5027b231ad7083d2ec214aa18f2320c9f4fee160..326923511e3094d2a6836c2382d260a10839f1c6 100644
--- a/src/main/java/com/nisum/ascend/promotions/controller/PromotionsController.java
+++ b/src/main/java/com/nisum/ascend/promotions/controller/PromotionsController.java
@@ -57,8 +57,11 @@ public class PromotionsController {
 
 
     @DeleteMapping("/{promoId}")
-    public Mono<ResponseEntity<PromotionDto>> deletePromotionById(@PathVariable String promoId){
-        //TODO: delete promotion
-        return null;
+    public Mono<ResponseEntity<Void>> deletePromotionById(@PathVariable("promoId") String promoId){
+        return promotionService.deletePromotion(promoId)
+                .map(res -> ResponseEntity.ok().<Void>build())
+                .defaultIfEmpty(ResponseEntity.notFound().build());
+
+
     }
 }
diff --git a/src/main/java/com/nisum/ascend/promotions/exception/ResourceNotFoundException.java b/src/main/java/com/nisum/ascend/promotions/exception/ResourceNotFoundException.java
new file mode 100644
index 0000000000000000000000000000000000000000..6df572e7340ee05ed30e22917bdaeff28fbae08f
--- /dev/null
+++ b/src/main/java/com/nisum/ascend/promotions/exception/ResourceNotFoundException.java
@@ -0,0 +1,15 @@
+package com.nisum.ascend.promotions.exception;
+
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.ResponseStatus;
+
+@ResponseStatus(value = HttpStatus.NOT_FOUND)
+public class ResourceNotFoundException extends Exception{
+    HttpStatus status;
+
+    public ResourceNotFoundException(HttpStatus status, String message) {
+            super(message);
+            this.status = status;
+        }
+
+    }
diff --git a/src/main/java/com/nisum/ascend/promotions/service/PromotionService.java b/src/main/java/com/nisum/ascend/promotions/service/PromotionService.java
index 0a2435477ebf25a6b11c0620547588ce6e6d8658..bef693da38bfe36ea8f2ad5a0bca7856ba672f59 100644
--- a/src/main/java/com/nisum/ascend/promotions/service/PromotionService.java
+++ b/src/main/java/com/nisum/ascend/promotions/service/PromotionService.java
@@ -1,9 +1,11 @@
 package com.nisum.ascend.promotions.service;
 
 import com.nisum.ascend.promotions.dto.PromotionDto;
+import com.nisum.ascend.promotions.exception.ResourceNotFoundException;
 import com.nisum.ascend.promotions.model.Promotion;
 import com.nisum.ascend.promotions.repository.PromotionRepository;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
 import org.springframework.stereotype.Service;
 import reactor.core.publisher.Flux;
 import java.util.List;
@@ -45,4 +47,12 @@ public class PromotionService {
                 });
     }
 
+    public Mono<Promotion> deletePromotion(String promoId){
+        return promotionRepository.findByPromotionId(promoId)
+                .flatMap(promo -> promotionRepository.delete(promo)
+                        .then(Mono.just(promo)))
+                        .switchIfEmpty(Mono.error(new ResourceNotFoundException(HttpStatus.NOT_FOUND, "Promo Not Found")));
+
+
+    }
 }
diff --git a/src/test/java/com/nisum/ascend/promotions/controller/PromotionsControllerTest.java b/src/test/java/com/nisum/ascend/promotions/controller/PromotionsControllerTest.java
index 505bc23753d1443958962cf341138b6dcd9b11a1..cde8422e9912863bb2d574854aef82c832048451 100644
--- a/src/test/java/com/nisum/ascend/promotions/controller/PromotionsControllerTest.java
+++ b/src/test/java/com/nisum/ascend/promotions/controller/PromotionsControllerTest.java
@@ -128,6 +128,35 @@ class PromotionsControllerTest {
                 .jsonPath("$.minimumQuantity").isEqualTo(1);
     }
 
+    @Test
+    void deletePromotion(){
+        Promotion promo = new Promotion("deleteTest", "AFP-1", 0.33f, 3);
+        webTestClient.get()
+                .uri("/api/promos".concat("/{promoId}"), promo.getPromotionId())
+                .exchange()
+                .expectStatus().isNotFound();
+
+        webTestClient.post()
+                .uri("/api/promos")
+                .contentType(MediaType.valueOf(MediaType.APPLICATION_JSON_VALUE))
+                .body(Mono.just(promo),Promotion.class)
+                .exchange()
+                .expectStatus().isOk()
+                .expectBody(Promotion.class);
+
+        webTestClient.delete()
+                .uri("/api/promos".concat("/{promoId}"),promo.getPromotionId())
+                .accept(MediaType.valueOf(MediaType.APPLICATION_JSON_VALUE))
+                .exchange()
+                .expectStatus().isOk()
+                .expectBody(Void.class);
+
+        webTestClient.get()
+                .uri("/api/promos".concat("/{promoId}"), promo.getPromotionId())
+                .exchange()
+                .expectStatus().isNotFound();
+    }
+
 
     @Test
     public void bulkSearchTest(){