diff --git a/include/event_service_store.hpp b/include/event_service_store.hpp
index f875986..bf4e545 100644
--- a/include/event_service_store.hpp
+++ b/include/event_service_store.hpp
@@ -7,6 +7,10 @@
 #include <boost/url/url.hpp>
 #include <nlohmann/json.hpp>
 
+#include <memory>
+#include <string>
+#include <vector>
+
 namespace persistent_data
 {
 
@@ -320,6 +324,18 @@
     {
         return eventServiceConfig;
     }
+
+    void updateUserSubscriptionConfig(const UserSubscription& userSub)
+    {
+        const std::string& id = userSub.id;
+        auto obj = subscriptionsConfigMap.find(id);
+        if (obj == subscriptionsConfigMap.end())
+        {
+            BMCWEB_LOG_INFO("No UserSubscription exist with ID:{}", id);
+            return;
+        }
+        obj->second = userSub;
+    }
 };
 
 } // namespace persistent_data
diff --git a/redfish-core/include/event_service_manager.hpp b/redfish-core/include/event_service_manager.hpp
index bb722f3..7c20e10 100644
--- a/redfish-core/include/event_service_manager.hpp
+++ b/redfish-core/include/event_service_manager.hpp
@@ -50,6 +50,7 @@
 #include <ranges>
 #include <span>
 #include <string>
+#include <string_view>
 
 namespace redfish
 {
@@ -441,15 +442,15 @@
         return eventSeqNum;
     }
 
-    void setSubscriptionId(const std::string& id2)
+    void setSubscriptionId(const std::string& idIn)
     {
-        BMCWEB_LOG_DEBUG("Subscription ID: {}", id2);
-        subId = id2;
+        BMCWEB_LOG_DEBUG("Subscription ID: {}", idIn);
+        userSub.id = idIn;
     }
 
-    std::string getSubscriptionId()
+    std::string getSubscriptionId() const
     {
-        return subId;
+        return userSub.id;
     }
 
     bool matchSseId(const crow::sse_socket::Connection& thisConn)
@@ -477,7 +478,6 @@
     persistent_data::UserSubscription userSub;
 
   private:
-    std::string subId;
     uint64_t eventSeqNum = 1;
     boost::urls::url host;
     std::shared_ptr<crow::ConnectionPolicy> policy;
@@ -809,6 +809,9 @@
             return "";
         }
 
+        // Set Subscription ID for back trace
+        subValue->setSubscriptionId(id);
+
         persistent_data::UserSubscription newSub(subValue->userSub);
 
         persistent_data::EventServiceStore::getInstance()
@@ -826,9 +829,6 @@
         // Update retry configuration.
         subValue->updateRetryConfig(retryAttempts, retryTimeoutInterval);
 
-        // Set Subscription ID for back trace
-        subValue->setSubscriptionId(id);
-
         return id;
     }
 
diff --git a/redfish-core/lib/event_service.hpp b/redfish-core/lib/event_service.hpp
index cad410b..bef13eb 100644
--- a/redfish-core/lib/event_service.hpp
+++ b/redfish-core/lib/event_service.hpp
@@ -813,6 +813,10 @@
                     subValue->userSub.verifyCertificate = *verifyCertificate;
                 }
 
+                // Sync Subscription to UserSubscriptionConfig
+                persistent_data::EventServiceStore::getInstance()
+                    .updateUserSubscriptionConfig(subValue->userSub);
+
                 EventServiceManager::getInstance().updateSubscriptionData();
             });
     BMCWEB_ROUTE(app, "/redfish/v1/EventService/Subscriptions/<str>/")
