diff --git a/fineract-provider/src/main/resources/db/changelog/tenant/changelog-tenant.xml b/fineract-provider/src/main/resources/db/changelog/tenant/changelog-tenant.xml
index b5a108dcd..30b1fa477 100644
--- a/fineract-provider/src/main/resources/db/changelog/tenant/changelog-tenant.xml
+++ b/fineract-provider/src/main/resources/db/changelog/tenant/changelog-tenant.xml
@@ -343,4 +343,5 @@
+
diff --git a/fineract-provider/src/main/resources/db/changelog/tenant/parts/0316_create_clerk_role_and_permissions.xml b/fineract-provider/src/main/resources/db/changelog/tenant/parts/0316_create_clerk_role_and_permissions.xml
new file mode 100644
index 000000000..060a72f4f
--- /dev/null
+++ b/fineract-provider/src/main/resources/db/changelog/tenant/parts/0316_create_clerk_role_and_permissions.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+ INSERT INTO m_role (name, description, is_disabled)
+ SELECT 'Clerk', 'Clerk role with all application permissions for front-desk banking operations.', false
+ WHERE NOT EXISTS (
+ SELECT 1 FROM m_role WHERE LOWER(name) = 'clerk'
+ );
+
+
+ DELETE FROM m_role_permission WHERE role_id = (SELECT id FROM m_role WHERE LOWER(name) = 'clerk');
+ DELETE FROM m_role WHERE LOWER(name) = 'clerk';
+
+
+
+
+
+
+ INSERT INTO m_role_permission (role_id, permission_id)
+ SELECT r.id, p.id
+ FROM m_role r, m_permission p
+ WHERE LOWER(r.name) = 'clerk'
+ AND NOT EXISTS (
+ SELECT 1 FROM m_role_permission rp
+ WHERE rp.role_id = r.id AND rp.permission_id = p.id
+ );
+
+
+ DELETE FROM m_role_permission
+ WHERE role_id = (SELECT id FROM m_role WHERE LOWER(name) = 'clerk');
+
+
+
+