There needs to be a way to quickly get any "returned" eChecks. By law, a consumer has 60 days to dispute a charge, and normal ACH transactions can take several business days to return NSF (or any other number of errors).
I can think of two ways to solve this
1) Include the Original Transaction ID in the new Transcation.
2) create new API getReturnedTransactions(startDate, endDate)
As it stand currently, I have to put transactions in a temporary database with the date performed, and then check every transaction in the temp database every day for a "returnedItems" array in the getTransactionDetailRequest() call, and once it is day 61 after the original transaction, I can delete it from the temporary database. As you can imagine, this leads to thousands of useless calls.
A single transaction, perfomed on 1-Dec 2018 has to be checked 60 times through 29-Jan 2019 to know for sure it never came back disputed.
If 10 Transactions are processed every day, for 60 days, 600 API calls are performed to charge the accounts, and then 35,400 api calls are performed to check each of the 600 transactions (Days 60 has to be checked through day 120). These figures are assuming the charge, settlement, and ACH withdrawel fromt the customer account happen almost instantaneously, which they don't).
Example can be provided to Authorize.net Staff from our production account.