How to cancel a one-time (non-recurring fee) membership?

Hi all,

Is there a way to present a paid member a cancellation form when they have paid a one-time, non-recurring fee for a limited time (say a year) for their membership?
I’ve looked at the KB but the only form I came across was for cancelling a recurring fee.

What I would like to do is give these members the option to cancel their subscription, and do a refund for the time they haven’t used their subscription, like this:
Member signs up for a yearly subscription for a one-time fee (non-recurring).
After, say, 4 months he/she decides to cancel the subscription.
The refund would then be for the remaining 8 months (12-4=8).

Can this be done within s2member, or is this only possible in the chosen payment gateway.