diff --git a/src/ipmiblob/blob_handler.cpp b/src/ipmiblob/blob_handler.cpp
index 40c725d..d93f5c3 100644
--- a/src/ipmiblob/blob_handler.cpp
+++ b/src/ipmiblob/blob_handler.cpp
@@ -334,6 +334,24 @@
     return;
 }
 
+void BlobHandler::deleteBlob(const std::string& id)
+{
+    std::vector<std::uint8_t> name;
+    std::copy(id.begin(), id.end(), std::back_inserter(name));
+    name.push_back(0x00); /* need to add nul-terminator. */
+
+    try
+    {
+        sendIpmiPayload(BlobOEMCommands::bmcBlobDelete, name);
+    }
+    catch (const BlobException& b)
+    {
+        std::fprintf(stderr, "Received failure on delete: %s\n", b.what());
+    }
+
+    return;
+}
+
 std::vector<std::uint8_t> BlobHandler::readBytes(std::uint16_t session,
                                                  std::uint32_t offset,
                                                  std::uint32_t length)
diff --git a/src/ipmiblob/blob_handler.hpp b/src/ipmiblob/blob_handler.hpp
index c57b11d..33634fd 100644
--- a/src/ipmiblob/blob_handler.hpp
+++ b/src/ipmiblob/blob_handler.hpp
@@ -82,6 +82,8 @@
 
     void closeBlob(std::uint16_t session) override;
 
+    void deleteBlob(const std::string& id) override;
+
     /**
      * @throws BlobException.
      */
diff --git a/src/ipmiblob/blob_interface.hpp b/src/ipmiblob/blob_interface.hpp
index fbd8c6a..ca90cdf 100644
--- a/src/ipmiblob/blob_interface.hpp
+++ b/src/ipmiblob/blob_interface.hpp
@@ -114,6 +114,13 @@
     virtual void closeBlob(std::uint16_t session) = 0;
 
     /**
+     * Attempt to delete a blobId.
+     *
+     * @param[in] path - the blobId path.
+     */
+    virtual void deleteBlob(const std::string& id) = 0;
+
+    /**
      * Read bytes from a blob.
      *
      * @param[in] session - the session id.
diff --git a/src/ipmiblob/test/blob_interface_mock.hpp b/src/ipmiblob/test/blob_interface_mock.hpp
index 7fb94c5..f5137d5 100644
--- a/src/ipmiblob/test/blob_interface_mock.hpp
+++ b/src/ipmiblob/test/blob_interface_mock.hpp
@@ -19,6 +19,7 @@
     MOCK_METHOD1(getStat, StatResponse(std::uint16_t));
     MOCK_METHOD2(openBlob, std::uint16_t(const std::string&, std::uint16_t));
     MOCK_METHOD1(closeBlob, void(std::uint16_t));
+    MOCK_METHOD1(deleteBlob, void(const std::string&));
     MOCK_METHOD3(readBytes,
                  std::vector<std::uint8_t>(std::uint16_t, std::uint32_t,
                                            std::uint32_t));
