diff --git a/src/main/java/com/tarento/retail/controller/UserController.java b/src/main/java/com/tarento/retail/controller/UserController.java
index 787f0132b9a9444f6ec8fb23d1dce83ff44e9a78..a1c8b8575851e1b788fe295b2d33bd09bd7cae5d 100644
--- a/src/main/java/com/tarento/retail/controller/UserController.java
+++ b/src/main/java/com/tarento/retail/controller/UserController.java
@@ -211,6 +211,8 @@ public class UserController {
 		Gson gson = new GsonBuilder().setPrettyPrinting().create();
 		User thisUser = gson.fromJson(xUserInfo, User.class);
 		if (userService.checkUserTokenExists(thisUser.getId(), deviceToken.getDeviceToken())) {
+			Long authTokenRef = userService.fetchAuthTokenReference(thisUser.getAuthToken());
+			userService.updateDeviceAuthRef(thisUser.getId(), deviceToken.getDeviceToken(), authTokenRef);
 			return ResponseGenerator.successResponse("Success");
 		}
 		Long authTokenRef = userService.fetchAuthTokenReference(thisUser.getAuthToken());
diff --git a/src/main/java/com/tarento/retail/dao/UserDao.java b/src/main/java/com/tarento/retail/dao/UserDao.java
index ed4f3f0c167bca7fda4c0a2d23b4df6d595530ee..b9a674b7e6436b90ccc437cb01849dbe18732caf 100644
--- a/src/main/java/com/tarento/retail/dao/UserDao.java
+++ b/src/main/java/com/tarento/retail/dao/UserDao.java
@@ -264,4 +264,6 @@ public interface UserDao {
 
 	public Boolean deleteDeviceToken(Long userId, String deviceId);
 
+	public Boolean updateDeviceAuthRef(Long userId, String deviceToken, Long authId);
+
 }
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 a20161ed8d175ad64997d7fa88f50f7b7d2a802e..c7e2dfdbc022b4687c6e971d74855e942523c541 100644
--- a/src/main/java/com/tarento/retail/dao/impl/UserDaoImpl.java
+++ b/src/main/java/com/tarento/retail/dao/impl/UserDaoImpl.java
@@ -1025,4 +1025,15 @@ public class UserDaoImpl implements UserDao {
 		}
 		return Boolean.FALSE;
 	}
+
+	@Override
+	public Boolean updateDeviceAuthRef(Long userId, String deviceToken, Long authId) {
+		try {
+			jdbcTemplate.update(UserQueries.UPDATE_DEVICE_AUTH_REF, new Object[] { authId, userId, deviceToken });
+			return Boolean.TRUE;
+		} catch (Exception e) {
+			LOGGER.error(String.format(Constants.EXCEPTION_METHOD, "updateDeviceAuthRef", e.getMessage()));
+		}
+		return Boolean.FALSE;
+	}
 }
diff --git a/src/main/java/com/tarento/retail/service/UserService.java b/src/main/java/com/tarento/retail/service/UserService.java
index bad0433a811d6fb690715e8ee9355f4f787b8993..0bf7e782d6a1fad8101b9debe8a0eec15f2bd3bc 100644
--- a/src/main/java/com/tarento/retail/service/UserService.java
+++ b/src/main/java/com/tarento/retail/service/UserService.java
@@ -243,4 +243,6 @@ public interface UserService {
 
 	public Boolean deleteDeviceToken(Long userId, String deviceId);
 
+	public Boolean updateDeviceAuthRef(Long userId, String deviceToken, Long authId);
+
 }
\ 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 bbff912c3264d63ead68a5831fa4c6b16bef97b4..12b64eea48ea00b5765b3da0a81b1004d8bac0a1 100644
--- a/src/main/java/com/tarento/retail/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/tarento/retail/service/impl/UserServiceImpl.java
@@ -612,4 +612,9 @@ public class UserServiceImpl implements UserDetailsService, UserService {
 		return userDao.deleteDeviceToken(userId, deviceId);
 	}
 
+	@Override
+	public Boolean updateDeviceAuthRef(Long userId, String deviceToken, Long authId) {
+		return userDao.updateDeviceAuthRef(userId, deviceToken, authId);
+	}
+
 }
diff --git a/src/main/java/com/tarento/retail/util/Sql.java b/src/main/java/com/tarento/retail/util/Sql.java
index 7da9170dd662a76e27d8b9dea53d7a8bb58f79b8..480a4ed0dee81004a59f26423cee2686870b757b 100644
--- a/src/main/java/com/tarento/retail/util/Sql.java
+++ b/src/main/java/com/tarento/retail/util/Sql.java
@@ -149,6 +149,7 @@ public interface Sql {
 		final String INSERT_USER_DEVICE_TOKEN = "INSERT INTO user_device (user_id, device_token, device_id, created_date, user_auth_id) VALUES (?,?,?,?,?) ";
 		final String UPDATE_USER_DEVICE_TOKEN = "UPDATE user_device SET device_token = ?, created_date = ? WHERE user_id = ? ";
 		final String FETCH_USER_DEVICE_TOKEN = " SELECT device.id, device.user_id, device.device_token, auth_token FROM user_device device, user_authentication WHERE device.user_auth_id = user_authentication.id AND device.user_id IN ";
+		final String UPDATE_DEVICE_AUTH_REF = "UPDATE user_device SET user_auth_id= ? WHERE user_id= ? and device_token= ?";
 		final String USER_DEVICE_ROLE_CONDITION = " and exists (select 1 from user_role where user_id = device.user_id and role_id IN (1,2)) "
 				+ "and not exists (select 1 from user_role where user_id = device.user_id and role_id NOT IN (1,2)) ";
 		final String FETCH_AUTH_TOKEN_REF = "SELECT id FROM user_authentication WHERE auth_token = ? ";