I am testing integration with Authorize.Net AIM. I am able to successfully test an Authorization Only Transaction. However, I cannot find any way to successfully test a Prior Authorization Capture Transaction. When in testing mode, an Authorization Only Transaction returns a "0" for a Transaction ID. This is as documented and not necessarily a problem. However, a Prior Authorization Capture Transaction requires a non-zero Transaction ID. Is there a valid Transaction ID I can use to test Prior Authorization Capture Transactions?
I'm not entirely certain, but check to make certain the preceding authorization actually succeeded.
If an AUTH_ONLY request fails it will not return an authcode (as one would expect), but I don't recall any successful AUTH_ONLY failing to return the code.
Transactions that return a Transacction ID of 0 are Test Mode transactions, meaning that you are either submitting x_test_request=true with your AIM POST and/or the account you are using has Test Mode enabled. If you wish to test Voids, Credits or Prior Auth Capture transactions you will need to submit transactions in live mode by adjusting the value to x_test_request to equal false and disabling the Test Mode setting within the account, if it is enabled.
If you are currently using a test environment account the Test Mode setting within the account should not be enabled but you may follow the instructions below to validate this:
1. Log into your Merchant Interface at https://test.authorize.net.
2. Click Settings in the main left side menu.
3. Click Test Mode.
4. Click the Turn Test OFF button. The interface will confirm that the Test Mode Settings have been Successfully Applied and you’re now in live mode.
If you are currently using a production environment account, disabling Test Mode will incur transaction fees and the transactions submitted will be sent to the credit card network for processing. This means that valid credit card data must be used when testing Voids, Credits and Prior Auth Capture transactions through a production environment account and the credit cards used will be charged, if the issuing bank authorizes the authorization request submitted.
Additional information regarding Test Mode can be found in our online knowledgebase found at http://authorize.net/support/knowledgebase/ as well as the online video tutorial at http://www.authorize.net/videos.
Thank you for the info. I was using the test environment but also had x_test_request set to true. By getting rid of this value I am now getting a non-zero Transaction ID. However, I was running into an issue when using the Transaction ID generated by an Authorization Only Transaction to then submit a Prior Authoriztion Capture Transaction. I was getting the following error: "The transaction cannot be found." I realized the problem was that I was casting the Transaction ID to a 32 bit integer which was narrowing the Transaction ID to 2147483647. I thought this might be useful for other developers to know: make sure you don't try to store your Transaction ID in a 32 bit integer, it won't fit.
If I made prior_auth_capture for authorized transaction then how much time it will take to capture the amount and amount transfer in merchant account.
Transaction are settled once a day. check your merchant account setting for the settled time(Transaction Cut-Off Time).