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.

Create Request

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

Create Response

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);

Parse Response

String reversedSuccessfully = reversalResponse.wasSuccessful();
⚠️ **GitHub.com Fallback** ⚠️