add refund capability

You will need to save the transaction reference from the original
transaction and pass it in to the gateway refund method along
with amount, currency and a transactionId (I just use the current time,
down to the second).

As far as I can tell, the transaction reference allows CardSave to
identify the card, so you can use it to refund any amount.