diff --git a/content-api/content-actors/src/main/scala/org/sunbird/content/dial/DIALManager.scala b/content-api/content-actors/src/main/scala/org/sunbird/content/dial/DIALManager.scala
index 61bfee6b27477723b3ccdd463454db78716a7b6f..b5d3eada454241d42bfb2e9e4e230ecc0832c55b 100644
--- a/content-api/content-actors/src/main/scala/org/sunbird/content/dial/DIALManager.scala
+++ b/content-api/content-actors/src/main/scala/org/sunbird/content/dial/DIALManager.scala
@@ -279,12 +279,11 @@ object DIALManager {
 			validateContentForReserveAndReleaseDialcodes(contentMetadata)
 			validateCountForReservingAndReleasingDialCode(request.getRequest.get(DIALConstants.DIALCODES).asInstanceOf[util.Map[String, AnyRef]])
 
-			if(operation.nonEmpty && operation.equalsIgnoreCase(ContentConstants.RESERVE)) {
-				reserve(request, channelId, contentId, rootNode, contentMetadata)
-			} else if(operation.nonEmpty && operation.equalsIgnoreCase(ContentConstants.RELEASE)) {
-				release(request, contentId, rootNode, contentMetadata)
-			} else throw new ClientException(DIALErrors.ERR_INVALID_OPERATION, DIALErrors.ERR_INVALID_OPERATION_MSG)
-
+			operation match {
+				case ContentConstants.RESERVE => reserve(request, channelId, contentId, rootNode, contentMetadata)
+				case ContentConstants.RELEASE => release(request, contentId, rootNode, contentMetadata)
+				case _ => throw new ClientException(DIALErrors.ERR_INVALID_OPERATION, DIALErrors.ERR_INVALID_OPERATION_MSG)
+			}
 		})
 	}
 
@@ -403,8 +402,8 @@ object DIALManager {
 		val validMimeType = if (Platform.config.hasPath("reserve_dialcode.mimeType")) Platform.config.getStringList("reserve_dialcode.mimeType") else util.Arrays.asList(ContentConstants.COLLECTION_MIME_TYPE)
 		if (!validMimeType.contains(metaData.get(ContentConstants.MIME_TYPE))) throw new ClientException(DIALErrors.ERR_CONTENT_MIMETYPE, DIALErrors.ERR_CONTENT_MIMETYPE_MSG)
 
-		if(metaData.get(ContentConstants.STATUS).asInstanceOf[String].equalsIgnoreCase("Retired"))
-			throw new ClientException(DIALErrors.ERR_CONTENT_RETIRED_OBJECT_ID, DIALErrors.ERR_CONTENT_RETIRED_OBJECT_ID_MSG)
+		val validContentStatus = if (Platform.config.hasPath("reserve_dialcode.valid_content_status")) Platform.config.getStringList("reserve_dialcode.valid_content_status") else util.Arrays.asList(ContentConstants.DRAFT)
+		if(!validContentStatus.contains(metaData.get(ContentConstants.STATUS).asInstanceOf[String])) throw new ClientException(DIALErrors.ERR_CONTENT_RETIRED_OBJECT_ID, DIALErrors.ERR_CONTENT_RETIRED_OBJECT_ID_MSG)
 	}
 
 	def validateCountForReservingAndReleasingDialCode(requestDIALCodesMap: util.Map[String, AnyRef]): Unit = {
diff --git a/content-api/content-actors/src/main/scala/org/sunbird/content/util/ContentConstants.scala b/content-api/content-actors/src/main/scala/org/sunbird/content/util/ContentConstants.scala
index aa199a48195983c7633a58d626cdcd21a03c4408..8ae26a27a4498e776f3e898b4106aa6b4f97eb2d 100644
--- a/content-api/content-actors/src/main/scala/org/sunbird/content/util/ContentConstants.scala
+++ b/content-api/content-actors/src/main/scala/org/sunbird/content/util/ContentConstants.scala
@@ -77,4 +77,5 @@ object ContentConstants {
     val PROCESSING: String = "Processing"
     val RESERVE: String = "reserve"
     val RELEASE: String = "release"
+    val DRAFT: String = "Draft"
 }
diff --git a/content-api/content-service/conf/application.conf b/content-api/content-service/conf/application.conf
index 910dd940662dc220ae3346e7d71ca69436faa62e..5a77be1c5df483e209fa511755fff0262200a9b3 100644
--- a/content-api/content-service/conf/application.conf
+++ b/content-api/content-service/conf/application.conf
@@ -612,6 +612,7 @@ dial_service {
 reserve_dialcode {
     mimeType = ["application/vnd.ekstep.content-collection"]
     max_count = 250
+    valid_content_status = ["Draft","Live"]
 }
 
 content.link_dialcode.validation=true