diff --git a/sdbusplus/server/transaction.hpp b/sdbusplus/server/transaction.hpp
index 0dbab5f..b4443c2 100644
--- a/sdbusplus/server/transaction.hpp
+++ b/sdbusplus/server/transaction.hpp
@@ -88,6 +88,12 @@
   */
 inline uint64_t get_id()
 {
+    // If the transaction id has not been initialized, generate one.
+    if (!details::id)
+    {
+        details::Transaction t;
+        details::id = std::hash<details::Transaction>{}(t);
+    }
     return details::id;
 }
 
diff --git a/tools/sdbusplus/templates/interface.mako.server.cpp b/tools/sdbusplus/templates/interface.mako.server.cpp
index 89fa2a9..aec8cfb 100644
--- a/tools/sdbusplus/templates/interface.mako.server.cpp
+++ b/tools/sdbusplus/templates/interface.mako.server.cpp
@@ -52,6 +52,14 @@
     try
     {
         auto m = message::message(reply);
+#ifndef DISABLE_TRANSACTION
+        {
+            auto tbus = m.get_bus();
+            sdbusplus::server::transaction::Transaction t(tbus, m);
+            sdbusplus::server::transaction::set_id
+                (std::hash<sdbusplus::server::transaction::Transaction>{}(t));
+        }
+#endif
 
         auto o = static_cast<${classname}*>(context);
         m.append(convertForMessage(o->${p.camelCase}()));
@@ -85,6 +93,14 @@
     try
     {
         auto m = message::message(value);
+#ifndef DISABLE_TRANSACTION
+        {
+            auto tbus = m.get_bus();
+            sdbusplus::server::transaction::Transaction t(tbus, m);
+            sdbusplus::server::transaction::set_id
+                (std::hash<sdbusplus::server::transaction::Transaction>{}(t));
+        }
+#endif
 
         auto o = static_cast<${classname}*>(context);
 
diff --git a/tools/sdbusplus/templates/method.mako.prototype.hpp b/tools/sdbusplus/templates/method.mako.prototype.hpp
index b58a2e3..0c4615e 100644
--- a/tools/sdbusplus/templates/method.mako.prototype.hpp
+++ b/tools/sdbusplus/templates/method.mako.prototype.hpp
@@ -128,6 +128,14 @@
         ### Need to add a ref to msg since we attached it to an
         ### sdbusplus::message.
         auto m = message::message(msg);
+#ifndef DISABLE_TRANSACTION
+        {
+            auto tbus = m.get_bus();
+            sdbusplus::server::transaction::Transaction t(tbus, m);
+            sdbusplus::server::transaction::set_id
+                (std::hash<sdbusplus::server::transaction::Transaction>{}(t));
+        }
+#endif
 
     % if len(method.parameters) != 0:
         ${parameters_as_local(as_param=False)}{};
