diff --git a/src/org/openbravo/retail/posterminal/ExternalOrderLoader.java b/src/org/openbravo/retail/posterminal/ExternalOrderLoader.java
--- a/src/org/openbravo/retail/posterminal/ExternalOrderLoader.java
+++ b/src/org/openbravo/retail/posterminal/ExternalOrderLoader.java
@@ -373,7 +373,13 @@
       orderJson.put("generateShipment", false);
       orderJson.put("isLayaway", false);
     } else if ("pay".equals(step)) {
-      orderJson.put("payment", -1);
+      BigDecimal paidAmount = new BigDecimal("-1");
+      if (orderJson.has("payment")) {
+        paidAmount = new BigDecimal(orderJson.optLong("payment"));
+      }
+      final Order order = OBDal.getInstance().get(Order.class, orderJson.getString(Order.ID));
+      paidAmount = paidAmount.add(order.getFINPaymentSchedOrdVList().get(0).getReceived());
+      orderJson.put("payment", paidAmount);
       orderJson.put("generateInvoice", false);
       orderJson.put("generateShipment", false);
       orderJson.put("isLayaway", true);
diff --git a/src/org/openbravo/retail/posterminal/OrderLoader.java b/src/org/openbravo/retail/posterminal/OrderLoader.java
--- a/src/org/openbravo/retail/posterminal/OrderLoader.java
+++ b/src/org/openbravo/retail/posterminal/OrderLoader.java
@@ -343,19 +343,21 @@
           if (jsonorder.has("oBPOSNotInvoiceOnCashUp")) {
             order.setOBPOSNotInvoiceOnCashUp(jsonorder.getBoolean("oBPOSNotInvoiceOnCashUp"));
           }
-          List<OrderLine> lstResultOL = getOrderLineList(order);
+          if (createShipment) {
+            List<OrderLine> lstResultOL = getOrderLineList(order);
 
-          for (int i = 0; i < lstResultOL.size(); i++) {
-            orderLine = lstResultOL.get(i);
-            JSONObject jsonOrderLine = orderlines.getJSONObject(i);
-            orderLine
-                .setObposCanbedelivered(jsonOrderLine.optBoolean("obposCanbedelivered", false));
-            BigDecimal qtyToDeliver = jsonOrderLine.has("availableQtyToDeliver") ? new BigDecimal(
-                jsonOrderLine.getDouble("availableQtyToDeliver")) : (jsonOrderLine
-                .has("obposQtytodeliver") ? new BigDecimal(
-                jsonOrderLine.getDouble("obposQtytodeliver")) : orderLine.getOrderedQuantity());
-            orderLine.setDeliveredQuantity(qtyToDeliver);
-            lineReferences.add(orderLine);
+            for (int i = 0; i < lstResultOL.size(); i++) {
+              orderLine = lstResultOL.get(i);
+              JSONObject jsonOrderLine = orderlines.getJSONObject(i);
+              orderLine.setObposCanbedelivered(jsonOrderLine.optBoolean("obposCanbedelivered",
+                  false));
+              BigDecimal qtyToDeliver = jsonOrderLine.has("availableQtyToDeliver") ? new BigDecimal(
+                  jsonOrderLine.getDouble("availableQtyToDeliver")) : (jsonOrderLine
+                  .has("obposQtytodeliver") ? new BigDecimal(
+                  jsonOrderLine.getDouble("obposQtytodeliver")) : orderLine.getOrderedQuantity());
+              orderLine.setDeliveredQuantity(qtyToDeliver);
+              lineReferences.add(orderLine);
+            }
           }
         } else if (partialpaidLayaway) {
           order = OBDal.getInstance().get(Order.class, jsonorder.getString("id"));
