See also the Transaction response object.

Cloning a transaction will create a new transaction by copying all the attributes, except amount, of the original transaction. Instead of cloning transactions, a better practice in most cases is to use the Vault to save and reuse payment method or customer information.

important

You must include an amount and an option flag to submit the transaction for settlement.

Python
result = gateway.transaction.clone_transaction("transaction_id", {
  "amount": "10.00",
  "options": {
    "submit_for_settlement": True
  }
})
This code snippet now uses gateway instance methods instead of class-level methods. Learn more.

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

Arguments
transaction_id required, str

The unique transaction identifier. You can only clone non-PayPal transactions that have a status of authorized, authorization_expired, voided, submitted_for_settlement, or settled. Processor declined, gateway rejected, and failed transactions can't be cloned.

Additional Parameters
'amount' required, Decimal or str

The amount of the cloned transaction. This value must be greater than 0, and must match the appropriate currency format.

'options' required

Values passed with a request.

'submit_for_settlement' required, bool

Whether to submit the transaction for settlement once authorization succeeds.