diff --git a/erpnext/accounts/doctype/closing_balance/__init__.py b/erpnext/accounts/doctype/account_closing_balance/__init__.py
similarity index 100%
rename from erpnext/accounts/doctype/closing_balance/__init__.py
rename to erpnext/accounts/doctype/account_closing_balance/__init__.py
diff --git a/erpnext/accounts/doctype/closing_balance/closing_balance.js b/erpnext/accounts/doctype/account_closing_balance/account_closing_balance.js
similarity index 75%
rename from erpnext/accounts/doctype/closing_balance/closing_balance.js
rename to erpnext/accounts/doctype/account_closing_balance/account_closing_balance.js
index 1a43e06..e355914 100644
--- a/erpnext/accounts/doctype/closing_balance/closing_balance.js
+++ b/erpnext/accounts/doctype/account_closing_balance/account_closing_balance.js
@@ -1,7 +1,7 @@
 // Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and contributors
 // For license information, please see license.txt
 
-// frappe.ui.form.on("Closing Balance", {
+// frappe.ui.form.on("Account Closing Balance", {
 // 	refresh(frm) {
 
 // 	},
diff --git a/erpnext/accounts/doctype/closing_balance/closing_balance.json b/erpnext/accounts/doctype/account_closing_balance/account_closing_balance.json
similarity index 98%
rename from erpnext/accounts/doctype/closing_balance/closing_balance.json
rename to erpnext/accounts/doctype/account_closing_balance/account_closing_balance.json
index ea6da14..8dacb96 100644
--- a/erpnext/accounts/doctype/closing_balance/closing_balance.json
+++ b/erpnext/accounts/doctype/account_closing_balance/account_closing_balance.json
@@ -132,7 +132,7 @@
  "modified": "2023-03-06 08:56:36.393237",
  "modified_by": "Administrator",
  "module": "Accounts",
- "name": "Closing Balance",
+ "name": "Account Closing Balance",
  "owner": "Administrator",
  "permissions": [
   {
diff --git a/erpnext/accounts/doctype/closing_balance/closing_balance.py b/erpnext/accounts/doctype/account_closing_balance/account_closing_balance.py
similarity index 73%
rename from erpnext/accounts/doctype/closing_balance/closing_balance.py
rename to erpnext/accounts/doctype/account_closing_balance/account_closing_balance.py
index f4cbab1..9c1567e 100644
--- a/erpnext/accounts/doctype/closing_balance/closing_balance.py
+++ b/erpnext/accounts/doctype/account_closing_balance/account_closing_balance.py
@@ -9,7 +9,7 @@
 )
 
 
-class ClosingBalance(Document):
+class AccountClosingBalance(Document):
 	pass
 
 
@@ -23,10 +23,12 @@
 	)
 	combined_entries = closing_entries + previous_closing_entries
 
-	merged_entries = aggregate_with_last_closing_balance(combined_entries, accounting_dimensions)
+	merged_entries = aggregate_with_last_account_closing_balance(
+		combined_entries, accounting_dimensions
+	)
 
 	for key, value in merged_entries.items():
-		cle = frappe.new_doc("Closing Balance")
+		cle = frappe.new_doc("Account Closing Balance")
 		cle.update(value)
 		cle.update(value["dimensions"])
 		cle.update(
@@ -38,7 +40,7 @@
 		cle.submit()
 
 
-def aggregate_with_last_closing_balance(entries, accounting_dimensions):
+def aggregate_with_last_account_closing_balance(entries, accounting_dimensions):
 	merged_entries = {}
 	for entry in entries:
 		key, key_values = generate_key(entry, accounting_dimensions)
@@ -97,25 +99,25 @@
 	)
 
 	if last_period_closing_voucher:
-		closing_balance = frappe.qb.DocType("Closing Balance")
-		query = frappe.qb.from_(closing_balance).select(
-			closing_balance.account,
-			closing_balance.account_currency,
-			closing_balance.debit,
-			closing_balance.credit,
-			closing_balance.debit_in_account_currency,
-			closing_balance.credit_in_account_currency,
-			closing_balance.cost_center,
-			closing_balance.project,
-			closing_balance.finance_book,
-			closing_balance.is_period_closing_voucher_entry,
+		account_closing_balance = frappe.qb.DocType("Account Closing Balance")
+		query = frappe.qb.from_(account_closing_balance).select(
+			account_closing_balance.account,
+			account_closing_balance.account_currency,
+			account_closing_balance.debit,
+			account_closing_balance.credit,
+			account_closing_balance.debit_in_account_currency,
+			account_closing_balance.credit_in_account_currency,
+			account_closing_balance.cost_center,
+			account_closing_balance.project,
+			account_closing_balance.finance_book,
+			account_closing_balance.is_period_closing_voucher_entry,
 		)
 
 		for dimension in accounting_dimensions:
-			query = query.select(closing_balance[dimension])
+			query = query.select(account_closing_balance[dimension])
 
 		query = query.where(
-			closing_balance.period_closing_voucher == last_period_closing_voucher[0].name
+			account_closing_balance.period_closing_voucher == last_period_closing_voucher[0].name
 		)
 		entries = query.run(as_dict=1)
 
diff --git a/erpnext/accounts/doctype/closing_balance/test_closing_balance.py b/erpnext/accounts/doctype/account_closing_balance/test_account_closing_balance.py
similarity index 76%
rename from erpnext/accounts/doctype/closing_balance/test_closing_balance.py
rename to erpnext/accounts/doctype/account_closing_balance/test_account_closing_balance.py
index 4e81316..fc42677 100644
--- a/erpnext/accounts/doctype/closing_balance/test_closing_balance.py
+++ b/erpnext/accounts/doctype/account_closing_balance/test_account_closing_balance.py
@@ -5,5 +5,5 @@
 from frappe.tests.utils import FrappeTestCase
 
 
-class TestClosingBalance(FrappeTestCase):
+class TestAccountClosingBalance(FrappeTestCase):
 	pass
diff --git a/erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.py b/erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.py
index 9b1378f..f11513d 100644
--- a/erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.py
+++ b/erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.py
@@ -53,7 +53,7 @@
 		self.delete_closing_entries()
 
 	def delete_closing_entries(self):
-		closing_balance = frappe.qb.DocType("Closing Balance")
+		closing_balance = frappe.qb.DocType("Account Closing Balance")
 		frappe.qb.from_(closing_balance).delete().where(
 			closing_balance.period_closing_voucher == self.name
 		).run()
diff --git a/erpnext/accounts/report/trial_balance/trial_balance.py b/erpnext/accounts/report/trial_balance/trial_balance.py
index db6b9dc..0a9dadb 100644
--- a/erpnext/accounts/report/trial_balance/trial_balance.py
+++ b/erpnext/accounts/report/trial_balance/trial_balance.py
@@ -155,7 +155,7 @@
 
 	if last_period_closing_voucher:
 		gle = get_opening_balance(
-			"Closing Balance",
+			"Account Closing Balance",
 			filters,
 			report_type,
 			accounting_dimensions,
@@ -200,7 +200,7 @@
 		.groupby(closing_balance.account)
 	)
 
-	if doctype == "Closing Balance":
+	if doctype == "Account Closing Balance":
 		if period_closing_voucher:
 			opening_balance = opening_balance.where(
 				closing_balance.period_closing_voucher == period_closing_voucher
@@ -214,7 +214,7 @@
 		opening_balance = opening_balance.where(closing_balance.closing_date >= filters.year_start_date)
 
 	if not flt(filters.with_period_closing_entry):
-		if doctype == "Closing Balance":
+		if doctype == "Account Closing Balance":
 			opening_balance = opening_balance.where(closing_balance.is_period_closing_voucher_entry == 0)
 		else:
 			opening_balance = opening_balance.where(
diff --git a/erpnext/patches/v14_0/create_accounting_dimensions_for_closing_balance.py b/erpnext/patches/v14_0/create_accounting_dimensions_for_closing_balance.py
index 3757821..43ad0d7 100644
--- a/erpnext/patches/v14_0/create_accounting_dimensions_for_closing_balance.py
+++ b/erpnext/patches/v14_0/create_accounting_dimensions_for_closing_balance.py
@@ -10,7 +10,7 @@
 	if not accounting_dimensions:
 		return
 
-	doctype = "Closing Balance"
+	doctype = "Account Closing Balance"
 
 	for d in accounting_dimensions:
 		field = frappe.db.get_value("Custom Field", {"dt": doctype, "fieldname": d.fieldname})
