I've got a basic POS solution that works for both CP and CNP accounts, and of course I have separate test account credentials for each.
Using the CNP account, I'm able to submit a transaction as well as refund it without any issues.
When I switch to my CP account, though, I'm able to process just fine, but when I go to refund I end up with a ResponseCode of 1 (successful) when really I'm getting error information back. The error I'm getting is about an invalid market type, similar to what I would get if I tried to process a CP transaction using a CNP account. I'm using the same credentials to run the refund as I am to run the original transaction, though.
Here's a full request and response that I just ran on the test server.
Array ( [x_version] => 3.1 [x_delim_data] => TRUE [x_delim_char] => | [x_url] => FALSE [x_type] => CREDIT [x_method] => CC [x_relay_response] => FALSE [x_login] => xxxxx [x_tran_key] => xxxxx [x_test_request] => 1 [x_encap_char] => [x_trans_id] => 6K773918476061213 [x_card_num] => XXXX7360 [x_amount] => 49.99 [x_exp_date] => 022015 )
Array ( [Version] => 3 [ResponseCode] => 1 [ResponseReasonCode] => 87 [ResponseReasonText] => (TESTMODE) Transactions of this market type cannot be processed on this system. [AuthorizationCode] => 000000 [AVSResultCode] => P [CVV2ResponseCode] => 0 [TransactionID] => [MD5Hash] => [UserReference] => 49.99 [NA1] => CC [NA2] => credit [NA3] => [NA4] => [NA5] => [NA6] => [NA7] => [NA8] => [NA9] => [NA10] => [CardNumber] => [CardType] => [SplitTenderID] => [RequestedAmount] => [ApprovedAmount] => [CardBalance] => [ReservedField0] => [ReservedField1] => [ReservedField2] => [ReservedField3] => [ReservedField4] => [ReservedField5] => [ReservedField6] => [ReservedField7] => [ReservedField8] => [ReservedField9] => [ReservedField10] => [ReservedField11] => CFE1E67336D2DD21DCC1E7A2E7CBF383 [ReservedField12] => [ReservedField13] => [ReservedField14] => [ReservedField15] => [ReservedField16] => [ReservedField17] => [ReservedField18] => [ReservedField19] => [ReservedField20] => [ReservedField21] => [ReservedField22] => [ReservedField23] => [ReservedField24] => [ReservedField25] => [ReservedField26] => [ReservedField27] => [MerchantDefinedField0] => [MerchantDefinedField1] => [MerchantDefinedField2] => [MerchantDefinedField3] => [MerchantDefinedField4] => [MerchantDefinedField5] => [MerchantDefinedField6] => [MerchantDefinedField7] => [MerchantDefinedField8] => [MerchantDefinedField9] => [MerchantDefinedField10] => [MerchantDefinedField11] => [MerchantDefinedField12] => [MerchantDefinedField13] => [MerchantDefinedField14] => FALSE )
The documentation shows a response code of 1 means approval, and that's what I've always experienced up until this.
So I'm confused about 2 things: why am I getting this error to begin with, and also, why am I getting a good response code when it's failing?
Any information on what I'm doing wrong here would be greatly appreciated. Thanks!
09-16-2012 02:37 PM - edited 09-16-2012 02:40 PM
Ok, now when I try to refund I'm getting the error: The referenced transaction does not meet the criteria for issuing a credit.
I'm guessing, though, that that's just because the transaction hadn't settled yet in the system so it can't be refunded and instead would need to be voided.
If you can confirm that for me I think I'm good to go! Thanks!
09-17-2012 03:24 PM
Well...shoot. I'm getting what I expect from the CNP account testing now, and my CP transactions are now returning an actual ID instead of just 0, but when I try to refund the CP account I'm still getting the invalid credit card number error instead of the error I'm expecting about the criteria not matching because the transaction isn't settled yet.
So, I've made a little progress on understanding how test mode in AuthNet works, but now I'm right back to where I started. CNP is doing what I expect, but CP is giving me invalid credit card number.
Here's the one I just tried to run...
Array ( [x_version] => 3.1 [x_delim_data] => TRUE [x_delim_char] => | [x_url] => FALSE [x_type] => CREDIT [x_method] => CC [x_relay_response] => FALSE [x_login] => xxx [x_tran_key] => xxx [x_test_request] => [x_encap_char] => [x_trans_id] => 2176537211 [x_card_num] => 7360 [x_amount] => 389.87 [x_exp_date] => 022015 [x_cpversion] => 1.0 [x_market_type] => 2 [x_device_type] => 5 [x_response_format] => 1 [x_customer_ip] => 72.135.111.9 [x_description] => Refund )
Array ( [Version] => 1.0 [ResponseCode] => 3 [ResponseReasonCode] => 6 [ResponseReasonText] => The credit card number is invalid. [AuthorizationCode] => [AVSResultCode] => P [CVV2ResponseCode] => [TransactionID] => 0 [MD5Hash] => 069769E6E8756C7D05DA10568D864405 [UserReference] => [NA1] => [NA2] => [NA3] => [NA4] => [NA5] => [NA6] => [NA7] => [NA8] => [NA9] => [NA10] => [CardNumber] => XXXX7360 [CardType] => )
09-17-2012 03:33 PM
You may be attempting to issue a credit against an unsettled transaction. Instead, you would need to issue a Void to cancel an unsettled transaction. I'm looking at page 18 and top of 19 in the CP implementation guide: http://www.authorize.net/support/CP_guide.pdf
Settlement occurs once each 24 hours after the Transaction Cut-Off time configured for the account in the Merchant Interface.
Richard
09-17-2012 04:41 PM - edited 09-17-2012 04:42 PM
Well, I've covered this in my previous posts.
On the CNP account, when I try to refund a transaction that hasn't been settled I get this error back: The referenced transaction does not meet the criteria for issuing a credit.
In that case the missing criteria is the fact that it hasn't been settled yet. I'm expecting to see the same thing on the CP side, but I'm getting this error instead: The credit card number is invalid.
That seems very specific to the fact that it's not liking my CC values for some reason, but I'm sending them just like the documentation says to, and the CNP side is accepting them without any problems (as long as all criteria are met.)
I'm happy to try this against a settled one to see if does indeed work, but I don't have any settled right now as I just created this new test account I'm playing with. Is there some way to settle a transaction early so I don't have to wait on it to try this?
09-17-2012 04:58 PM
In that case the missing criteria is the fact that it hasn't been settled yet. I'm expecting to see the same thing on the CP side, but I'm getting this error instead: The credit card number is invalid.
x_ref_trans_id
The test server usually settled transaction once a day just like in the production.
09-17-2012 05:16 PM
Doh, that was it. I forgot to change it back to x_ref_trans_id when using CP. Now I'm getting the same message about criteria.
Thanks!!
09-17-2012 05:43 PM