reversal - AEVI-AppFlow/pos-android-sdk GitHub Wiki
Request that a previously initiated transaction is reversed. Commonly referred to as reversal or void.
A transaction is reversed by returning the previous references of a transaction, which assumes you have access to the TransactionResponse
for that transaction from the PaymentResponse
.
TransactionResponse responseToReverse = paymentResponse.getTransactions().get(desiredTxnIndex).getPaymentAppResponse();
if (responseToReverse != null) {
AdditionalData references = responseToReverse.getReferences();
}
Note the getPaymentAppResponse()
call, which will always return a response from the payment application, if one was generated. A payment application is not necessarily called for a transaction. There may be responses that would have come from value added flow services paying off a portion (or all) of the amounts, such as loyalty points / rewards.
If you require additional data for your use case / scenario, please contact AEVI to discuss.
TransactionResponse previousResponse = getPreviousResponse(); // Extract the relevant transaction from the previous PaymentResponse
Request request = new Request("reversal", previousResponse.getReferences()); // ensure you send all references so the PA can match up to the correct transaction
AdditionalData references = ...; // create new references for reversal transaction
...
// Add payment app specific transaction reference data here
Response reversalResponse = new Response(reversalRequest, <outcome>, "Outcome message", references);
String reversedSuccessfully = reversalResponse.wasSuccessful();