See also the Transaction response object.

You can void transactions that have a status of authorized, submitted for settlement, or - for PayPal - settlement pending. The only required information is the transaction ID. When the transaction is voided, we will perform an authorization reversal, if possible, to remove the pending charge from the customer's card.

result = gateway.transaction.void("the_transaction_id")

If the transaction is successfully voided, the result will return true. Otherwise, check for validation errors.

if result.is_success:
    # transaction successfully voided
    p result.errors.deep_errors

If the transaction can't be found, it will throw a NotFoundError exception.

transaction_id required, str

The unique transaction identifier. You can only void transactions that have a status of: