greetings,
we have highly automated software (non-website) that processes card & eCheck transactions through your API's (which are very well designed). for our software to know about any chargebacks after the initial transaction, we are using your "getSettledBatchListRequest" with "includeStatistics=true", which gives us 31-days of transaction batches that we sift through to find any "chargeChargeBackCount" within the statistics of each batch. this would be absolutely perfect if it included either the original transId or refId or customerId (something we can link back to the original transaction and/or customer). so for step-2, we use your "getTransactionListRequest" with the batchId from the first API call and that has any "chargeChargeBackCount". this gives us the customer's first & last name and the last 4-digits of their account number, but this is not enough to make a solid identification (other customers with this same data). we then use the "settleAmount" and "submitTimeLocal" given by the 2nd API call, to search for possible matches on our side. our step-3 uses your "getTransactionDetailsRequest" with the original transId from our records, to see if the results have a "returnedItems.Description" to confirm they were the one with the chargeback.
if the "getSettledBatchListRequest" with statistics, gave us 'something' to link to any known data we have (original transId, or the original refId, or customerId) that would make life great and avoid our rather convoluted solution outlined above. is there a better way to tackle this scenario (automation to detect all chargebacks), i would be very excited to hear (maybe i'm doing it all wrong?).
thank you very much for your time and knowledge.
03-19-2019 01:37 PM
03-20-2019 11:54 PM
03-20-2019 11:58 PM
many thanks for your input. i'd say 'fully automated' with virtually no human involvement other than to respond to automated notices for things it detects needing the human touch. in short, customer's incur charges throughout the month and we bill everyone on the 10th by performing a long series of API requests to process each transaction (either charging a card on file, or a bank/eCheck withdraw). we store all the transaction responses in case someone needs a partial refund or even complete reversal - we'd have the transID on file to make this a single button click.
we do see the chargeback reports within Authorize.net's backend area, but want to make sure our software knows the customer is not paid-in-full and needs to be fined for the reversal. we thought about searching our database and requesting "getTransactionDetailsRequest" on each transaction (using the transactionID we have stored) but these requests take 4.8 - 5.6 secs each and would take an excessive amount of hours to complete (even when multi-threading the requests). so we decided to go with the "getSettledBatchListRequest" which just summarizes each batch, and if there's no chargeback quantity in that batch, then we can safely skip all those transaction investigations (for now; recheck again tomorrow). the only issue i have with "getSettledBatchListRequest" is that it only gives batchID's so we then run those through a 2nd API "getTransactionListRequest" which give us a customer name and partial card/bank number. from there we search internally to try to match things up and perform more API calls to confirm we targeted the correct customer & transaction (since we didn't have anything for a perfect identification). it's a lot of convoluted API calls but we can at least check all transactions throughout each night.
so one solution is to run "getTransactionDetailsRequest" on our known/stored transactionID's but takes far too many hours to make that many API calls. we'd ahve to split up customers and chack some on mondays, others on tuesdays, wednesdays... and it could be a week before knowing of a chargeback (as worse case timing).
the other solution is to get the summaries of entire batches "getSettledBatchListRequest" but is very difficult to link that data back to the original transaction/customer (they issue a totally new transactionID on chargebacks and do not reference any of the original transaction/customer numbers).
i was hoping for a better, more efficient solution that i just wasn't seeing. or perhaps a way to get the original transactionID, or customer ID, or referenceID from authorize.net (a different API call, or parameter i missed).
03-21-2019 01:38 AM
03-21-2019 07:23 PM