diff --git a/src/main/java/com/example/clientproject/data/rewards/RewardsRepo.java b/src/main/java/com/example/clientproject/data/rewards/RewardsRepo.java
index b145882b042e10fdde19934a5a2fa436f7379f30..c1ab9c191a5068e3377af33ae003e574d668cf06 100644
--- a/src/main/java/com/example/clientproject/data/rewards/RewardsRepo.java
+++ b/src/main/java/com/example/clientproject/data/rewards/RewardsRepo.java
@@ -26,7 +26,7 @@ public interface RewardsRepo extends JpaRepository<StampBoards, Long> {
      * @return - Optional object containing the Reward found, if it's present
      */
     @Query("select r from Rewards r where r.rewardId = ?1")
-    Optional<Rewards> findByRewardId(int rewardId);
+    Optional<Rewards> findByRewardId(long rewardId);
 
 
     /**
@@ -35,14 +35,6 @@ public interface RewardsRepo extends JpaRepository<StampBoards, Long> {
      * @return - Optional Integer containing the reward, if it's present
      */
     @Query("select r.rewardStampLocation from Rewards r where r.rewardId = ?1")
-    Optional<Integer> getRewardValueFromId(int rewardId);
-
-    /**
-     * Find relating stampBoardId by rewardId
-     * @param rewardId Id of relating stampBoardId to find
-     * @return - Optional Integer containing the Id, if it's present
-     */
-    @Query("select r.stampBoards.stampBoardId from Rewards r where r.rewardId = ?1")
-    Optional<Integer> getStampBoardIdById(int rewardId);
+    Optional<Integer> getRewardValueFromId(long rewardId);
 
 }
diff --git a/src/main/java/com/example/clientproject/services/GetStampBoardIdFromRewardId.java b/src/main/java/com/example/clientproject/services/GetStampBoardIdFromRewardId.java
new file mode 100644
index 0000000000000000000000000000000000000000..ec93834e30a2164233f9f6c89ad9e7f95c3ff08c
--- /dev/null
+++ b/src/main/java/com/example/clientproject/services/GetStampBoardIdFromRewardId.java
@@ -0,0 +1,29 @@
+package com.example.clientproject.services;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class GetStampBoardIdFromRewardId {
+    @Autowired
+    JdbcTemplate jdbc;
+
+    /**
+     * @param rewardId the rewardId of the stampBoardId you want to retrieve
+     */
+    public int getStampBoardId(Integer rewardId){
+        String query = "SELECT Stamp_Board_Id FROM rewards WHERE Reward_Id = " + rewardId + ";";
+        try{
+            List<Map<String, Object>> rs = jdbc.queryForList(query);
+
+            System.out.println((int) rs.get(0).get("Stamp_Board_Id"));
+            return (int) rs.get(0).get("Stamp_Board_Id");
+        }catch (Exception e){
+            return 0;
+        }
+    }
+}
diff --git a/src/main/java/com/example/clientproject/web/restControllers/UpdateUserStampPosition.java b/src/main/java/com/example/clientproject/web/restControllers/UpdateUserStampPosition.java
index 10a0fb3d3ec34299b85d1690fd9e9b763e52e120..9497ff611b8bdc37090971cae86b1dc067842780 100644
--- a/src/main/java/com/example/clientproject/web/restControllers/UpdateUserStampPosition.java
+++ b/src/main/java/com/example/clientproject/web/restControllers/UpdateUserStampPosition.java
@@ -9,6 +9,7 @@ import com.example.clientproject.data.userStampBoards.UserStampBoards;
 import com.example.clientproject.data.users.Users;
 import com.example.clientproject.data.users.UsersRepo;
 import com.example.clientproject.service.Utils.JWTUtils;
+import com.example.clientproject.services.GetStampBoardIdFromRewardId;
 import com.example.clientproject.services.StampboardUpdater;
 import com.example.clientproject.services.UserStampBoardService;
 import com.example.clientproject.web.forms.UpdateStampboardForm;
@@ -29,15 +30,17 @@ public class UpdateUserStampPosition {
     UserPermissionsRepo userPermissionsRepo;
     RewardsRepo rewardsRepo;
     UsersRepo usersRepo;
+    GetStampBoardIdFromRewardId getStampBoardIdFromRewardId;
 
     public UpdateUserStampPosition(JWTUtils jwt, UserStampBoardService usbs,
                                    UserPermissionsRepo upr, RewardsRepo rr,
-                                   UsersRepo ur){ //need to add service for changing stamp pos
+                                   UsersRepo ur, GetStampBoardIdFromRewardId gsbifri){ //need to add service for changing stamp pos
         jwtUtils = jwt;
         userStampBoardService = usbs;
         userPermissionsRepo = upr;
         rewardsRepo = rr;
         usersRepo = ur;
+        getStampBoardIdFromRewardId = gsbifri;
     }
 
     @PostMapping("/changeUserPos")
@@ -75,26 +78,24 @@ public class UpdateUserStampPosition {
         }
     }
 
-    @PostMapping
+    @PostMapping("/reedeemReward")
     public void reedeemStamps(@RequestParam(name="rewardId", required = true) int rewardId, HttpSession session){
-        Optional<Rewards> reward = rewardsRepo.findByRewardId(rewardId);
-        Optional<Integer> stampBoardId = rewardsRepo.getStampBoardIdById(rewardId);
+        Optional<Rewards> reward = rewardsRepo.findByRewardId(Long.valueOf(rewardId));
+        int stampBoardId = getStampBoardIdFromRewardId.getStampBoardId(rewardId);
         Optional<Users> user = usersRepo.findById(Long.valueOf(jwtUtils.getLoggedInUserId(session).get()));
         Set<UserStampBoards> userStampBoards = user.get().getUserStampBoards();
         int userStampPos = 0;
-        long userStampBoardIdInLink = 0;
 
         boolean userIsLinkedToStampBoard = false;
         for(UserStampBoards u : userStampBoards){
-            if(stampBoardId.get() == u.getStampBoard().getStampBoardId()){
-                userStampBoardIdInLink = u.getStampBoard().getStampBoardId();
+            if(stampBoardId == u.getStampBoard().getStampBoardId()){
                 userStampPos = u.getUserStampPosition();
                 userIsLinkedToStampBoard = true;
             }
         }
         if(userIsLinkedToStampBoard){
             if(userStampPos >= reward.get().getRewardStampLocation()){
-                userStampBoardService.changeUserStampPosition(jwtUtils.getLoggedInUserId(session).get(), -1, userStampPos);
+                userStampBoardService.changeUserStampPosition(jwtUtils.getLoggedInUserId(session).get(), -reward.get().getRewardStampLocation(), userStampPos);
             }
         } else {
             System.out.println("User is not linked to stampboard you are trying to claim a reward from");
diff --git a/src/main/resources/static/js/viewShop.js b/src/main/resources/static/js/viewShop.js
index e769a5747194e59ca42137af4b6e5ad7c398555d..b62a6909ddb3c9541369b4823844028bcd62bb34 100644
--- a/src/main/resources/static/js/viewShop.js
+++ b/src/main/resources/static/js/viewShop.js
@@ -56,7 +56,7 @@ function changeUserStampPos(increment, shopId){
 function claimReward(rewardId){
     params = 'rewardId=' + rewardId;
     var xhttp = new XMLHttpRequest();
-    xhttp.open("POST", '/changeUserPos', true); // true is asynchronous
+    xhttp.open("POST", '/reedeemReward', true); // true is asynchronous
     xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
     xhttp.onload = function () {
         if (xhttp.readyState === 4 && xhttp.status === 200) {