# File lib/active_merchant/billing/gateways/authorize_net_cim.rb, line 343
      def create_customer_profile_transaction(options)
        requires!(options, :transaction)
        requires!(options[:transaction], :type)
        case options[:transaction][:type]
          when :void
            requires!(options[:transaction], :trans_id)
          when :refund
            requires!(options[:transaction], :trans_id) &&
              (
                (options[:transaction][:customer_profile_id] && options[:transaction][:customer_payment_profile_id]) ||
                options[:transaction][:credit_card_number_masked] ||
                (options[:transaction][:bank_routing_number_masked] && options[:transaction][:bank_account_number_masked])
              )
          when :prior_auth_capture
            requires!(options[:transaction], :amount, :trans_id)
          else
            requires!(options[:transaction], :amount, :customer_profile_id, :customer_payment_profile_id)
        end
        request = build_request(:create_customer_profile_transaction, options)
        commit(:create_customer_profile_transaction, request)
      end