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.


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

var request = new TransactionCloneRequest
  Amount = 10.00M,
  Options = new TransactionOptionsCloneRequest
    SubmitForSettlement = true

Result<Transaction> result = gateway.Transaction.
  CloneTransaction("TransactionId", request);

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

TransactionId required, string

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

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.

SubmitForSettlement required, bool

Whether to submit the transaction for settlement once authorization succeeds.