diff --git a/sdbusplus/message.hpp b/sdbusplus/message.hpp
index df8a38d..11cfb9f 100644
--- a/sdbusplus/message.hpp
+++ b/sdbusplus/message.hpp
@@ -249,6 +249,21 @@
         return cookie;
     }
 
+    /** @brief Get the reply cookie of a message.
+     *
+     * @return The reply cookie of a message.
+     */
+    auto get_reply_cookie()
+    {
+        uint64_t cookie;
+        int r = _intf->sd_bus_message_get_reply_cookie(_msg.get(), &cookie);
+        if (r < 0)
+        {
+            throw exception::SdBusError(-r, "sd_bus_message_get_reply_cookie");
+        }
+        return cookie;
+    }
+
     /** @brief Check if message is a method call for an interface/method.
      *
      *  @param[in] interface - The interface to match.
diff --git a/sdbusplus/sdbus.hpp b/sdbusplus/sdbus.hpp
index f1bea78..429e70a 100644
--- a/sdbusplus/sdbus.hpp
+++ b/sdbusplus/sdbus.hpp
@@ -75,6 +75,8 @@
     virtual int sd_bus_message_get_type(sd_bus_message* m, uint8_t* type) = 0;
     virtual int sd_bus_message_get_cookie(sd_bus_message* m,
                                           uint64_t* cookie) = 0;
+    virtual int sd_bus_message_get_reply_cookie(sd_bus_message* m,
+                                                uint64_t* cookie) = 0;
     virtual const char* sd_bus_message_get_destination(sd_bus_message* m) = 0;
     virtual const char* sd_bus_message_get_interface(sd_bus_message* m) = 0;
     virtual const char* sd_bus_message_get_member(sd_bus_message* m) = 0;
@@ -305,6 +307,12 @@
         return ::sd_bus_message_get_cookie(m, cookie);
     }
 
+    int sd_bus_message_get_reply_cookie(sd_bus_message* m,
+                                        uint64_t* cookie) override
+    {
+        return ::sd_bus_message_get_reply_cookie(m, cookie);
+    }
+
     const char* sd_bus_message_get_destination(sd_bus_message* m) override
     {
         return ::sd_bus_message_get_destination(m);
diff --git a/sdbusplus/test/sdbus_mock.hpp b/sdbusplus/test/sdbus_mock.hpp
index 7b8abc5..2386a4d 100644
--- a/sdbusplus/test/sdbus_mock.hpp
+++ b/sdbusplus/test/sdbus_mock.hpp
@@ -58,6 +58,8 @@
     MOCK_METHOD1(sd_bus_message_get_bus, sd_bus*(sd_bus_message*));
     MOCK_METHOD2(sd_bus_message_get_type, int(sd_bus_message*, uint8_t*));
     MOCK_METHOD2(sd_bus_message_get_cookie, int(sd_bus_message*, uint64_t*));
+    MOCK_METHOD2(sd_bus_message_get_reply_cookie,
+                 int(sd_bus_message*, uint64_t*));
     MOCK_METHOD1(sd_bus_message_get_destination, const char*(sd_bus_message*));
     MOCK_METHOD1(sd_bus_message_get_interface, const char*(sd_bus_message*));
     MOCK_METHOD1(sd_bus_message_get_member, const char*(sd_bus_message*));
