diff --git a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_PaymentProcess.java b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_PaymentProcess.java
--- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_PaymentProcess.java
+++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_PaymentProcess.java
@@ -134,9 +134,12 @@
         boolean isRefund = false;
         OBContext.setAdminMode(false);
         try {
-          if (payment.getFINPaymentDetailList().size() > 0
-              && payment.getFINPaymentDetailList().get(0).isRefund()) {
-            isRefund = true;
+          if (payment.getFINPaymentDetailList().size() > 0) {
+            for (FIN_PaymentDetail det : payment.getFINPaymentDetailList()) {
+              if (det.isRefund()) {
+                isRefund = true;
+              }
+            }
           }
         } finally {
           OBContext.restorePreviousMode();
