Authorize.net Terminology Overload: Test vs. Live

by davep on October 22, 2009

Authorize.net is one of the service providers that allows you to process payments by taking credit card and/or electronic check payments on your website. Integrating with Authorize.net requires testing, first. So, when you create an account with Authorize.net, it is placed in Test Mode, and you must manually put the account in Live Mode before you can actually charge customers.

This is fairly straightforward to understand and do, but the terms “test ” and “live” actually can be used in three different contexts when dealing with Authorize.net, and this often makes it difficult to communicate with clients. Having explained this enough times, I thought I would write up a permanent explanation so I can point people here instead of going through it, myself, every time.  I also hope that anyone needing to understand these differences will find this explanation helpful.

Summary

There are three meanings for the terms “Test” and “Live” when discussing Authorize.net accounts and transactions. These are:

  • Server Level: Test vs. Live => Authorize.net has their normal Live Servers (presumably more than one) and a Test Server. You can request a Test Account (which is an account on the Test Server) for free and they do not require a merchant account.
  • Account Level: Test vs. Live => You can set your whole account in Test Mode and any transactions submitted will be validated but not processed (thus they will not be added to the Unsettled Transactions list or leave any other trace in your account).
  • Transaction Level: Test vs. Live => Each payment transaction submitted can indicate that it is a Test Transaction. If your account is in Test Mode, this has no effect since all transactions will be treated as test transactions. If your account is in Live Mode, then this treats the transaction request the same as if your whole account was in Test Mode.

Detailed Explanation

Here is a more detailed explanation of these terms, along with a chart showing all combinations.

Server Level: Authorize.net’s normal accounts run on their Live server(s). However, they also have a complete, exact copy of their live system on a different server which does everything the live servers do except communicate with the back-end merchant accounts to actually transfer funds. Anyone integrating with Authorize.net can request an account on this Test server for free and submit all the transactions they want and no money will ever be charged against any accounts nor will any emails be sent. An account on the Test Server is referred to as a Test Account.

Account Level: To confuse things, you can also have your Live Authorize.net account in Test Mode. This is an option you can set in the account settings section of your account on Authorize.net. All new Live accounts are automatically placed in Test Mode and must be put in to Live Mode before they can be used to perform real transactions. When a Live Account is in Test Mode, it basically only performs the first level of processing to verify that the transaction submitted was well formed.

Also, Test Mode supports a feature where if you submit transactions with special credit card numbers, then the dollar amount of the transaction is returned as the Response Reason Code for the transaction. Therefore, if you submit a payment request for $1.00, it gives you a Success response. If the amount is for $2.00, you get a failed transaction with the Reason Code being 2 (“This transaction has been declined” – you can look up Response Reason Codes here).

However, transactions submitted while an account is in Test Mode never write anything to your transaction history, so there is no evidence of your tests if you log in to your account at Authorize.net (which is not true for Test Accounts, since the Test Server acts like a real live server and does all of the processing internal to Authorize.net and writes the transactions to the history for your Test Account). Note that, for what it’s worth, you can also place your Test Account (on the Test Server) in Test Mode or Live Mode, since it has the same features as a normal Live Account.

Transaction Level: Lastly, you can submit a transaction to a Live Account in Live Mode, but set a value in the data submitted with the transaction which says to submit just this one transaction in Test Mode, and it will behave as if you are submitting a transaction to an account in Test Mode.

Therefore, you can submit:

Server Account Mode Transaction Mode Action
Test Test Test Basic validation of transaction
Test Test Live Basic validation of transaction
Test Live Test Basic validation of transaction
Test Live Live Acts like a real transaction, but does not settle with the payment processor
Live Test Test Basic validation of transaction
Live Test Live Basic validation of transaction
Live Live Test Basic validation of transaction
Live Live Live Submits a real/live transaction
A simpler and more readable distillation of the table above comes out as:
  • If either the account is in Test Mode or the transaction is marked as a Test Transaction, then only basic validation of the request is performed.
  • If the account is in Live Mode and the transaction is not marked as a Test Transaction, then…
    • If submitting against the Test Server it acts like a normal transaction but no money changes hands
    • If submitting agains the Live Server then, assuming everything is okay, money will change hands.

I hope this helps those of you who are trying to integrate with Authorize.net and implement payment processing on your website. Let me know if you have any questions!

{ 3 trackbacks }

uberVU - social comments
October 23, 2009 at 11:50 pm
authorize - StartTags.com
January 28, 2010 at 2:03 pm
Stout Design » Blog Archive » Authorize.net test and live modes
February 10, 2010 at 1:39 pm

{ 10 comments… read them below or add one }

yalestar October 28, 2009 at 7:39 am

Very helpful information here. Often the documentation on Authorize.net’s developer site is pretty opaque, so it’s great when people document their findings like you’ve done here.

Reply

Patrick Jones November 9, 2009 at 11:13 am

Helpful!

Reply

rselvam November 11, 2009 at 2:54 am

what is the response from authorize.net in live mode for transcationid=? if account number is 4111111111111111 and a valid account number

Reply

davep November 11, 2009 at 4:34 pm

yalestar and Patrick: Thanks. I have benefitted greatly from similar blog posts from others and I am glad to finally be giving back to the community.

rselvam: Your question is not entirely clear. If you want to clarify what you mean by “transactionid=?” and “account number is 4111111111111111 and a valid account number”, I can try to answer your question here. However, I think you will be better served by asking questions like this in the Authorize.net Developer Community forums at http://community.developer.authorize.net/.

Reply

Harish November 19, 2009 at 2:55 am

Hi,

I am not sure of my authorize.net account is in live mode or test mode in server.
Because, i dont have account details from client.

I am submitting test cc numbers to authorize.net and getting success message.
and same for the valid cc numbers.

Now my question is what may be the response from authorize.net ,if we submit the test cc numbers to live server?

any thing on this will be helpfull.

Thanks

Reply

davep November 24, 2009 at 11:49 am

If you submit a payment against credit card 4111111111111111 to the live server and it is not in test mode, then you will get an error. One way you could determine if the account is in Test mode or not is to use credit card number 4222222222222222, and submit a transaction for $1.00 and $2.00. The $1.00 transaction should report success, while the $2.00 transaction should give you an error with a response reason code of 2 (“This transaction has been declined.”)

Reply

janie December 18, 2009 at 6:59 am

My site has not went live yet. I am trying to get it done now. I have been up all night and I am so confused i really need to speak to someone on the phone asap. Is authorize.net and the others a merchant account or not or just some type of go between. I do not understand all this at all I am not computer savy and I did not know this was so complicated. I am still trying to find something with say, the charges per transaction or will that be a surprise.

Reply

Arif March 29, 2010 at 1:14 am

Hi,
Thanks for the nice article.
Well, I wanna ask can you please tell me how best I can test the AUTH only transaction and then CAPTURE prior AUTH transaction can be tested as well ?

Reply

Jayesh July 25, 2010 at 1:43 pm

I am still bit confuse with behavior of test account on test server. When i submit real credit card information with CCV validation enabled in my account, all information is correct but still it returns status P (Not Processed) so my question is, does test account on test server (live mode) validates the credit card information like CCV against bank?

Reply

Tim Webb January 27, 2011 at 8:06 pm

If you ask me, there should be only two settings: Test, Live, Live (test server), and Live, Live, Live (live server). The rest of the settings are just for complete confusion (with the exception of the magic card number).

Reply

Leave a Comment

*

Previous post:

Next post: