diff --git a/backend/src/controller/OrdersController.ts b/backend/src/controller/OrdersController.ts
index fe0b353049a8b2cf3f1453019a60e2bc0924e279..2c58e20e0c77a206d537a9f9d6bf614ef0cfd37e 100644
--- a/backend/src/controller/OrdersController.ts
+++ b/backend/src/controller/OrdersController.ts
@@ -8,6 +8,12 @@ class OrdersController {
         try {
             const new_order = new Orders();
             new_order.id = req.body.id;
+            if (new_order.id == null || new_order.id == undefined) {
+                await new OrdersRepo().getMaxId().then((value: number) => {
+                    new_order.id = value + 1;
+                });
+            }
+
             new_order.id_table = req.body.id_table;
             new_order.id_tenant = req.body.id_tenant;
             new_order.status = req.body.status;
diff --git a/backend/src/controller/PaymentsController.ts b/backend/src/controller/PaymentsController.ts
index 131c701e679a49fd06e19daec9d8128eae11cfeb..3bec7c73af9c04eda9c804e211ea7b2303c020ef 100644
--- a/backend/src/controller/PaymentsController.ts
+++ b/backend/src/controller/PaymentsController.ts
@@ -7,6 +7,11 @@ class PaymentsController {
         try {
             const new_payment = new Payments();
             new_payment.id = req.body.id;
+            if (new_payment.id == null || new_payment.id == undefined) {
+                await new PaymentsRepo().getMaxId().then((value: number) => {
+                    new_payment.id = value + 1;
+                });
+            }
             new_payment.id_order = req.body.id_order;
             new_payment.status = req.body.status;
 
diff --git a/backend/src/repository/OrdersRepo.ts b/backend/src/repository/OrdersRepo.ts
index 8760b7005aabf25c2857232ccd360912322bdbfc..8793ef66cb91e48489dec4e4164ea1f301689fb6 100644
--- a/backend/src/repository/OrdersRepo.ts
+++ b/backend/src/repository/OrdersRepo.ts
@@ -1,5 +1,6 @@
 // OrdersRepo.ts
 /* eslint-disable no-unused-vars */
+import { type } from "os";
 import { Orders } from "../model/Orders";
 
 interface IOrdersRepo {
@@ -31,6 +32,18 @@ export default class OrdersRepo implements IOrdersRepo {
         }
     }
 
+    async getMaxId(): Promise<number> {
+        try {
+            const maxId = await Orders.max("id");
+            if (maxId != null && typeof maxId === "number") {
+                return maxId;
+            }
+            return 0;
+        } catch (error: any) {
+            throw new Error(`Error while fetching max id: ${error.message}`);
+        }
+    }
+
     async createOrder(order: Orders): Promise<void> {
         try {
             await Orders.create({
diff --git a/backend/src/repository/PaymentsRepo.ts b/backend/src/repository/PaymentsRepo.ts
index 7d92940cf65e7a6c2d15440a238bbfff36915bce..296d92404b8ca4a85fa47a470a0700bc5b9dccb2 100644
--- a/backend/src/repository/PaymentsRepo.ts
+++ b/backend/src/repository/PaymentsRepo.ts
@@ -33,6 +33,18 @@ export default class PaymentsRepo implements IPaymentsRepo {
         }
     }
 
+    async getMaxId(): Promise<number> {
+        try {
+            const maxId = await Payments.max("id");
+            if (maxId != null && typeof maxId === "number") {
+                return maxId;
+            }
+            return 0;
+        } catch (error: any) {
+            throw new Error(`Error while fetching max id: ${error.message}`);
+        }
+    }
+
     async createPayment(payment: Payments): Promise<void> {
         try {
             await Payments.create({