diff --git a/redfish-core/lib/chassis.hpp b/redfish-core/lib/chassis.hpp
index 06ce583..e827f03 100644
--- a/redfish-core/lib/chassis.hpp
+++ b/redfish-core/lib/chassis.hpp
@@ -537,6 +537,8 @@
             "xyz.openbmc_project.Inventory.Decorator.AssetTag";
         const std::string replaceableInterface =
             "xyz.openbmc_project.Inventory.Decorator.Replaceable";
+        const std::string revisionInterface =
+            "xyz.openbmc_project.Inventory.Decorator.Revision";
         for (const auto& interface : interfaces2)
         {
             if (interface == assetTagInterface)
@@ -573,6 +575,23 @@
                     asyncResp->res.jsonValue["HotPluggable"] = property;
                 });
             }
+            else if (interface == revisionInterface)
+            {
+                sdbusplus::asio::getProperty<std::string>(
+                    *crow::connections::systemBus, connectionName, path,
+                    revisionInterface, "Version",
+                    [asyncResp, chassisId](const boost::system::error_code& ec2,
+                                           const std::string& property) {
+                    if (ec2)
+                    {
+                        BMCWEB_LOG_ERROR("DBus response error for Version: {}",
+                                         ec2);
+                        messages::internalError(asyncResp->res);
+                        return;
+                    }
+                    asyncResp->res.jsonValue["Version"] = property;
+                });
+            }
         }
 
         for (const char* interface : hasIndicatorLed)
