diff --git a/vendor/payuindia/payu/Helper/Payu.php b/vendor/payuindia/payu/Helper/Payu.php
index bac65a9..30cd664 100644
--- a/vendor/payuindia/payu/Helper/Payu.php
+++ b/vendor/payuindia/payu/Helper/Payu.php
@@ -261,17 +261,17 @@ class Payu extends AbstractHelper
             $billingAddress->setDiscountDescription($discountDescription);
             $billingAddress->setBaseDiscountAmount($customDiscount);
         }
-
+ 
         $order->setSubtotal((float) $order->getSubTotal());
         $order->setBaseSubtotal((float) $order->getBaseSubtotal());
         $order->setGrandTotal((float) $order->getGrandTotal());
         $order->setBaseGrandTotal((float) $order->getBaseGrandTotal());
         $order->addStatusHistoryComment('discount-' . $existingDiscount . 'payu discount-' . $customDiscount);
         $order->save();
-
+ 
         $order->setBaseTotalInvoiced($order->getGrandTotal());
         $order->setTotalInvoiced($order->getGrandTotal());
-
+ 
         $payment = $order->getPayment();
         $payment->setBaseAmountPaid($order->getGrandTotal());
         $payment->setAmountPaid($order->getGrandTotal());
@@ -279,6 +279,7 @@ class Payu extends AbstractHelper
         $payment->setAmountOrdered($order->getGrandTotal());
         $payment->save();
         $totalNew = 0;
+        $totalNewTaxAmount = 0;
         $orderParent = [];
         foreach ($order->getAllItems() as $item) {
                 $orderParent[$item->getItemId()] = $item;
@@ -291,17 +292,40 @@ class Payu extends AbstractHelper
         foreach ($order->getAllItems() as $item) {
              if($item->getProductType() !="bundle" && $item->getProductType() !="soft") {
                      if($item->getParentItemId() == null || ($orderParent[$item->getParentItemId()]->getProductType() =="bundle" || $orderParent[$item->getParentItemId()]->getProductType() =="soft"))
-                     { 
+                     {
                         $itemPriceInclTax = ($item->getPriceInclTax() * $item->getQtyOrdered()) - $item->getDiscountAmount();
                         $discountRatio = $itemPriceInclTax / $totalNew;
                         $itemDiscountAmount = $discountRatio * abs($customDiscount);
                         $item->setBaseDiscountAmount($item->getBaseDiscountAmount() + $itemDiscountAmount);
                         $item->setDiscountAmount($item->getDiscountAmount() + $itemDiscountAmount);
+                        //calculate new tax and  discount tax compensation amount
+                        $oldTaxAmount = $item->getTaxAmount();
+                        $newTaxAmount=  round(($itemPriceInclTax - $itemDiscountAmount) /( 1 + $item->getTaxPercent()/100)*($item->getTaxPercent()/100),2);
+                        $totalNewTaxAmount += $newTaxAmount;
+                        $discountTaxCompensationAmount = $oldTaxAmount - $newTaxAmount;
+                        $item->setTaxAmount($newTaxAmount);
+                        $item->setBaseTaxAmount($newTaxAmount);
+                        $item->setDiscountTaxCompensationAmount(
+                            $item->getDiscountTaxCompensationAmount() + $discountTaxCompensationAmount
+                        );
+                        $item->setBaseDiscountTaxCompensationAmount(
+                            $item->getBaseDiscountTaxCompensationAmount() + $discountTaxCompensationAmount
+                        );
                         $item->save();
                      }
              }
         }
-
+        // Adjust new tax and  discount tax compensation amount order level
+        $orderOldTaxAmount = $order->getTaxAmount();
+        $orderDiscountTaxCompensationAmount = $orderOldTaxAmount - $totalNewTaxAmount;
+        $order->setTaxAmount($totalNewTaxAmount);
+        $order->setBaseTaxAmount($totalNewTaxAmount);
+        $order->setDiscountTaxCompensationAmount(
+            $order->getDiscountTaxCompensationAmount() + $orderDiscountTaxCompensationAmount
+        );
+        $order->setBaseDiscountTaxCompensationAmount(
+            $order->getBaseDiscountTaxCompensationAmount() + $orderDiscountTaxCompensationAmount
+        );
         $order->save();
     }
     public function getTxnIdByOrder($order)
