5

We've just switched from Woocommerce to the latest Magento2.1 and we are having problems with payments and refunds. There is no online refund option for credit memo, just offline refund. We are integrated with Braintree. When trying to do partial refund from Braintree panel, there is no such option either. Whole transaction must be voided.

Thanks

0

3 Answers 3

16

There are two ways to do this:

1 - Partial Refund in Braintree

  • Login in to the braintreepayments website
  • Do a transaction search and find the transaction
  • Click the transaction ID to open
  • Press refund, this takes you to a new screen
  • Either confirm the full amount or enter the partial amount and press submit

enter image description here

2 - To do an online refund in Magento 2

  • Online refunds are done from the Invoice not the Order
  • So, open the order, click on "invoices" tab on the left hand side
  • You will get an invoice listing for that order, click the invoice you want to refund, most likely to be only one
  • Then press credit memo - top right hand corner
  • Complete the particulars and press refund [not offline refund]
  • It will then be sent to Braintree to refund enter image description here
2
  • 1
    Not sure why this was down voted, it's the correct answer, I use this functionality with Braintree every day
    – Rudi
    Jan 23, 2017 at 9:56
  • Perhaps, your answer contains steps but doesn't contain an answer why a user should do the first step to being able to process the online refund.
    – joni jones
    Jan 27, 2017 at 15:26
3

Do you use a sandbox or production Braintree account?

Also, you cannot process online refund before Braintree does not set a transaction to settle or settling status.

Braintree_Transaction::refund

For testing purposes you can write a script to settle sandbox transactions, something like this:

$gateway = new Braintree\Gateway([
    'environment' => 'sandbox',
    'merchantId' => 'your merchant key',
    'publicKey' => 'your public key',
    'privateKey' => 'your private key'
]);
$transactionId = 'some transaction id';
$gateway->testing()->settle($transactionId);
1
  • 1
    Does the "Online" M2 admin refunding not work in the Sandbox Braintree account?
    – thaddeusmt
    Dec 14, 2017 at 1:53
2

Also, the online refund ("Refund" button at the right of the "Offline Refund" button) is shown only when the invoice has a transaction_id defined by the payment gateway. If it is null only the offline refund button will be shown.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.