diff --git a/pom.xml b/pom.xml
index da8949c8c14d6e2cf878b04adcff8c78bb20a6f7..8890006cdf6779fa84efb9a72ed33337549e8abb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -83,7 +83,6 @@
 			<scope>test</scope>
 		</dependency>
 
-
 		<dependency>
 			<groupId>org.springframework.security</groupId>
 			<artifactId>spring-security-jwt</artifactId>
@@ -95,11 +94,11 @@
 			<artifactId>spring-security-oauth2</artifactId>
 			<version>2.1.0.RELEASE</version>
 		</dependency>
-		<dependency>
+		 <dependency>
 			<groupId>com.fasterxml.jackson.core</groupId>
 			<artifactId>jackson-databind</artifactId>
-			<version>2.8.6</version>
-		</dependency>
+			<version>2.8.6</version> 
+		</dependency> 
 		<dependency>
 			<groupId>org.flywaydb</groupId>
 			<artifactId>flyway-core</artifactId>
@@ -187,6 +186,23 @@
 			<artifactId>poi-ooxml</artifactId>
 			<version>4.1.2</version>
 		</dependency>
+		<dependency>
+		  <groupId>io.springfox</groupId>
+		  <artifactId>springfox-swagger-ui</artifactId>
+		  <version>2.9.2</version>
+		</dependency>
+		<dependency>
+		  <groupId>io.springfox</groupId>
+		  <artifactId>springfox-swagger2</artifactId>
+		  <version>2.9.2</version>
+		</dependency>
+		<!--  
+		<dependency>
+		  <groupId>io.springfox</groupId>
+		  <artifactId>springfox-schema</artifactId>
+		  <version>2.9.2</version>
+		</dependency> -->
+	    
 	</dependencies>
 	<build>
 		<plugins>
diff --git a/src/main/java/com/tarento/retail/Application.java b/src/main/java/com/tarento/retail/Application.java
index 98797da333498a5be50f11101c92c154750e72ea..3358bee54194681139488ba01fa27f4c15d46116 100644
--- a/src/main/java/com/tarento/retail/Application.java
+++ b/src/main/java/com/tarento/retail/Application.java
@@ -11,7 +11,6 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter
 
 import com.tarento.retail.util.Constants;
 
-
 @SpringBootApplication
 public class Application {
 
@@ -34,5 +33,6 @@ public class Application {
     public TokenStore tokenStore() {
         return new InMemoryTokenStore();
     }
+   
 
 }
diff --git a/src/main/java/com/tarento/retail/config/SwaggerConfig.java b/src/main/java/com/tarento/retail/config/SwaggerConfig.java
new file mode 100644
index 0000000000000000000000000000000000000000..2f2346a236749a2d66d1df5af8e72f00fa8e2275
--- /dev/null
+++ b/src/main/java/com/tarento/retail/config/SwaggerConfig.java
@@ -0,0 +1,30 @@
+package com.tarento.retail.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.service.Contact;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+import static springfox.documentation.builders.PathSelectors.regex;
+
+@Configuration
+@EnableSwagger2
+public class SwaggerConfig {
+	
+    
+    @Bean
+    public Docket productApi() {
+       return new Docket(DocumentationType.SWAGGER_2).select()
+          .apis(RequestHandlerSelectors.basePackage("com.tarento.retail"))
+          .paths(PathSelectors.any())
+          .build();
+    }
+    
+	
+}
diff --git a/src/main/java/com/tarento/retail/config/WebSecurityConfig.java b/src/main/java/com/tarento/retail/config/WebSecurityConfig.java
index 7f06e9645158649168ce1440f602f415ab7c56fc..c35e729b89a1ee0abf467b0be5e408371a03ed0a 100644
--- a/src/main/java/com/tarento/retail/config/WebSecurityConfig.java
+++ b/src/main/java/com/tarento/retail/config/WebSecurityConfig.java
@@ -57,6 +57,13 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
 						"/user/mapActionToRole", "/user/unmapActionToRole", "/user/getUsersByMasterRole",
 						"/user/mapUserMasterRoleCountryOrg", "/user/getMasterRoleByOrgDomain", "/user/domainRole",
 						"/user/getUsersByRole", "/user/addOrgDomainRoles","/user/createBulkInstitute",
+						"/user/admin/deleteUser",
+						"/v2/api-docs",
+                        "/configuration/ui",
+                        "/swagger-resources/**",
+                        "/configuration/security",
+                        "/swagger-ui.html",
+                        "/webjars/**",
 						PathRoutes.USER_ACTIONS_URL + PathRoutes.UserRoutes.REQUEST_OTP,
 						PathRoutes.AuthenticationRoutes.SIGN_IN,
 						PathRoutes.USER_ACTIONS_URL + PathRoutes.UserRoutes.GENERATE_PIN)
diff --git a/src/main/java/com/tarento/retail/controller/UserController.java b/src/main/java/com/tarento/retail/controller/UserController.java
index f62486513dd7eb9bebecd51cec34ba29cfc4262a..a13298bdd9059e551f86e90746896495f031e3d6 100644
--- a/src/main/java/com/tarento/retail/controller/UserController.java
+++ b/src/main/java/com/tarento/retail/controller/UserController.java
@@ -493,6 +493,25 @@ public class UserController {
 		}
 		return ResponseGenerator.failureResponse("Invalid Token");
 	}
+	
+	// DELETE user
+		@RequestMapping(value = PathRoutes.UserRoutes.ADMIN_DELETE_USER, method = RequestMethod.POST)
+		public Object softDeleteUser(@RequestBody UserDto userDto,
+				@RequestHeader(value = Constants.AUTH_HEADER) String authToken, BindingResult result)
+				throws JsonProcessingException {
+			if (result.hasErrors()) {
+				return ResponseGenerator.failureResponse(HttpStatus.UNPROCESSABLE_ENTITY.toString());
+			}
+			Boolean userTokenAvailable = userService.findUserByToken(authToken);
+			String username = "";
+
+			if (userTokenAvailable) {
+				username = jwtTokenUtil.getUsernameFromToken(authToken);
+				User user = userService.findOne(username);
+				return ResponseGenerator.successResponse(userService.softDeleteUser(userDto));
+			}
+			return ResponseGenerator.failureResponse("Invalid Token");
+		}
 
 	// User List based on ROLE and Org Domain
 	@RequestMapping(value = PathRoutes.UserRoutes.GET_USERS_BY_MASTER_ROLE, method = RequestMethod.GET)
diff --git a/src/main/java/com/tarento/retail/dao/UserDao.java b/src/main/java/com/tarento/retail/dao/UserDao.java
index f8bd10b7f8642e04f621036db1bbd9bab5f9db5b..ec26bbb40eba9d4210cbf0cbd21ee6c4d4bb9597 100644
--- a/src/main/java/com/tarento/retail/dao/UserDao.java
+++ b/src/main/java/com/tarento/retail/dao/UserDao.java
@@ -271,4 +271,6 @@ public interface UserDao {
 
 	Boolean saveInstituteCourse(InstituteCourses instituteCourses);
 
+	Boolean softDeleteUser(UserDto user);
+
 }
diff --git a/src/main/java/com/tarento/retail/dao/impl/UserDaoImpl.java b/src/main/java/com/tarento/retail/dao/impl/UserDaoImpl.java
index 9630270d67a4859d05f6868dac0bc0e4a43b150a..d9bce4f23ea13a1a34a153ba1925853f7b005c1b 100644
--- a/src/main/java/com/tarento/retail/dao/impl/UserDaoImpl.java
+++ b/src/main/java/com/tarento/retail/dao/impl/UserDaoImpl.java
@@ -789,6 +789,17 @@ public class UserDaoImpl implements UserDao {
 		}
 		return Boolean.TRUE;
 	}
+	
+	@Override
+	public Boolean softDeleteUser(UserDto user) {
+		try {
+			jdbcTemplate.update(Sql.UserQueries.SOFT_DELETE_USER, new Object[] { user.getId() });
+		} catch (Exception ex) {
+			LOGGER.error("Encounter an exception while deleting the user: " + ex);
+			return Boolean.FALSE;
+		}
+		return Boolean.TRUE;
+	}
 
 	@Override
 	public List<UserDto> getUsersByMasterRole(String roleCode, Long orgId) {
@@ -909,6 +920,10 @@ public class UserDaoImpl implements UserDao {
 			}
 			paramMap.put(Constants.Parameters.ACTIVE, searchRequest.getActive());
 		}
+		// not deleted user
+		condition = addQueryCondition(builder, condition);
+		builder.append(UserQueries.TAIL_CONDITIONS_USER_NOT_DELETED);
+		
 		// roleId
 		if (searchRequest.getRoleId() != null && searchRequest.getRoleId().size() > 0) {
 			condition = addQueryCondition(builder, condition);
diff --git a/src/main/java/com/tarento/retail/service/UserService.java b/src/main/java/com/tarento/retail/service/UserService.java
index 70a44844dc4aada0a0b5665c81074bb92a8ccab2..e640b1c9d4fac2e9377cdcbaebf964c56e3ac789 100644
--- a/src/main/java/com/tarento/retail/service/UserService.java
+++ b/src/main/java/com/tarento/retail/service/UserService.java
@@ -250,4 +250,6 @@ public interface UserService {
 
 	Boolean saveInstituteCourse(InstituteCourses instituteCourses);
 
+	Boolean softDeleteUser(UserDto userDto);
+
 }
\ No newline at end of file
diff --git a/src/main/java/com/tarento/retail/service/impl/UserServiceImpl.java b/src/main/java/com/tarento/retail/service/impl/UserServiceImpl.java
index 91ca13bdb6708efcd1d9c494126aee062614673f..421382b48eeee9d19fe079913b705229d600da35 100644
--- a/src/main/java/com/tarento/retail/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/tarento/retail/service/impl/UserServiceImpl.java
@@ -473,6 +473,10 @@ public class UserServiceImpl implements UserDetailsService, UserService {
 	public Boolean deleteUser(UserDto userDto) {
 		return userDao.deleteUser(userDto);
 	}
+	@Override
+	public Boolean softDeleteUser(UserDto userDto) {
+		return userDao.softDeleteUser(userDto);
+	}
 
 	@Override
 	public List<UserDto> getUsersByMasterRole(String roleCode, Long orgId) {
@@ -564,6 +568,7 @@ public class UserServiceImpl implements UserDetailsService, UserService {
 
 	@Override
 	public Boolean validateUserOTP(String username, String otp) {
+
 		try {
 			LoginAuthentication loginAuth = Cache.getUserAuthData(username);
 			if (loginAuth != null && loginAuth.getOtpExpiryDate() > DateUtil.getCurrentTimestamp()
diff --git a/src/main/java/com/tarento/retail/util/PathRoutes.java b/src/main/java/com/tarento/retail/util/PathRoutes.java
index 58839629da70b076a40be185b8f73df91ed281a8..345980c60a5be23bb84d488ca5e2047793a4bbcf 100644
--- a/src/main/java/com/tarento/retail/util/PathRoutes.java
+++ b/src/main/java/com/tarento/retail/util/PathRoutes.java
@@ -34,6 +34,7 @@ public interface PathRoutes {
 		final String REMOVE_ROLE_MAPPING = "/role/mapping/delete";
 		final String DELETE_COUNTRY = "/deleteCountry";
 		final String DELETE_USER = "/deleteUser";
+		final String ADMIN_DELETE_USER = "/admin/deleteUser";
 		final String GET_USER_LIST_BY_ORG = "/getUserListByOrg";
 		final String GET_USERS_BY_MASTER_ROLE = "getUsersByMasterRole";
 		final String MAP_USER_MASTER_ROLE_COUNTRY_ORG = "mapUserMasterRoleCountryOrg";
diff --git a/src/main/java/com/tarento/retail/util/Sql.java b/src/main/java/com/tarento/retail/util/Sql.java
index 509979cd8565ddc09fa54e3cda8497de1ace3211..75edd8e2d285af1b3470a0befa2881f5139f0144 100644
--- a/src/main/java/com/tarento/retail/util/Sql.java
+++ b/src/main/java/com/tarento/retail/util/Sql.java
@@ -130,6 +130,7 @@ public interface Sql {
 		final String TAIL_CONDITIONS_COUNTRY_LIKE = " prof.country LIKE ?";
 		final String TAIL_CONDITIONS_USER_ACTIVE = " usr.is_active is TRUE ";
 		final String TAIL_CONDITIONS_USER_INACTIVE = " usr.is_active is FALSE ";
+		final String TAIL_CONDITIONS_USER_NOT_DELETED = " usr.is_deleted is FALSE ";
 		final String TAIL_CONDITIONS_USER_ROLEIN = " usrrole.role_id IN ";
 		final String TAIL_CONDITIONS_COUNTRY_EQUALS = " prof.country = ? ";
 		final String ORDER_BY_USER_ID = " ORDER BY usr.id ";
@@ -157,6 +158,7 @@ public interface Sql {
 		final String FETCH_AUTH_TOKEN_REF = "SELECT id FROM user_authentication WHERE auth_token = ? ";
 		final String REMOVE_USER_DEVICE_TOKEN = "DELETE from user_device WHERE user_auth_id IN (SELECT id FROM user_authentication WHERE auth_token =?) ";
 		final String DELETE_USER = "DELETE from user WHERE id=?";
+		final String SOFT_DELETE_USER = "UPDATE user SET deleted=1 WHERE id= ?";
 		final String DELETE_USER_ROLE = "DELETE from user_role where user_id=?";
 		final String DELETE_COUNTRY_USER = "DELETE from country_user where user_id=?";
 
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 815a5547ca90d1ce15bdcb8f4f51b1c85a23e2dc..28da78c7f6dc3713af06a7e1fb3ccfdecfe6bf70 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -33,3 +33,7 @@ mail.smtp.email=idc-eagle@tarento.com
 ### Expiry Timings ###
 otp.validity.mins=10080
 jwt.validity.mins=10080
+
+#springdoc.swagger-ui.path=/user-management/swagger/swagger-ui.html
+#springdoc.api-docs.path=/user-management/swagger/api-docs
+spring.mvc.pathmatch.matching-strategy=ant-path-matcher