According to the CommerceGate API documentation, there is support for a "PARTIAL_REFUND" API call that can be given an amount. Please can you confirm (by testing and if necessary talking to CommerceGAte) if this works if given a full amount to refund?

The API documentation is somewhat ambigious, but guessing from the description for CAPTURE + PARTIAL_CAPTURE i'm guessing PARTIAL_REFUND with an amount that is the full amount should work. If it does, that would be preferrable.