diff --git a/course-mw/course-actors-common/src/main/java/org/sunbird/learner/actors/certificate/service/CourseBatchCertificateActor.java b/course-mw/course-actors-common/src/main/java/org/sunbird/learner/actors/certificate/service/CourseBatchCertificateActor.java
index 3139cf0226175a843c7e53dffd8eb5a1d79a4ef7..86190d3be54cf95dd22bf909c10dd3c1700e376e 100644
--- a/course-mw/course-actors-common/src/main/java/org/sunbird/learner/actors/certificate/service/CourseBatchCertificateActor.java
+++ b/course-mw/course-actors-common/src/main/java/org/sunbird/learner/actors/certificate/service/CourseBatchCertificateActor.java
@@ -24,8 +24,7 @@ import org.sunbird.learner.constants.CourseJsonKey;
 import org.sunbird.learner.util.CourseBatchUtil;
 import org.sunbird.learner.util.Util;
 
-import static org.sunbird.common.models.util.JsonKey.CLOUD_STORE_BASE_PATH;
-import static org.sunbird.common.models.util.JsonKey.CLOUD_STORE_BASE_PATH_PLACEHOLDER;
+import static org.sunbird.common.models.util.JsonKey.*;
 import static org.sunbird.common.models.util.ProjectUtil.getConfigValue;
 
 public class CourseBatchCertificateActor extends BaseActor {
@@ -123,6 +122,7 @@ public class CourseBatchCertificateActor extends BaseActor {
       if (MapUtils.isNotEmpty((Map<String,Object>)template.get(CourseJsonKey.NOTIFY_TEMPLATE))) {
         // We need to change stateImgUrl in notifyTemplate
         Map<String, Object> notifyData = (Map<String, Object>) template.get(CourseJsonKey.NOTIFY_TEMPLATE);
+        //TODO cross check the data in environments and remove this check if not required
         String notifyTemplateUrl = getPlaceholderUrl(notifyData,JsonKey.stateImgUrl);
         notifyData.replace(JsonKey.stateImgUrl,notifyTemplateUrl);
         template.put(
@@ -146,8 +146,8 @@ public class CourseBatchCertificateActor extends BaseActor {
     if (MapUtils.isNotEmpty(templateDetails) && templateDetails.containsKey(key)) {
       // replace the actual cloud url with the template value
       templateUrl = (String) templateDetails.get(key);
-      if (templateUrl.contains(getConfigValue(CLOUD_STORE_BASE_PATH)))
-        templateUrl = templateUrl.replace(getConfigValue(CLOUD_STORE_BASE_PATH), getConfigValue(CLOUD_STORE_BASE_PATH_PLACEHOLDER));
+      if (templateUrl.contains(getConfigValue(CLOUD_STORE_BASE_PATH) +"/"+getConfigValue(CONTENT_CLOUD_STORAGE_CONTAINER)))
+        templateUrl = templateUrl.replace(getConfigValue(CLOUD_STORE_BASE_PATH)+"/"+getConfigValue(CONTENT_CLOUD_STORAGE_CONTAINER), getConfigValue(CLOUD_STORE_BASE_PATH_PLACEHOLDER));
     }
     return templateUrl;
   }
diff --git a/course-mw/course-actors-common/src/main/java/org/sunbird/learner/actors/qrcodedownload/QRCodeDownloadManagementActor.java b/course-mw/course-actors-common/src/main/java/org/sunbird/learner/actors/qrcodedownload/QRCodeDownloadManagementActor.java
index bef4d34208da4a805d4448fded8d082da843a462..94ba6eac978f8dba8963e0ab2212593f75f5fb9c 100644
--- a/course-mw/course-actors-common/src/main/java/org/sunbird/learner/actors/qrcodedownload/QRCodeDownloadManagementActor.java
+++ b/course-mw/course-actors-common/src/main/java/org/sunbird/learner/actors/qrcodedownload/QRCodeDownloadManagementActor.java
@@ -232,16 +232,10 @@ public class QRCodeDownloadManagementActor extends BaseActor {
       if (null != obj && obj instanceof List) {
         List<Map<String, Object>> listOfMap = (List<Map<String, Object>>) obj;
         if (CollectionUtils.isNotEmpty(listOfMap)) {
-          //TODO Resolve it and store. Assuming dial code db will have the template url with data migration script
-
-          //check if template url contains dail storage base path,if yes then append it with cnameurl and dial bucket name
+          //check if template url contains dail storage base path placeholder,if yes then append it with cname url and dial bucket name
           String templateUrl = (String) listOfMap.get(0).get("url");
-          String dailStorageBasePath = getConfigValue(DIAL_STORAGE_BASE_PATH_PLACEHOLDER);
-          String cnameUrl = getConfigValue(CLOUD_STORAGE_CNAME_URL);
-          if (templateUrl.contains(dailStorageBasePath))
-            templateUrl = templateUrl.replace(dailStorageBasePath,
-                    cnameUrl.isEmpty() ? getConfigValue(CLOUD_STORE_BASE_PATH) :cnameUrl
-                            + "/" + getConfigValue(CLOUD_STORAGE_DIAL_BUCKET_NAME));
+          String dailStorageBasePathPlaceHolder = getConfigValue(DIAL_STORAGE_BASE_PATH_PLACEHOLDER);
+          templateUrl = resolvePlaceholder(templateUrl, dailStorageBasePathPlaceHolder,getConfigValue(CLOUD_STORAGE_DIAL_BUCKET_NAME));
           return templateUrl;
         }
       }
@@ -249,6 +243,20 @@ public class QRCodeDownloadManagementActor extends BaseActor {
     return "";
   }
 
+  private String resolvePlaceholder(String templateUrl, String placeHolder,String containerName) {
+    if (templateUrl.contains(placeHolder))
+      templateUrl = templateUrl.replace(placeHolder, getBaseUrl()
+                      + "/" + containerName);
+    return templateUrl;
+  }
+
+  private String getBaseUrl() {
+    String baseUrl = getConfigValue(CLOUD_STORAGE_CNAME_URL);
+    if(StringUtils.isEmpty(baseUrl))
+      baseUrl = getConfigValue(CLOUD_STORE_BASE_PATH);
+    return baseUrl;
+  }
+
   /**
    * Uploading the generated csv to aws
    *
diff --git a/course-mw/sunbird-util/sunbird-platform-core/common-util/src/main/java/org/sunbird/common/models/util/JsonKey.java b/course-mw/sunbird-util/sunbird-platform-core/common-util/src/main/java/org/sunbird/common/models/util/JsonKey.java
index bcc9ea43a0c44f70812e671f930a864e812ac6e2..b4a0fd0c239477253dcb6daa8529fdf0b197a1a5 100644
--- a/course-mw/sunbird-util/sunbird-platform-core/common-util/src/main/java/org/sunbird/common/models/util/JsonKey.java
+++ b/course-mw/sunbird-util/sunbird-platform-core/common-util/src/main/java/org/sunbird/common/models/util/JsonKey.java
@@ -791,7 +791,7 @@ public final class JsonKey {
   public static final String CLOUD_STORE_BASE_PATH = "cloud_storage_base_url";
   public static final String CLOUD_STORAGE_CNAME_URL= "cloud_storage_cname_url";
   public static final String CLOUD_STORAGE_DIAL_BUCKET_NAME = "cloud_storage_dial_bucketname";
-  public static final String DIAL_STORAGE_BASE_PATH_PLACEHOLDER="DIAL_STORAGE_BASE_PATH";
+  public static final String DIAL_STORAGE_BASE_PATH_PLACEHOLDER="cloud_storage_path_prefix_dial";
   public static final String CLOUD_STORE_BASE_PATH_PLACEHOLDER = "cloud_store_base_path_placeholder";
   public static final String TO_URL = "toUrl";
   public static final String TTL = "ttl";
diff --git a/course-mw/sunbird-util/sunbird-platform-core/common-util/src/main/resources/externalresource.properties b/course-mw/sunbird-util/sunbird-platform-core/common-util/src/main/resources/externalresource.properties
index ccaf02aa00f05d32e4db06307205d17190e51426..f5f217265434c0e46a291d008bcc67fff2fc4601 100644
--- a/course-mw/sunbird-util/sunbird-platform-core/common-util/src/main/resources/externalresource.properties
+++ b/course-mw/sunbird-util/sunbird-platform-core/common-util/src/main/resources/externalresource.properties
@@ -207,6 +207,4 @@ sunbird_msg_91_auth=
 sunbird_api_mgr_base_url=https://dev.sunbirded.org/api
 enrollment_list_size=1000
 cloud_storage_base_url=https://sunbirddev.blob.core.windows.net
-cloud_storage_cname_url=https://obj.stage.sunbirded.org
-cloud_storage_dial_bucketname=dial
 cloud_store_base_path_placeholder=$CLOUD_BASE_PATH
\ No newline at end of file
diff --git a/service/app/filters/ResponseFilter.scala b/service/app/filters/ResponseFilter.scala
index afcf461357f17c3763965c6ffbef994a440079f9..1f8f41273805722cbd48e85de820706355c54579 100644
--- a/service/app/filters/ResponseFilter.scala
+++ b/service/app/filters/ResponseFilter.scala
@@ -3,6 +3,7 @@ package filters
 import akka.stream.Materializer
 import akka.util.ByteString
 import org.sunbird.common.models.util.JsonKey
+import org.sunbird.common.models.util.JsonKey.{CLOUD_STORE_BASE_PATH, CONTENT_CLOUD_STORAGE_CONTAINER}
 import play.api.http.HttpEntity.Strict
 import play.api.mvc.{Filter, RequestHeader, Result}
 import org.sunbird.common.models.util.ProjectUtil.getConfigValue
@@ -18,7 +19,7 @@ class ResponseFilter  @Inject()(implicit val mat: Materializer, ec: ExecutionCon
       if (null != result.body && !result.body.isKnownEmpty){
         val contentType = result.body.contentType
         val updatedBody = result.body.consumeData.map { x =>
-          val y = x.utf8String.replaceAll(getConfigValue(JsonKey.CLOUD_STORE_BASE_PATH_PLACEHOLDER),getConfigValue(JsonKey.CLOUD_STORE_BASE_PATH))
+          val y = x.utf8String.replaceAll(getConfigValue(JsonKey.CLOUD_STORE_BASE_PATH_PLACEHOLDER),getConfigValue(CLOUD_STORE_BASE_PATH) + "/" + getConfigValue(CONTENT_CLOUD_STORAGE_CONTAINER))
           logger.info("updated body: " + y)
           y
         }