Hey Charan!
We also have faced this challenge. I can share our thoughts. Short answer: Void and Cancel payment operations are the same on the front-end.
Long answer. In most cases, the customer sees that the credit card was charged (in SMS notification or bank's mobile app) right after the credit card transaction processed. In reality, the payment will go through authorisation/post/settled... Depends on the exact status you can do different actions, like Void or Cancel. But the customer know - the card was charged.
So, he have only one action on the front-end - Refund. The flow under this button do the required action, depends on the current payment status. The successful result of the flow - money refunded (even if technically it was cancellation).
It is a more complicated business flow (handle switch between statuses, retries, correct respond to customer..). But it is more convenient for the customer.
------------------------------
Yuri Stepanenko
UNSPECIFIED
------------------------------