Authorize.net Payment Gateway Errors
There is a ton of resources available at the Authorize.net Developer Center for developers like us. If you have spent hours developing payment gateways like us you know the frustration that it can cause. We develop payment gateways for many different companies and various e-commerce platforms. We recently completed our Authorize.net Payment Gateway for WooCommerce and decided to share some information for other developers out there. Everything you find on this page is available on the web and specifically on the Authorize.net Developer Center website. We will not get in to specific coding methods here -- simply identify some of the more common programmatic errors you can encounter when developing a payment integration for Authorize.net.
Firstly, it is worth mentioning that there are a ton of pre-made integrations for many different platforms available. We always recommend looking for available plugins and extensions before coding your own custom one as that method is certainly always going to be cheaper. For instance, we offer the Authorize.net for WooCommerce plugin for only $29. This simple $30 plugin will save you 100s of hours developing a plugin for WooCommerce.
Responses from Authorize.net
Response Code 1: Approved
Response Code 2: Declined
Response Code 3: Error
Response Code 4: Held for Review
Response Subcode: Internal tracking only. Obsolete.
Response Reason Code 1: Approved transaction
Response Reason Code 2, 3: Declined Transaction
Response Reason Code 4: Declined Transaction - Pick up card
If you are getting errors at this level you may need to further develop your validation techniques. Validation errors at this level should not be getting 'caught' by any payment gateway.
Response Reason Code 5: Valid amount required -- usually this means you submitted the wrong format
Response Reason Code 6: Invalid credit card number. If you are getting these you definitely have a validation error in your code. Typically you want to have a card fully validated prior to sending for approval.
Response Reason Code 7: Invalid expiration date. Again, definitely a validation error within your code. You should always validate this prior to submitting to Authorize.net
Response Reason Code 8: Expired Card. Again, validation errors like this can all be prevented by validating prior to submission.
Common (Validated) Errors:
Response Reason Code 13: The merchant API login is not valid. This one is important because if your script worked in the past but no longer works than it could be because your account is no longer valid.
Response Reason Code 14: Relay Response / Referrer URL does not match. This is a very common programming issue especially with poorly configured shopping carts / payment gateways. It is important that the x_relay field is properly configured to match your shopping cart / payment integration method.