Reverse Method
Reverses a transaction.
Syntax
int Reverse();
Remarks
This method reverses a transaction that has not been settled.
To void/reverse a Sale or AuthOnly transaction first set ReversalTransactionType to specify the type of original transaction that is being reversed. Next set ReversalType to frtFullReversal and call this method.
If the previous transaction did not receive a response and the state of the transaction is uncertain you may perform a Timeout Reversal. To perform a timeout reversal set ReversalTransactionType to specify the type of original transaction that is being reversed. Next set ReversalType to frtTimeoutReversal and call this method.
Timeout Reversals are applicable to the following transaction types:
Full Reversals are applicable to the following transaction types:
- AuthOnly
- Sale
After this method returns check the value of ResponseCode to determine if the transaction was successful.
Important Note: You must ping your list of service provider URLs and update the URL property to the service provider with the shortest response time every 100 transactions, as well as when your application initially starts. This is not a normal ICMP ping - to determine the fastest transaction URL you must use the special Ping method inside the FDMSRegister class. (You may update your list of service provider URLs with the FDMSRegister class's ServiceDiscovery method).
Debit Sale and Reverse Example
debit.TPPID = "AAA000"; debit.MerchantTerminalNumber = "00000001"; debit.MerchantId = "1234"; debit.GroupId = "20001"; debit.DatawireId = "00011122233344455566"; debit.ApplicationId = "RAPIDCONNECTVXN"; debit.URL = "https://stg.dw.us.fdcnet.biz/rc"; debit.STAN = "112"; debit.TransactionNumber = "1234"; debit.ReferenceNumber = "1212"; debit.OrderNumber = "123"; debit.Card.MagneticStripe = "4003010001234572=17041011234567440"; debit.EncryptedPIN = "7BD8948B328B21E5"; debit.KSN = "876543210F008400029"; debit.TransactionAmount = "1200"; debit.Sale(); //Store the aggregate for use later string aggregate = debit.GetDetailAggregate(); //Later, reverse the transaction debit.TPPID = "AAA000"; debit.MerchantTerminalNumber = "00000001"; debit.MerchantId = "1234"; debit.GroupId = "20001"; debit.DatawireId = "00011122233344455566"; debit.ApplicationId = "RAPIDCONNECTVXN"; debit.URL = "https://stg.dw.us.fdcnet.biz/rc"; debit.STAN = "113"; debit.TransactionNumber = "120014"; debit.ReferenceNumber = "123457"; debit.SetDetailAggregate(aggregate); debit.ReversalTransactionType = FdmsrcdebitReversalTransactionTypes.frttSale; debit.ReversalType = FdmsrcdebitReversalTypes.fdrtFullReversal; debit.Reverse();