diff --git a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/MinervalController.java b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/MinervalController.java
index 7d93a04..27efc58 100644
--- a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/MinervalController.java
+++ b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/MinervalController.java
@@ -13,6 +13,7 @@ import ovh.herisson.Clyde.Tables.Role;
 import java.util.*;
 
 @RestController
+@CrossOrigin(originPatterns = "*", allowCredentials = "true")
 public class MinervalController {
     private final AuthenticatorService authServ;
     private final MinervalRepository mr;
@@ -42,4 +43,14 @@ public class MinervalController {
         Minerval m = mlist.get(0);
         return new ResponseEntity<>(m, HttpStatus.OK);
     }
+
+    @PatchMapping("/minerval")
+    public ResponseEntity<Object> updateMinerval(@RequestBody Minerval updatedMinerval){
+        Minerval minerval = mr.findById(updatedMinerval.getId());
+
+        minerval.setPaidAmount(updatedMinerval.getPaidAmount());
+        minerval.setToPay(updatedMinerval.getToPay());
+        mr.save(minerval);
+        return new ResponseEntity<>(HttpStatus.OK);
+    }
 }
diff --git a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/MockController.java b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/MockController.java
index 3fda0d5..0a5d145 100644
--- a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/MockController.java
+++ b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/MockController.java
@@ -2,6 +2,7 @@ package ovh.herisson.Clyde.EndPoints;
 
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.web.bind.annotation.*;
+import ovh.herisson.Clyde.Repositories.MinervalRepository;
 import ovh.herisson.Clyde.Repositories.TokenRepository;
 import ovh.herisson.Clyde.Repositories.UserCurriculumRepository;
 import ovh.herisson.Clyde.Repositories.UserRepository;
@@ -29,7 +30,9 @@ public class MockController {
 
     public final UserCurriculumRepository ucr;
 
-    public MockController(UserRepository userRepo, TokenRepository tokenRepo, TokenService tokenService, CurriculumCourseService CurriculumCourseService, CurriculumService curriculumService, CourseService courseService, InscriptionService inscriptionService, UserCurriculumRepository ucr){
+    public final MinervalRepository minervalRepository;
+
+    public MockController(UserRepository userRepo, TokenRepository tokenRepo, TokenService tokenService, CurriculumCourseService CurriculumCourseService, CurriculumService curriculumService, CourseService courseService, InscriptionService inscriptionService, UserCurriculumRepository ucr, MinervalRepository minervalRepository){
         this.tokenRepo = tokenRepo;
         this.userRepo = userRepo;
         this.tokenService = tokenService;
@@ -38,6 +41,7 @@ public class MockController {
         this.courseService = courseService;
         this.inscriptionService = inscriptionService;
         this.ucr = ucr;
+        this.minervalRepository = minervalRepository;
     }
 
     /** Saves an example of each user type by :
@@ -61,6 +65,8 @@ public class MockController {
 
         userRepo.saveAll(mockUsers);
 
+        Minerval minerval = new Minerval(joe.getRegNo(), 0, 852, 2023);
+        minervalRepository.save(minerval);
         // Course / Curriculum part
 
         Curriculum infoBab1 = new Curriculum(1,"info");
diff --git a/backend/src/main/java/ovh/herisson/Clyde/EndPoints/PaymentController.java b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/PaymentController.java
new file mode 100644
index 0000000..b2bf755
--- /dev/null
+++ b/backend/src/main/java/ovh/herisson/Clyde/EndPoints/PaymentController.java
@@ -0,0 +1,42 @@
+package ovh.herisson.Clyde.EndPoints;
+
+
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+import ovh.herisson.Clyde.Repositories.PaymentRepository;
+import ovh.herisson.Clyde.Responses.UnauthorizedResponse;
+import ovh.herisson.Clyde.Tables.Minerval;
+import ovh.herisson.Clyde.Tables.Payment;
+import ovh.herisson.Clyde.Tables.Role;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.GregorianCalendar;
+
+@RestController
+@CrossOrigin(originPatterns = "*", allowCredentials = "true")
+public class PaymentController {
+
+    private final PaymentRepository paymentRepository;
+
+    public PaymentController(PaymentRepository paymentRepository){
+        this.paymentRepository = paymentRepository;
+    }
+
+    //Post a payment record
+    @PostMapping("/payment")
+    public ResponseEntity<Object> postPayment(@RequestBody Payment payment){
+        paymentRepository.save(payment);
+        return new ResponseEntity<>(HttpStatus.OK);
+    }
+
+
+    //Get all payment records of a student
+    @GetMapping("/payment/{studentRegNo}")
+    public ResponseEntity<ArrayList<Payment>> getPaymentsByUser(@PathVariable long studentRegNo){
+        ArrayList<Payment> toReturn = paymentRepository.getPaymentsByStudentRegNo(studentRegNo);
+        return new ResponseEntity<>(toReturn, HttpStatus.OK);
+    }
+
+}
diff --git a/backend/src/main/java/ovh/herisson/Clyde/Repositories/MinervalRepository.java b/backend/src/main/java/ovh/herisson/Clyde/Repositories/MinervalRepository.java
index 37c46d7..5af1cab 100644
--- a/backend/src/main/java/ovh/herisson/Clyde/Repositories/MinervalRepository.java
+++ b/backend/src/main/java/ovh/herisson/Clyde/Repositories/MinervalRepository.java
@@ -7,4 +7,6 @@ import java.util.ArrayList;
 
 public interface MinervalRepository extends CrudRepository<Minerval, Long> {
     public ArrayList<Minerval> getMinervalsByStudentRegNoOrderByYearDesc(Long studentRegNo);
+
+    public Minerval findById(long id);
 }
diff --git a/backend/src/main/java/ovh/herisson/Clyde/Repositories/PaymentRepository.java b/backend/src/main/java/ovh/herisson/Clyde/Repositories/PaymentRepository.java
new file mode 100644
index 0000000..2e196f4
--- /dev/null
+++ b/backend/src/main/java/ovh/herisson/Clyde/Repositories/PaymentRepository.java
@@ -0,0 +1,10 @@
+package ovh.herisson.Clyde.Repositories;
+
+import org.springframework.data.repository.CrudRepository;
+import ovh.herisson.Clyde.Tables.Payment;
+
+import java.util.ArrayList;
+
+public interface PaymentRepository extends CrudRepository<Payment, Long> {
+    public ArrayList<Payment> getPaymentsByStudentRegNo(long regNo);
+}
diff --git a/backend/src/main/java/ovh/herisson/Clyde/Services/InscriptionService.java b/backend/src/main/java/ovh/herisson/Clyde/Services/InscriptionService.java
index 48e2717..8e31b39 100644
--- a/backend/src/main/java/ovh/herisson/Clyde/Services/InscriptionService.java
+++ b/backend/src/main/java/ovh/herisson/Clyde/Services/InscriptionService.java
@@ -2,14 +2,8 @@ package ovh.herisson.Clyde.Services;
 
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.stereotype.Service;
-import ovh.herisson.Clyde.Repositories.CurriculumRepository;
-import ovh.herisson.Clyde.Repositories.InscriptionRepository;
-import ovh.herisson.Clyde.Repositories.UserCurriculumRepository;
-import ovh.herisson.Clyde.Repositories.UserRepository;
-import ovh.herisson.Clyde.Tables.InscriptionRequest;
-import ovh.herisson.Clyde.Tables.RequestState;
-import ovh.herisson.Clyde.Tables.User;
-import ovh.herisson.Clyde.Tables.UserCurriculum;
+import ovh.herisson.Clyde.Repositories.*;
+import ovh.herisson.Clyde.Tables.*;
 
 @Service
 public class InscriptionService {
@@ -22,14 +16,16 @@ public class InscriptionService {
 
     private final CurriculumRepository curriculumRepo;
 
+    private final MinervalRepository minervalRepository;
     private final BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
 
 
-    public InscriptionService(InscriptionRepository inscriptionRepo, UserRepository userRepo, UserCurriculumRepository userCurriculumRepo, CurriculumRepository curriculumRepo){
+    public InscriptionService(InscriptionRepository inscriptionRepo, UserRepository userRepo, UserCurriculumRepository userCurriculumRepo, CurriculumRepository curriculumRepo, MinervalRepository minervalRepository){
         this.inscriptionRepo = inscriptionRepo;
         this.userRepo = userRepo;
         this.userCurriculumRepo = userCurriculumRepo;
         this.curriculumRepo = curriculumRepo;
+        this.minervalRepository = minervalRepository;
     }
 
     public InscriptionRequest save(InscriptionRequest inscriptionRequest){
@@ -82,6 +78,11 @@ public class InscriptionService {
 
             userRepo.save(userFromRequest);
             userCurriculumRepo.save(new UserCurriculum(userFromRequest, curriculumRepo.findById(inscrRequest.getCurriculumId()),0));
+
+            //Create a minerval for the new student
+            Minerval minerval = new Minerval(userFromRequest.getRegNo(), 0, 852, 2023);
+            minervalRepository.save(minerval);
+
         }
         inscrRequest.setState(requestState);
         save(inscrRequest);
diff --git a/backend/src/main/java/ovh/herisson/Clyde/Tables/Payment.java b/backend/src/main/java/ovh/herisson/Clyde/Tables/Payment.java
new file mode 100644
index 0000000..ae4189e
--- /dev/null
+++ b/backend/src/main/java/ovh/herisson/Clyde/Tables/Payment.java
@@ -0,0 +1,84 @@
+package ovh.herisson.Clyde.Tables;
+
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+
+import java.util.Date;
+
+@Entity
+public class Payment {
+    @Id
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    private long id;
+
+    private long studentRegNo;
+    private String card;
+    private String client;
+    private Date expDate;
+    private int amount;
+    private Date date;
+    public Payment(){}
+
+    public Payment(long studentRegNo, String card, String client, Date expDate, int amount, Date date){
+        this.studentRegNo = studentRegNo;
+        this.card = card;
+        this.client = client;
+        this.expDate = expDate;
+        this.amount = amount;
+        this.date = date;
+    }
+
+    public long getStudentRegNo() {
+        return studentRegNo;
+    }
+
+    public void setStudentRegNo(long studentRegNo) {
+        this.studentRegNo = studentRegNo;
+    }
+
+    public String getCard() {
+        return card;
+    }
+
+    public void setCard(String card) {
+        this.card = card;
+    }
+
+    public String getClient() {
+        return client;
+    }
+
+    public void setClient(String client) {
+        this.client = client;
+    }
+
+    public Date getExpDate() {
+        return expDate;
+    }
+
+    public void setExpDate(Date expDate) {
+        this.expDate = expDate;
+    }
+
+    public int getAmount() {
+        return amount;
+    }
+
+    public void setAmount(int amount) {
+        this.amount = amount;
+    }
+
+    public long getId() {
+        return id;
+    }
+
+    public Date getDate() {
+        return date;
+    }
+
+    public void setDate(Date date) {
+        this.date = date;
+    }
+}
diff --git a/frontend/src/Apps/Inscription.vue b/frontend/src/Apps/Inscription.vue
index 2788cf5..7069c9e 100644
--- a/frontend/src/Apps/Inscription.vue
+++ b/frontend/src/Apps/Inscription.vue
@@ -12,6 +12,9 @@
 
   async function upPage(id,review){
     await validateRegister(id,review);
+    if (review == "Accepted"){
+
+    }
     requests.value = await getAllRegisters();
   }
 </script>
diff --git a/frontend/src/Apps/Profil.vue b/frontend/src/Apps/Profil.vue
index 2471429..4d6052f 100644
--- a/frontend/src/Apps/Profil.vue
+++ b/frontend/src/Apps/Profil.vue
@@ -6,12 +6,15 @@
   import i18n from "@/i18n.js"
   import { uploadProfilePicture } from '@/rest/uploads.js'
   import CourseList from "@/Apps/CourseList.vue";
+  import {editMinerval, getCurrentMinerval} from "@/rest/minerval.js";
+  import {postPayment} from "@/rest/payment.js";
 
   const user = ref(await getSelf());
   const UserCurriculum = ref(""); 
   const curricula = ref (await getAllCurriculums());
-
+  const minerv = ref({});
   if(user.value.role === "Student"){
+    minerv.value = ref(await getCurrentMinerval(user.value.regNo));
     UserCurriculum.value = await getSomeonesCurriculumList(user.value.regNo);
   }
 
@@ -22,7 +25,8 @@
   const curric = ref(false);
   const reg = ref(false);
   const courseslist = ref(false);
-
+  const minerval = ref(false);
+  const paymentPage = ref(false);
   const pattern = {
     profilPictureUrl:null,
     email:null,
@@ -37,7 +41,16 @@
     id:null,
   }
 
-  
+  //Used to modelize a payment
+  const paymentData={
+    studentRegNo: user.value.regNo,
+    date:null,
+    card:null,
+    client:null,
+    expDate:null,
+    amount: null
+  }
+  const paymentAmount = ref(0);
   let toModify= Object.assign({}, pattern);
   let personnalInfos =  Object.assign({}, patternInfos);
   
@@ -117,7 +130,7 @@
       <img class="subContainter" :src=getPP()>
     </div>
       <div class="globalInfos">
-        <div v-if="modif==false && curric==false && reg==false" class="infosContainer">
+        <div v-if="modif==false && curric==false && reg==false && minerval==false && paymentPage == false" class="infosContainer">
           <div>
             {{user.firstName}} {{user.lastName}}   
           </div>
@@ -142,6 +155,42 @@
           </div>
           <div v-if="(user.role==='Student')">
             <button @click="courseslist=!courseslist">Manage Courses</button>
+            <button @click="minerval = !minerval" style="margin-left: 2%">Manage minerval</button>
+          </div>
+        </div>
+        <div v-else-if="minerval" class="infosContainer">
+          <div v-if="minerv.value.toPay != 0">
+            Payment : {{minerv.value.toPay}}€ left to pay
+            <div v-if="minerv.value.paidAmount <= 50">
+              <button @click="minerval = !minerval; paymentPage = !paymentPage; paymentAmount = 50">Pay deposit (50€)</button>
+            </div>
+            <div>
+              <button @click="minerval = !minerval; paymentPage = !paymentPage; paymentAmount = minerv.value.toPay">Pay all the rest ({{minerv.value.toPay}}€)</button>
+            </div>
+          </div>
+          <div v-else>
+            Payment : School fees have already been paid this year
+          </div>
+        </div>
+        <div v-else-if="paymentPage" class="infosContainer">
+          Proceed to payment of {{paymentAmount}}€
+          <div style="margin-top: 1%">
+            Client:
+            <input type="text" v-model="paymentData.client">
+          </div>
+          <div style="margin-top: 1%">
+            Card:
+            <input type="text" v-model="paymentData.card">
+          </div>
+          <div style="margin-top: 1%">
+            ExpDate:
+            <input type="date" v-model="paymentData.expDate">
+          </div>
+          <div style="margin-top: 1%">
+            <button @click="paymentPage=!paymentPage;minerval=!minerval;paymentData.amount=paymentAmount;paymentData.date=new Date();postPayment(paymentData);minerv.value.toPay -= paymentAmount; minerv.value.paidAmount += paymentAmount; editMinerval(minerv.value)">Process Payment</button>
+          </div>
+          <div>
+            <button @click="minerval = !minerval; paymentPage = !paymentPage;">Back</button>
           </div>
         </div>
         <div v-else-if="modif" class="infosContainer">
@@ -207,7 +256,7 @@
           </div>
         </div>
       </div>
-      <div v-if="modif==false && curric==false && reg==false "class="moreInfos">
+      <div v-if="modif==false && curric==false && reg==false && minerval==false"class="moreInfos">
           <div class = "oldcursus">
             <div class="listTitle">
               Anciens Cursus
diff --git a/frontend/src/rest/minerval.js b/frontend/src/rest/minerval.js
new file mode 100644
index 0000000..1606678
--- /dev/null
+++ b/frontend/src/rest/minerval.js
@@ -0,0 +1,9 @@
+import {restGet, restPatch, restPost} from "@/rest/restConsumer.js";
+
+export async function getCurrentMinerval(userRegNo){
+    return restGet("/minerval/"+userRegNo)
+}
+
+export async function editMinerval(updatedMinerval){
+    return restPatch("/minerval", updatedMinerval)
+}
diff --git a/frontend/src/rest/payment.js b/frontend/src/rest/payment.js
new file mode 100644
index 0000000..a194457
--- /dev/null
+++ b/frontend/src/rest/payment.js
@@ -0,0 +1,6 @@
+import {restPost} from "@/rest/restConsumer.js";
+
+export async function postPayment(payment){
+    return restPost("/payment", payment)
+}
+