- $canRefundMore = $payment->getCreditmemo()->getInvoice()->canRefund();
- $isFullRefund = !$canRefundMore &&
- 0 == (double)$order->getBaseTotalOnlineRefunded() + (double)$order->getBaseTotalOfflineRefunded();
- $api->setRefundType(
- $isFullRefund ? \Magento\Paypal\Model\Config::REFUND_TYPE_FULL : \Magento\Paypal\Model\Config::REFUND_TYPE_PARTIAL
- );
- $api->callRefundTransaction();
- $this->_importRefundResultToPayment($api, $payment, $canRefundMore);