diff -r 340c28bbf70f web/org.openbravo.retail.posterminal/js/data/dataordersave.js
--- a/web/org.openbravo.retail.posterminal/js/data/dataordersave.js	Tue May 30 17:22:38 2017 +0200
+++ b/web/org.openbravo.retail.posterminal/js/data/dataordersave.js	Thu Jun 01 11:32:17 2017 +0200
@@ -229,21 +229,24 @@
             var synErrorCallback = function () {
                 if (OB.MobileApp.model.hasPermission('OBMOBC_SynchronizedMode', true)) {
                   // rollback other changes
-                  receipt.set('hasbeenpaid', 'N');
-                  frozenReceipt.set('hasbeenpaid', 'N');
-                  OB.Dal.save(receipt, function () {
-                    OB.UTIL.calculateCurrentCash();
+                  OB.Dal.get(OB.Model.Order, receipt.get('id'), function (loadedReceipt) {
+                    receipt.clearWith(loadedReceipt);
+                    receipt.set('hasbeenpaid', 'N');
+                    frozenReceipt.set('hasbeenpaid', 'N');
+                    OB.Dal.save(receipt, function () {
+                      OB.UTIL.calculateCurrentCash();
 
-                    if (eventParams && eventParams.callback) {
-                      eventParams.callback({
-                        frozenReceipt: frozenReceipt,
-                        isCancelled: true
-                      });
-                      receipt.setIsCalculateReceiptLockState(false);
-                      receipt.setIsCalculateGrossLockState(false);
-                      receipt.trigger('paymentCancel');
-                    }
-                  }, null, false);
+                      if (eventParams && eventParams.callback) {
+                        eventParams.callback({
+                          frozenReceipt: frozenReceipt,
+                          isCancelled: true
+                        });
+                        receipt.setIsCalculateReceiptLockState(false);
+                        receipt.setIsCalculateGrossLockState(false);
+                        receipt.trigger('paymentCancel');
+                      }
+                    }, null, false);
+                  });
                 } else if (eventParams && eventParams.callback) {
                   eventParams.callback({
                     frozenReceipt: frozenReceipt,
@@ -339,11 +342,9 @@
     this.receipt.on('closed', function (eventParams) {
       var context = this;
       if (OB.MobileApp.model.hasPermission('OBMOBC_SynchronizedMode', true)) {
-        OB.MobileApp.model.setSynchronizedCheckpoint(function () {
-          OB.UTIL.rebuildCashupFromServer(function () {
-            OB.UTIL.showLoading(false);
-            mainReceiptCloseFunction(eventParams, context);
-          });
+        OB.UTIL.rebuildCashupFromServer(function () {
+          OB.UTIL.showLoading(false);
+          mainReceiptCloseFunction(eventParams, context);
         });
       } else {
         mainReceiptCloseFunction(eventParams, context);
diff -r 340c28bbf70f web/org.openbravo.retail.posterminal/js/pointofsale/model/pointofsale-model.js
--- a/web/org.openbravo.retail.posterminal/js/pointofsale/model/pointofsale-model.js	Tue May 30 17:22:38 2017 +0200
+++ b/web/org.openbravo.retail.posterminal/js/pointofsale/model/pointofsale-model.js	Thu Jun 01 11:32:17 2017 +0200
@@ -476,9 +476,17 @@
 
     receipt.on('paymentDone', function (openDrawer) {
       var isOrderCancelledProcess = new OB.DS.Process('org.openbravo.retail.posterminal.process.IsOrderCancelled'),
-          triggerPaymentAccepted;
+          triggerPaymentAccepted, triggerPaymentAcceptedImpl;
 
       triggerPaymentAccepted = function () {
+        if (OB.MobileApp.model.hasPermission('OBMOBC_SynchronizedMode', true)) {
+          OB.MobileApp.model.setSynchronizedCheckpoint(triggerPaymentAcceptedImpl);
+        } else {
+          triggerPaymentAcceptedImpl();
+        }
+      };
+
+      triggerPaymentAcceptedImpl = function () {
         if (receipt.get('doCancelAndReplace') && receipt.get('replacedorder')) {
           isOrderCancelledProcess.exec({
             orderId: receipt.get('replacedorder'),
