diff --git a/libpldmresponder/oem_handler.hpp b/libpldmresponder/oem_handler.hpp
index ca51366..37d785e 100644
--- a/libpldmresponder/oem_handler.hpp
+++ b/libpldmresponder/oem_handler.hpp
@@ -49,18 +49,19 @@
      *  @param[in] entityInstance - entity instance
      *  @param[in] stateSetId - state set id
      *  @param[in] compEffecterCnt - composite effecter count
-     *  param[in] stateField - The state field data for each of the states,
+     *  @param[in] stateField - The state field data for each of the states,
      *                         equal to compEffecterCnt in number
+     *  @param[in] effecterId - Effecter id
      *
      *  @return - Success or failure in setting the states.Returns failure in
      *            terms of PLDM completion codes if atleast one state fails to
      *            be set
      */
-
-    virtual int oemSetStateEffecterStatesHandler(
-        EntityType entityType, EntityInstance entityInstance,
-        StateSetId stateSetId, CompositeCount compEffecterCnt,
-        const std::vector<set_effecter_state_field>& stateField) = 0;
+    virtual int OemSetStateEffecterStatesHandler(
+        uint16_t entityType, uint16_t entityInstance, uint16_t stateSetId,
+        uint8_t compEffecterCnt,
+        std::vector<set_effecter_state_field>& stateField,
+        uint16_t effecterId) = 0;
 
     /** @brief Interface to generate the OEM PDRs
      *
diff --git a/libpldmresponder/platform.cpp b/libpldmresponder/platform.cpp
index 24d1956..0e5b22d 100644
--- a/libpldmresponder/platform.cpp
+++ b/libpldmresponder/platform.cpp
@@ -260,9 +260,9 @@
                            entityInstance, stateSetId) &&
         oemPlatformHandler != nullptr)
     {
-        rc = oemPlatformHandler->oemSetStateEffecterStatesHandler(
-            entityType, entityInstance, stateSetId, compEffecterCnt,
-            stateField);
+        rc = oemPlatformHandler->OemSetStateEffecterStatesHandler(
+            entityType, entityInstance, stateSetId, compEffecterCnt, stateField,
+            effecterId);
     }
     else
     {
diff --git a/oem/ibm/libpldmresponder/oem_ibm_handler.cpp b/oem/ibm/libpldmresponder/oem_ibm_handler.cpp
index 1c6b3fd..09a46a5 100644
--- a/oem/ibm/libpldmresponder/oem_ibm_handler.cpp
+++ b/oem/ibm/libpldmresponder/oem_ibm_handler.cpp
@@ -42,10 +42,11 @@
 }
 
 int pldm::responder::oem_ibm_platform::Handler::
-    oemSetStateEffecterStatesHandler(
-        EntityType entityType, EntityInstance entityInstance,
-        StateSetId stateSetId, CompositeCount compEffecterCnt,
-        const std::vector<set_effecter_state_field>& stateField)
+    OemSetStateEffecterStatesHandler(
+        uint16_t entityType, uint16_t entityInstance, uint16_t stateSetId,
+        uint8_t compEffecterCnt,
+        std::vector<set_effecter_state_field>& stateField,
+        uint16_t /*effecterId*/)
 {
     int rc = PLDM_SUCCESS;
 
diff --git a/oem/ibm/libpldmresponder/oem_ibm_handler.hpp b/oem/ibm/libpldmresponder/oem_ibm_handler.hpp
index 17ad008..f8d261d 100644
--- a/oem/ibm/libpldmresponder/oem_ibm_handler.hpp
+++ b/oem/ibm/libpldmresponder/oem_ibm_handler.hpp
@@ -48,10 +48,10 @@
         StateSetId stateSetId, CompositeCount compSensorCnt,
         std::vector<get_sensor_state_field>& stateField);
 
-    int oemSetStateEffecterStatesHandler(
-        EntityType entityType, EntityInstance entityInstance,
-        StateSetId stateSetId, CompositeCount compEffecterCnt,
-        const std::vector<set_effecter_state_field>& stateField);
+    int OemSetStateEffecterStatesHandler(
+        uint16_t entityType, uint16_t entityInstance, uint16_t stateSetId,
+        uint8_t compEffecterCnt,
+        std::vector<set_effecter_state_field>& stateField, uint16_t effecterId);
 
     /** @brief Method to set the platform handler in the
      *         oem_ibm_handler class
diff --git a/oem/ibm/test/libpldmresponder_oem_platform_test.cpp b/oem/ibm/test/libpldmresponder_oem_platform_test.cpp
index 64de610..3b2d681 100644
--- a/oem/ibm/test/libpldmresponder_oem_platform_test.cpp
+++ b/oem/ibm/test/libpldmresponder_oem_platform_test.cpp
@@ -33,6 +33,7 @@
     uint16_t stateSetId_ = PLDM_OEM_IBM_BOOT_STATE;
     uint16_t entityInstance_ = 0;
     uint8_t compSensorCnt_ = 1;
+    uint16_t effecterId = 0xA;
     sdbusplus::bus::bus bus(sdbusplus::bus::new_default());
     Requester requester(bus, "/abc/def");
 
@@ -83,24 +84,24 @@
     std::vector<set_effecter_state_field> setEffecterStateField;
     setEffecterStateField.push_back({PLDM_REQUEST_SET, pSideNum});
 
-    rc = oemPlatformHandler->oemSetStateEffecterStatesHandler(
+    rc = oemPlatformHandler->OemSetStateEffecterStatesHandler(
         entityID_, entityInstance_, stateSetId_, compSensorCnt_,
-        setEffecterStateField);
+        setEffecterStateField, effecterId);
     ASSERT_EQ(rc, PLDM_SUCCESS);
 
     entityInstance_ = 2;
-    rc = oemPlatformHandler->oemSetStateEffecterStatesHandler(
+    rc = oemPlatformHandler->OemSetStateEffecterStatesHandler(
         entityID_, entityInstance_, stateSetId_, compSensorCnt_,
-        setEffecterStateField);
+        setEffecterStateField, effecterId);
 
     ASSERT_EQ(rc, PLDM_PLATFORM_INVALID_STATE_VALUE);
 
     entityID_ = 34;
     stateSetId_ = 99;
     entityInstance_ = 0;
-    rc = oemPlatformHandler->oemSetStateEffecterStatesHandler(
+    rc = oemPlatformHandler->OemSetStateEffecterStatesHandler(
         entityID_, entityInstance_, stateSetId_, compSensorCnt_,
-        setEffecterStateField);
+        setEffecterStateField, effecterId);
     ASSERT_EQ(rc, PLDM_PLATFORM_SET_EFFECTER_UNSUPPORTED_SENSORSTATE);
 }
 
