When using authorize.net as payment gateway,

why does it set transaction_id to null on the invoice generated when authorize.net returns a suspected fraud code. Later when the transaction is approved on authroize.net and I run get payment update to so that it changes the magento order state to processing allowing me to ship the product which is all fine.

Then later if I need to perform a credit memo on this transaction I can't. After tracing all the conditionals in magento I realized it was because "transaction_id" is set to null on all authorize.net suspected fraud transactions. This needs to be set to 1 in order for the refund option to be given.

Are there any explanations on why the behavior is like this and if there are any solutions to this?

2 Answers 2


In your above scenario there is some more question arise.

  1. Your authorize.net set in which mode? authorize or authorize and capture?
  2. When authorize.net returns suspected fraud code at that time it actually capture the payment from customer or not? if not capture payment it should not generate invoice.
  3. When authorize.net approve transaction and you run get payment update your order state change to processing but at that time do you get any transaction_id in your response or not. if you get and your invoice already generated might you need to update your invoice and fill the transaction_id pragmatically if you want to create credit memo online by using same authorize.net.

The easiest solution is to refund off-line if this happen rarely. to refund payment off-line and on-line also there is different way check below link for details Credit memo vs Refund Which one is true? Magento 1.9

  • 1. auth and capture.
    – David
    Apr 16, 2018 at 21:21
  • disregard comment above. 1. auth and capture. 2. It captures put places hold obviously. 3. It does not get the transaction id when I do get payment update cause thats why I'm asking this question. For some reason I can't run a credit memo once something is approved from authorize.net
    – David
    Apr 16, 2018 at 21:45

When you run payment update if you do not get transaction id in your magento, have you checked transaction id created in authorize.net merchant admin? if you got in authorize.net then also it can be helpful.

if you got transaction id in your authorize.net merchant center than also by specifying extra variable or might some code change can solve your problem.

I had faced same type of issue in another payment module named Klarna and I resolved it by overwrite method and add one extra text field where I specified invoice Id generated in klarna to create online creditmemo.

Your Answer

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

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