15

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?

  • Did you try Cancelling the order? Also Refund internally in the module could do void as well - seems like extension specific issue – Piotr Kaminski Jan 22 '13 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? – user487772 Jan 22 '13 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 Jan 23 '13 at 14:41
7

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.

  • +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 Jan 23 '13 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. – Paul Grigoruta Jan 25 '13 at 15:45
  • I know, but I was preferring non obtrusive coding :) – boruch Jan 27 '13 at 12:49
  • Anyone help me, after void the order from PayPal why i can't cancel the order from magento. – zus Jul 18 '18 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 - It is the same, but how can I void in our use scenario? – boruch Jan 23 '13 at 14:36
  • Anyone help me, after void the order from PayPal why i can't cancel the order from magento. – zus Jul 18 '18 at 4:33

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.