diff --git a/frontend/allowance-planner-v2/src/app/pages/allowance/allowance.page.html b/frontend/allowance-planner-v2/src/app/pages/allowance/allowance.page.html
index 4638229..94f9a09 100644
--- a/frontend/allowance-planner-v2/src/app/pages/allowance/allowance.page.html
+++ b/frontend/allowance-planner-v2/src/app/pages/allowance/allowance.page.html
@@ -61,7 +61,7 @@
             <div class="buttons">
               <button class="add-button">Add</button>
               <!-- <button class="move-button">Move</button> -->
-              <button class="spend-button" [disabled]="!canFinishGoal(goal)">Finish goal</button>
+              <button class="spend-button" [disabled]="!canFinishGoal(goal)" (click)="completeGoal(goal.id)">Finish goal</button>
             </div>
           </div>
           <div class="color" [style.--background]="hexToRgb(goal.colour)" [style.width.%]="getPercentage(goal)"></div>
diff --git a/frontend/allowance-planner-v2/src/app/pages/allowance/allowance.page.ts b/frontend/allowance-planner-v2/src/app/pages/allowance/allowance.page.ts
index 5508cb9..c0b0971 100644
--- a/frontend/allowance-planner-v2/src/app/pages/allowance/allowance.page.ts
+++ b/frontend/allowance-planner-v2/src/app/pages/allowance/allowance.page.ts
@@ -67,4 +67,9 @@ export class AllowancePage implements ViewWillEnter {
   updateAllowance(id: number) {
     this.router.navigate(['edit', id], { relativeTo: this.route });
   }
+
+  completeGoal(goalId: number) {
+    this.allowanceService.completeGoal(goalId, this.id);
+    this.getAllowance();
+  }
 }
diff --git a/frontend/allowance-planner-v2/src/app/services/allowance.service.ts b/frontend/allowance-planner-v2/src/app/services/allowance.service.ts
index 2e84126..61397e9 100644
--- a/frontend/allowance-planner-v2/src/app/services/allowance.service.ts
+++ b/frontend/allowance-planner-v2/src/app/services/allowance.service.ts
@@ -30,4 +30,8 @@ export class AllowanceService {
     deleteAllowance(allowanceId: number, userId: number) {
         this.http.delete(`${this.url}/user/${userId}/allowance/${allowanceId}`).subscribe();
     }
+
+    completeGoal(goalId: number, userId: number) {
+        this.http.post(`${this.url}/user/${userId}/allowance/${goalId}/complete`, {}).subscribe();
+    }
 }
\ No newline at end of file