diff --git a/vpd-manager/manager.cpp b/vpd-manager/manager.cpp
index 23e6290..4c8b416 100644
--- a/vpd-manager/manager.cpp
+++ b/vpd-manager/manager.cpp
@@ -12,6 +12,7 @@
 
 #include <filesystem>
 #include <phosphor-logging/elog-errors.hpp>
+#include <xyz/openbmc_project/Common/error.hpp>
 
 using namespace openpower::vpd::constants;
 using namespace openpower::vpd::inventory;
@@ -68,6 +69,11 @@
     interface->register_method("PerformVPDRecollection",
                                [this]() { this->performVPDRecollection(); });
 
+    interface->register_method(
+        "deleteFRUVPD", [this](const sdbusplus::message::object_path& path) {
+            this->deleteFRUVPD(path);
+        });
+
     sd_bus_default(&sdBus);
     initManager();
 }
@@ -585,6 +591,38 @@
     }
 }
 
+void Manager::deleteFRUVPD(const sdbusplus::message::object_path& path)
+{
+    using InvalidArgument =
+        sdbusplus::xyz::openbmc_project::Common::Error::InvalidArgument;
+    using Argument = xyz::openbmc_project::Common::InvalidArgument;
+
+    // if path not found in Json.
+    if (frus.find(path) == frus.end())
+    {
+        elog<InvalidArgument>(
+            Argument::ARGUMENT_NAME("Object Path"),
+            Argument::ARGUMENT_VALUE(std::string(path).c_str()));
+    }
+
+    // if the FRU is not present then log error
+    if (readBusProperty(path, "xyz.openbmc_project.Inventory.Item",
+                        "Present") == "false")
+    {
+        elog<InvalidArgument>(
+            Argument::ARGUMENT_NAME("FRU not preset"),
+            Argument::ARGUMENT_VALUE(std::string(path).c_str()));
+    }
+    else
+    {
+        inventory::ObjectMap objectMap = {
+            {path,
+             {{"xyz.openbmc_project.Inventory.Item", {{"Present", false}}}}}};
+
+        common::utility::callPIM(move(objectMap));
+    }
+}
+
 } // namespace manager
 } // namespace vpd
 } // namespace openpower
\ No newline at end of file
diff --git a/vpd-manager/manager.hpp b/vpd-manager/manager.hpp
index 12fc1d4..13de42e 100644
--- a/vpd-manager/manager.hpp
+++ b/vpd-manager/manager.hpp
@@ -110,6 +110,13 @@
      */
     void performVPDRecollection();
 
+    /** @brief Api to delete FRU VPD.
+     * This api will set the present property of given FRU to false. If already
+     * set to false, It will log an error.
+     * @param[in] path - Object path of FRU.
+     */
+    void deleteFRUVPD(const sdbusplus::message::object_path& path);
+
   private:
     /**
      * @brief An api to process some initial requirements.
