Initiate a Refund without a
Initiate a Refund with a Reference Data of the original Service
This Update Bulletin responds to a requirement to optionally receive an initial transaction reference in order to fill in the corresponding data elements in the Refund authorization/completion message
Refund Reference Data (optional) : DF59
When a Refund is performed, the sale system or the device control may provide Refund Reference Data as a reference to the original Service being refunded.
Refund Reference Data may be identical to the Reference Data of the original Service, but this is not mandatory and not checked. Refund Reference Data is not used to retrieve the transaction data of the original Service, but it is stored in the transaction database for the Refund.
Steps Taken For this Bulletin:
A Tag DF59(Refund Reference Data) was added to nexofast.h
Refund reference data has been included in the Original Transaction section of AcceptorAuth and CompletionAdvice.
As this tag is optional, a check is done on the latter. If the Tag is absent, the original transaction section is not included.
Below is an example derived from a refund of an original transaction.
TlvTree originalTransaction = paymentParams.AddChild(ArkosTags.OriginalTransaction); originalTransaction.AddEMVDate(ArkosTags.TransactionDate, cal.get(Calendar.YEAR) % 100, cal.get(Calendar.MONTH) + 1, cal.get(Calendar.DAY_OF_MONTH)); originalTransaction.AddEMVTime(ArkosTags.TransactionTime, cal.get(Calendar.HOUR), cal.get(Calendar.MINUTE), cal.get(Calendar.SECOND)); originalTransaction.AddBin(ArkosTags.LocalTimezone, utcOffset); originalTransaction.AddAscii(ArkosTags.RefundReferenceData,"1234567890"); originalTransaction.AddEnum(ArkosTags.SelectedService, PaymentServiceID.Payment);
Obtained XML :
<OrgnlTx> <TxId> <TxDtTm>2021-06-15T10:36:45.000+00:00</TxDtTm> <TxRef>1234567890</TxRef> </TxId> <TxTp>CRDP</TxTp> <CardDataNtryMd>DFLE</CardDataNtryMd> </OrgnlTx