diff --git a/src/org/openbravo/retail/posterminal/OBPOSComponentProvider.java b/src/org/openbravo/retail/posterminal/OBPOSComponentProvider.java
index 42ee25530..00dee0a5a 100644
--- a/src/org/openbravo/retail/posterminal/OBPOSComponentProvider.java
+++ b/src/org/openbravo/retail/posterminal/OBPOSComponentProvider.java
@@ -398,6 +398,7 @@ public class OBPOSComponentProvider extends BaseComponentProvider {
         businesslogic(
             "app/model/business-object/ticket-list/actions/MarkIgnoreCheckIfIsActiveToPendingTickets"), //
         businesslogic("app/model/business-object/ticket-list/actions/UpdateBPInAllTickets"), //
+        businesslogic("app/model/business-object/ticket-list/actions/DeleteTicket"), //
         businesslogic("app/model/business-object/ticket-list/actions/SaveTicket"), //
 
         // Synchronization Buffer
diff --git a/web/org.openbravo.retail.posterminal/app/model/business-object/ticket-list/actions/DeleteTicket.js b/web/org.openbravo.retail.posterminal/app/model/business-object/ticket-list/actions/DeleteTicket.js
new file mode 100644
index 000000000..d7e6a66f0
--- /dev/null
+++ b/web/org.openbravo.retail.posterminal/app/model/business-object/ticket-list/actions/DeleteTicket.js
@@ -0,0 +1,27 @@
+/*
+ ************************************************************************************
+ * Copyright (C) 2023 Openbravo S.L.U.
+ * Licensed under the Openbravo Commercial License version 1.0
+ * You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
+ * or in the legal folder of this module distribution.
+ ************************************************************************************
+ */
+
+/**
+ * @fileoverview Declares an action that delete the tickets from the state.TicketList
+ */
+OB.App.StateAPI.TicketList.registerAction(
+  'deleteTicket',
+  (ticketList, payload) => {
+    const newTicketList = [...ticketList];
+    payload.ticketIdList.forEach(ticketIdToDelete => {
+      const index = newTicketList.findIndex(
+        ticket => ticket.id === ticketIdToDelete
+      );
+      if (index >= 0) {
+        newTicketList.splice(index, 1);
+      }
+    });
+    return newTicketList;
+  }
+);
diff --git a/web/org.openbravo.retail.posterminal/js/components/modal-pay-open-tickets.js b/web/org.openbravo.retail.posterminal/js/components/modal-pay-open-tickets.js
index f822df5df..a49d55483 100644
--- a/web/org.openbravo.retail.posterminal/js/components/modal-pay-open-tickets.js
+++ b/web/org.openbravo.retail.posterminal/js/components/modal-pay-open-tickets.js
@@ -410,6 +410,7 @@ enyo.kind({
       j,
       wrongOrder,
       firstCheck = true,
+      currentTicket = OB.App.State.getState().Ticket,
       cancellingOrdersToCheck = OB.App.State.TicketList.Utils.getAllTickets(),
       showSomeOrderIsPaidPopup;
 
diff --git a/web/org.openbravo.retail.posterminal/js/data/windowmodel.js b/web/org.openbravo.retail.posterminal/js/data/windowmodel.js
index 04b2145ab..e089a2f27 100644
--- a/web/org.openbravo.retail.posterminal/js/data/windowmodel.js
+++ b/web/org.openbravo.retail.posterminal/js/data/windowmodel.js
@@ -13,27 +13,15 @@ OB.Model.WindowModel = Backbone.Model.extend({
   data: {},
 
   load: function() {
-    var me = this;
     if (!this.models) {
       this.models = [];
     }
 
     _.extend(this.models, Backbone.Events);
-
-    if (!OB.MobileApp.model.get('loggedOffline')) {
-      OB.Dal.loadModels(true, this.models, this.data, undefined, function() {
-        if (me.init) {
-          me.init();
-        }
-        me.trigger('ready');
-      });
-    } else {
-      if (this.init) {
-        this.init();
-      }
-      this.trigger('ready');
+    if (this.init) {
+      this.init();
     }
-    //TODO: load offline models when regesitering window
+    this.trigger('ready');
   },
 
   setAllOff: function(model) {
diff --git a/web/org.openbravo.retail.posterminal/js/login/model/login-model.js b/web/org.openbravo.retail.posterminal/js/login/model/login-model.js
index 4c9e5b1df..f1b812529 100644
--- a/web/org.openbravo.retail.posterminal/js/login/model/login-model.js
+++ b/web/org.openbravo.retail.posterminal/js/login/model/login-model.js
@@ -68,13 +68,10 @@
         },
         // setting here the localDB, overrides the OB.MobileApp.model localDB default
         localDB: {
-          size:
-            OB.UTIL.VersionManagement.current.posterminal.WebSQLDatabase.size,
-          name:
-            OB.UTIL.VersionManagement.current.posterminal.WebSQLDatabase.name,
+          size: OB.UTIL.VersionManagement.current.posterminal.database.size,
+          name: OB.UTIL.VersionManagement.current.posterminal.database.name,
           displayName:
-            OB.UTIL.VersionManagement.current.posterminal.WebSQLDatabase
-              .displayName
+            OB.UTIL.VersionManagement.current.posterminal.database.displayName
         },
         logDBTrxThreshold: 300,
         logDBStmtThreshold: 1000,
diff --git a/web/org.openbravo.retail.posterminal/js/main.js b/web/org.openbravo.retail.posterminal/js/main.js
index 80903eb29..a58fe24f9 100644
--- a/web/org.openbravo.retail.posterminal/js/main.js
+++ b/web/org.openbravo.retail.posterminal/js/main.js
@@ -1,6 +1,6 @@
 /*
  ************************************************************************************
- * Copyright (C) 2012-2019 Openbravo S.L.U.
+ * Copyright (C) 2012-2023 Openbravo S.L.U.
  * Licensed under the Openbravo Commercial License version 1.0
  * You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
  * or in the legal folder of this module distribution.
@@ -44,9 +44,9 @@
   /**
    * Global versions for WebPOS
    */
-  // Add the current WebSQL database version for WebPOS
+  // Add the current database version for WebPOS
   OB.UTIL.VersionManagement.current.posterminal = {
-    WebSQLDatabase: {
+    database: {
       name: 'WEBPOS',
       size: 50 * 1024 * 1024,
       displayName: 'Openbravo Web POS'
diff --git a/web/org.openbravo.retail.posterminal/js/utils/ticketListUtils.js b/web/org.openbravo.retail.posterminal/js/utils/ticketListUtils.js
index 6e74df82d..593a1c9bc 100644
--- a/web/org.openbravo.retail.posterminal/js/utils/ticketListUtils.js
+++ b/web/org.openbravo.retail.posterminal/js/utils/ticketListUtils.js
@@ -1028,29 +1028,28 @@
     ).filter(ticket => ticket.hasbeenpaid === 'N');
 
     if (ordersNotProcessed.length > 0) {
-      var existingOrder = _.find(ordersNotProcessed.models, function(order) {
+      const existingOrder = ordersNotProcessed.find(order => {
         return (
-          order.get('id') === model.get('id') ||
-          order.get('oldId') === model.get('id') ||
-          (order.get('canceledorder') &&
-            order.get('canceledorder').get('id') === model.get('id'))
+          order.id === model.get('id') ||
+          order.oldId === model.get('id') ||
+          (order.canceledorder && order.canceledorder.id === model.get('id'))
         );
       });
       if (existingOrder) {
         orderTypeMsg = OB.I18N.getLabel('OBPOS_ticket');
-        if (existingOrder.get('isLayaway')) {
+        if (existingOrder.isLayaway) {
           orderTypeMsg = OB.I18N.getLabel('OBPOS_LblLayaway');
-        } else if (existingOrder.get('isQuotation')) {
+        } else if (existingOrder.isQuotation) {
           orderTypeMsg = OB.I18N.getLabel('OBPOS_Quotation');
         }
         // Getting Other Session User's username
 
-        OB.App.OfflineSession.sessionWithId(existingOrder.get('session'))
+        OB.App.OfflineSession.sessionWithId(existingOrder.session)
           .then(session => {
             if (!session) {
               return null;
             }
-            return OB.App.OfflineSession.withId(this.model.get('updatedBy'));
+            return OB.App.OfflineSession.withId(existingOrder.updatedBy);
           })
           .then(user => {
             if (!user) {
@@ -1060,7 +1059,7 @@
               enyo.format(
                 OB.I18N.getLabel('OBPOS_ticketAlreadyOpenedInSession'),
                 orderTypeMsg,
-                existingOrder.get('documentNo'),
+                existingOrder.documentNo,
                 user.name
               ),
               enyo.format(
@@ -1071,14 +1070,11 @@
                 {
                   label: OB.I18N.getLabel('OBMOBC_LblOk'),
                   action: function() {
-                    //replace for state action that removes ticket in ticketlist
-                    OB.Dal.remove(
-                      existingOrder,
-                      function() {
-                        callback(model);
-                      },
-                      OB.UTIL.showError
-                    );
+                    OB.App.State.TicketList.deleteTicket({
+                      ticketIdList: [existingOrder.id]
+                    }).then(() => {
+                      callback(model);
+                    });
                   }
                 },
                 {
