17

We use UsaEPay payment system for our site (But I think this problem/question persists for other payment methods as well).

The way the system works is, that the "Authorize and Capture" batches the transaction, and every night UsaEPay sends the orders to the bank for final processing.

Now the refund method would not work because prior to batching, only voiding is available.

There's no Void button in the backend only Refund (Which throws a backend error the same day).

Any ideas on voiding A&C orders?

3
  • Did you try Cancelling the order? Also Refund internally in the module could do void as well - seems like extension specific issue Commented Jan 22, 2013 at 22:07
  • This depends on what do you call "voiding". Do you need to send a request to the bank to cancel processing and make a refund or just cancel order in Magento backend? Commented Jan 22, 2013 at 22:34
  • By Void I mean calling the void API call to the gateway. If the CC order was not batched yet (Sent to Bank), only Void will work and refund would get declined
    – boruch
    Commented Jan 23, 2013 at 14:41

2 Answers 2

8

I had to work on a very similar task with Braintree, in that they also only allowed refunds after the order was settled & you could only void before that. This is not a core Magento bug as it is something specific to (some) payment gateways. Also the specific api calls differ, so it makes sense that the Magento team cannot provide a general solution.

The solution that would apply to this case is to do an AJAX call, see if the transaction is not settled and if so do a "void" call instead of a "refund". Unless the UsaEPay module vendor would do this for you, it is something that you should implement.

4
  • +1 and accepted - I thought so :) Thanks for your reply. Any pointers? My initial thought is to listen to magento's refund event and redirect the call to void() (If same day) but how to stop the call from going to UEP's refund() afterwards and throwing an error?
    – boruch
    Commented Jan 23, 2013 at 14:40
  • This really depends on the USAEPay code. I guess you can just override the refund controller and call void if same day, or just call the parent (original) action if more than one day has passed. Commented Jan 25, 2013 at 15:45
  • I know, but I was preferring non obtrusive coding :)
    – boruch
    Commented Jan 27, 2013 at 12:49
  • Anyone help me, after void the order from PayPal why i can't cancel the order from magento.
    – zus
    Commented Jul 18, 2018 at 4:33
7

I can't say for sure about UsaEPay, but you can only void an order that has not been invoiced when using authorize.net. in authorize.net, when you 'authorize and capture', voiding is no longer possible. perhaps it's the same with UsaEPay?

1
  • Anyone help me, after void the order from PayPal why i can't cancel the order from magento.
    – zus
    Commented Jul 18, 2018 at 4:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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