According to the CommerceGate API documentation, there is support for a "PARTIAL_CAPTURE", and it can be given amount less than or equal to the amount that was initially authorized.

It would be preferrable to switch the commit method to performing a PARTIAL_CAPTURE instead of a CAPTURE, and accept the money amount that is given to the capture for passthrough to the CG gateway.