protected AuthOrSaleRequest(RequestType requestType, CreditCard creditCard, Transaction transaction,
            CustomerInfo customerInfo, Order order, ThreeDSec threeDSec = null, FraudDetection[] fraudDetection = null)
            : base(requestType)
        {
            if (creditCard == null)
                throw new ArgumentNullException("creditCard");
            if (transaction == null)
                throw new ArgumentNullException("transaction");
            if (customerInfo == null)
                throw new ArgumentNullException("customerInfo");
            if (order == null)
                throw new ArgumentNullException("order");

            CreditCard = creditCard;
            Transaction = transaction;
            CustomerInfo = customerInfo;
            Order = order;
            ThreeDSec = threeDSec;
            FraudDetection = fraudDetection;
        }
        public SaleRequest(CreditCard creditCard, Transaction transaction, CustomerInfo customerInfo,
            Order order, ThreeDSec threeDSec = null, FraudDetection[] fraudDetection = null)
            : base(RequestType.Sale, creditCard, transaction, customerInfo, order, threeDSec, fraudDetection)
        {

        }