Shopify/active_merchant — pull request #775 by opendining (2013-07-22 21:12:32+00:00)
Title: Mercury: if initial Reversal fails, retry as a standard VoidSale

From the Mercury integration team:

The flow for ActiveMerchant should be 1st attempt a Reversal (TranCode:
VoidSale, with two additional tags AcqRefData and ProcessData). If the
Reversal fails their code should automatically attempt a “legacy”
VoidSale (without AcqRefData and ProcessData).

The reason to attempt a Reversal first is because the funds will be
released to the card holder much faster. A reversal communicates to the
issuer, whereas, a legacy VoidSale only removes the transaction from the
batch before settlement.