diff --git a/web/org.openbravo.retail.posterminal/app/model/business-object/cashup/actions/InitCashup.js b/web/org.openbravo.retail.posterminal/app/model/business-object/cashup/actions/InitCashup.js
index 1c601b9b0..0dc0bbae0 100644
--- a/web/org.openbravo.retail.posterminal/app/model/business-object/cashup/actions/InitCashup.js
+++ b/web/org.openbravo.retail.posterminal/app/model/business-object/cashup/actions/InitCashup.js
@@ -159,7 +159,7 @@
           currentCashupIsProcessed.data &&
           currentCashupIsProcessed.data[0]
         ) {
-          // if current cashup is processed in the backend, we will start a new one from scratch
+          // if current cashup is pending to send to backend, we will start a new one from scratch
           currentCashupProcessedInBackend = true;
           const logEvent = OB.App.State.TerminalLog.Utils.getNewEvent(state);
           const logMessagePayload = {
@@ -176,6 +176,50 @@
       } catch (error) {
         lastBackendCashupResponse = null;
       }
+      try {
+        const pendingMessages = await OB.App.SynchronizationBuffer.getPendingMessages();
+        const currentCashupPendingToSend = pendingMessages.find(
+          msg =>
+            msg.modelName === 'OBPOS_CashUp' &&
+            msg.messageObj.data[0].id === state.Cashup.id
+        );
+        if (currentCashupPendingToSend) {
+          newPayload.initCashupFrom = 'scratch';
+          newPayload.lastCashUpPayments =
+            currentCashupPendingToSend.messageObj.data[0].cashPaymentMethodInfo;
+
+          // generate log
+          const logEvent = OB.App.State.TerminalLog.Utils.getNewEvent(state);
+          const logMessagePayload = {
+            event: logEvent,
+            level: 'error',
+            msg: `[statePersistance] Creating a cashup from scratch because local cashup. [${state.Cashup.id}] is stored in message table and it is pending to send to the backend`,
+            context: 'refresh(F5)'
+          };
+          newPayload.logMessages = [
+            ...(newPayload.logMessages || []),
+            logMessagePayload
+          ];
+          return newPayload;
+        }
+      } catch (error) {
+        // generate log
+        const logEvent = OB.App.State.TerminalLog.Utils.getNewEvent(state);
+        const logMessagePayload = {
+          event: logEvent,
+          level: 'error',
+          msg: `[statePersistance] Error checking if the cashup with id [${
+            state.Cashup.id
+          }] is pending to synchronize in message table : ${error.message ||
+            error}`,
+          context: 'refresh(F5)'
+        };
+        newPayload.logMessages = [
+          ...(newPayload.logMessages || []),
+          logMessagePayload
+        ];
+      }
+
       if (
         OB.App.State.Cashup.Utils.isValidTheLocalCashup(state.Cashup) &&
         !currentCashupProcessedInBackend
