0 Votes

Providing better eCheck.Net functionality

Status: New
by ringhidb on ‎12-20-2018 03:35 PM

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.

  • When you get a batch through API, and the batch shows that is has returned amounts, performing a getTransactionList() on that batch provides different transaction numbers than the original. 
  • If you look through the web interface, the original transaction IDs are listed. Doing a getTransactionDetailRequest() on each one that "returned" has a returnedItems array that shows the new transaction ID. 
    • Update the server code to include the original transaction in the newly settled transaction the same way it includes the new transaction in the original transaction details

2) create new API getReturnedTransactions(startDate, endDate)

  • This new API MUST return the original transaction IDs

 

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.