diff --git a/include/ibm/management_console_rest.hpp b/include/ibm/management_console_rest.hpp
index 39146c9..a9e0ec4 100644
--- a/include/ibm/management_console_rest.hpp
+++ b/include/ibm/management_console_rest.hpp
@@ -366,8 +366,8 @@
 {
     std::string broadcastMsg;
 
-    if (!redfish::json_util::readJson(req, asyncResp->res, "Message",
-                                      broadcastMsg))
+    if (!redfish::json_util::readJsonPatch(req, asyncResp->res, "Message",
+                                           broadcastMsg))
     {
         BMCWEB_LOG_DEBUG << "Not a Valid JSON";
         asyncResp->res.result(boost::beast::http::status::bad_request);
@@ -747,8 +747,8 @@
             [](const crow::Request& req,
                const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
                 std::vector<nlohmann::json> body;
-                if (!redfish::json_util::readJson(req, asyncResp->res,
-                                                  "Request", body))
+                if (!redfish::json_util::readJsonAction(req, asyncResp->res,
+                                                        "Request", body))
                 {
                     BMCWEB_LOG_DEBUG << "Not a Valid JSON";
                     asyncResp->res.result(
@@ -765,9 +765,9 @@
                 std::string type;
                 std::vector<uint32_t> listTransactionIds;
 
-                if (!redfish::json_util::readJson(req, asyncResp->res, "Type",
-                                                  type, "TransactionIDs",
-                                                  listTransactionIds))
+                if (!redfish::json_util::readJsonPatch(
+                        req, asyncResp->res, "Type", type, "TransactionIDs",
+                        listTransactionIds))
                 {
                     asyncResp->res.result(
                         boost::beast::http::status::bad_request);
@@ -796,8 +796,8 @@
                const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
                 ListOfSessionIds listSessionIds;
 
-                if (!redfish::json_util::readJson(req, asyncResp->res,
-                                                  "SessionIDs", listSessionIds))
+                if (!redfish::json_util::readJsonPatch(
+                        req, asyncResp->res, "SessionIDs", listSessionIds))
                 {
                     asyncResp->res.result(
                         boost::beast::http::status::bad_request);
