0

I'm using VBA in an Access application to pass credit card applications to Authorize.net.

In the Sandbox, when I issue a request and get a response, the response looks like:

1|1|1|This transaction has been approved.|MKCE58|Y|60138643909|06731|Company name|15.00|CC|auth_capture|||||||||||||||||||||||||||P|2|||||||||||XXXX1111|Visa|||||||1UMB1CSPUW5QIHHZIATBZCO||||||||||

Which element of this response string is the value that I must capture and use when issuing a refund of this transaction?

When I attempt to refund the transaction using either the "MKCE58" or "60138643909" as the TransactionID in:

post_string = post_string & "x_trans_id=" & URLEncode(strTransID) & "&"

I get a response of:

"The referenced transaction does not meet the criteria for issuing a credit."

I found a very old post here on SO that indicates that I need to change my account mode from Live to Test, and I did that. But that has not resolved this situation.

RubberBee
  • 150
  • 9
dbWizard
  • 122
  • 8

1 Answers1

0

It looks like you are using the AIM API, so the seventh value in that pipe delimited field, 60138643909, is the transaction ID which is what you will use to request a refund.

To issue a refund the following criteria must all be met:

  • The transaction was originally processed and successfully settled through the payment gateway (Authorize.Net).
  • The transaction is submitted with the valid transaction ID (x_trans_id) of an original, successfully settled transaction.
  • The amount being requested for refund is less than or equal to the original settled amount.
  • The sum of multiple Credit transactions submitted against the original transaction is less than or equal to the original settled amount.
  • At least the last four digits of the credit card number (x_card_num) used for the original, successfully settled transaction are submitted. An expiration date is not required.
  • The transaction is submitted within 120 days of the settlement date of the original transaction.
John Conde
  • 217,595
  • 99
  • 455
  • 496
  • I'm still getting the response: The referenced transaction does not meet the criteria for issuing a credit. I get this error when attempting to post the refund about a minute after the original transaction is posted. This is what the response looks like: 3|2|54|The referenced transaction does not meet the criteria for issuing a credit.||P|0||Refund|15.00|CC|credit|||||||||||||||||||||||||||||||||||||||XXXX1111|Visa||||||||||||||||| after passing in the full card #, Amount, TrasactionID from the original request. – dbWizard Mar 04 '20 at 20:53
  • 1
    You can't refund a transaction you just sent because it isn't available to be refunded until after that batch settles overnight. (See bullet point #1). If you want to cancel a transaction immediately or same day you need to run a VOID. – John Conde Mar 04 '20 at 21:36
  • John, how do you implement a "void", what is different in the request compared to a refund? – dbWizard Mar 05 '20 at 22:05
  • 1
    `x_type=VOID`. You also need to send over the transaction ID – John Conde Mar 06 '20 at 00:33