diff --git a/core_manager.cpp b/core_manager.cpp
index 554d969..a2219c3 100644
--- a/core_manager.cpp
+++ b/core_manager.cpp
@@ -52,14 +52,12 @@
     constexpr auto MAPPER_BUSNAME = "xyz.openbmc_project.ObjectMapper";
     constexpr auto MAPPER_PATH = "/xyz/openbmc_project/object_mapper";
     constexpr auto MAPPER_INTERFACE = "xyz.openbmc_project.ObjectMapper";
-    constexpr auto IFACE_INTERNAL("xyz.openbmc_project.Dump.Internal.Create");
-    constexpr auto APPLICATION_CORED =
-        "xyz.openbmc_project.Dump.Internal.Create.Type.ApplicationCored";
+    constexpr auto DUMP_CREATE_IFACE = "xyz.openbmc_project.Dump.Create";
 
     auto b = sdbusplus::bus::new_default();
     auto mapper = b.new_method_call(MAPPER_BUSNAME, MAPPER_PATH,
                                     MAPPER_INTERFACE, "GetObject");
-    mapper.append(OBJ_INTERNAL, vector<string>({IFACE_INTERNAL}));
+    mapper.append(BMC_DUMP_OBJPATH, vector<string>({DUMP_CREATE_IFACE}));
 
     map<string, vector<string>> mapperResponse;
     try
@@ -79,9 +77,20 @@
     }
 
     const auto& host = mapperResponse.cbegin()->first;
-    auto m = b.new_method_call(host.c_str(), OBJ_INTERNAL, IFACE_INTERNAL,
-                               "Create");
-    m.append(APPLICATION_CORED, files);
+    auto m = b.new_method_call(host.c_str(), BMC_DUMP_OBJPATH,
+                               DUMP_CREATE_IFACE, "CreateDump");
+    phosphor::dump::DumpCreateParams params;
+    using CreateParameters =
+        sdbusplus::common::xyz::openbmc_project::dump::Create::CreateParameters;
+    using DumpType =
+        sdbusplus::common::xyz::openbmc_project::dump::Create::DumpType;
+    using DumpIntr = sdbusplus::common::xyz::openbmc_project::dump::Create;
+    params[DumpIntr::convertCreateParametersToString(
+        CreateParameters::DumpType)] =
+        DumpIntr::convertDumpTypeToString(DumpType::ApplicationCored);
+    params[DumpIntr::convertCreateParametersToString(
+        CreateParameters::FilePath)] = files.front();
+    m.append(params);
     try
     {
         b.call_noreply(m);
diff --git a/dump_types.cpp b/dump_types.cpp
index 539bca4..8dcdf15 100644
--- a/dump_types.cpp
+++ b/dump_types.cpp
@@ -11,11 +11,12 @@
 {
 DUMP_TYPE_TABLE dumpTypeTable = {
     {"xyz.openbmc_project.Dump.Create.DumpType.UserRequested",
-     {DumpTypes::USER, "BMC_DUMP"}}};
+     {DumpTypes::USER, "BMC_DUMP"}},
+    {"xyz.openbmc_project.Dump.Create.DumpType.ApplicationCored",
+     {DumpTypes::CORE, "BMC_DUMP"}}};
 
-DUMP_TYPE_TO_STRING_MAP dumpTypeToStringMap = {
-    {DumpTypes::USER, "user"},
-};
+DUMP_TYPE_TO_STRING_MAP dumpTypeToStringMap = {{DumpTypes::USER, "user"},
+                                               {DumpTypes::CORE, "core"}};
 
 std::optional<std::string> dumpTypeToString(const DumpTypes& dumpType)
 {
diff --git a/dump_types.hpp b/dump_types.hpp
index be1e92d..38cef98 100644
--- a/dump_types.hpp
+++ b/dump_types.hpp
@@ -22,6 +22,7 @@
 enum class DumpTypes
 {
     USER,
+    CORE,
 };
 
 // A table of dump types
