I'm writing some unit tests to test getUnsettledTransactionListRequest. I'm submitting a test AuthorizationRequest then querying for it using getUnsettledTransactionListRequest. If I immeditally use getUnsettledTransactionListRequest the test transaction isn't listed. If I wait 15-30 seconds its there. The delay seems to be inconsistent.
Is there a delay in the live system and what is the minimum I should way before checking the transaction?
Solved! Go to Solution.
โ04-21-2015 06:31 AM
Hello @jakea
I spoke with our lead database engineer. When you create transactions they are inserted into one database, and your subsequent getUnsettledTransactionListRequest is returned from a separate database using replicated data. This would explain why there is a short delay.
Richard
โ04-30-2015 11:11 AM - edited โ04-30-2015 02:23 PM
Hello @jakea
We're unable to duplicate the problem you reported. We ran a transaction and then immediately used getUnsettledTransactionListRequest and the transaction appears as expected.
Richard
โ04-23-2015 08:06 AM
@RichardH thanks for taking a look. It has consistently reproduced for me using the sdk for .net. I've uploaded my test for this, would it possible for you take a look and let me know if my test (TransactionDetailsDelayTest.cs) is passing for you?
You can find a copy of my test solution (its your .net sdk with my additional test) at:
โ04-23-2015 11:54 AM
@RichardH did the attached tests not reproduce the issue for you?
โ04-29-2015 01:23 PM
Hello @jakea
Sorry, I overlooked your response. May I suggest you submit an issue/pull request with the issue/solution in GitHub? This will notify the developer assigned to this language.
Richard
โ04-29-2015 01:37 PM
I don't see any sign that this is an issue with the .net sdk. I can reproduce the same delay using curl also:
Post transaction:
curl --data "x_delim_data=TRUE&x_delim_char=%7c&x_relay_response=FALSE&x_method=CC&x_version=3.1&x_type=AUTH_CAPTURE&x_card_num=4111111111111111&x_exp_date=0224&x_amount=5&x_description=&x_invoice_num=TEST_INVOICE_001&x_login=LOGIN ID HERE&x_tran_key=TRANSACTION KEY HERE" -H "Content-Type: application/x-www-form-urlencoded" https://test.authorize.net/gateway/transact.dll
Request unsettled list:
curl --data "<?xml version=\"1.0\" encoding=\"utf-8\"?><getUnsettledTransactionListRequest xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"AnetApi/xml/v1/schema/AnetApiSchema.xsd\"><merchantAuthentication><name>LOGIN ID HERE</name><transactionKey>TRANSACTION KEY HERE</transactionKey></merchantAuthentication></getUnsettledTransactionListRequest>" -H "Content-Type: text/xml" https://apitest.authorize.net/xml/v1/request.api
If you put these in the same script and they run immediatly after each other you won't find the expected invoice number. Wait 5-10 seconds and run the "Request unsettled list" and it will show u
โ04-30-2015 07:17 AM
โ04-30-2015 11:11 AM - edited โ04-30-2015 02:23 PM
Thanks for checking, that makes sense. It would be helpful to have some guidance on what types of delay we can expect in production. Should I be expecting a similar 15-30 seconds like I'm seeing in the sandbox or an even larger delay?
โ04-30-2015 12:29 PM
Can you do the GetTransactionDetails with the transactionID instead? I would expected that would be on the same database
โ04-30-2015 01:12 PM - edited โ04-30-2015 01:12 PM
New transactions will insert as Authorized/Pending Capture or Authorized/Pending Settlement. Settlement only occurs once a day and begins sometime after the transaction cut-off time specified in the merchant interface. You should see similar performance in production.
Richard
โ04-30-2015 06:08 PM