This paper considers the problem of stabilizing cooperative data exchange with selfish users. In this setting, each user has a subset of packets in the ground set X, and wants all other packets in X. The users can exchange their packets by broadcasting coded or uncoded packets over a lossless broadcast channel, and monetary transactions are allowed between any pair of users. We define the utility of each user as the sum of two sub-utility functions: (i) the difference between the total payment received by the user and the total transmission rate of the user, and (ii) the difference between the total number of required packets by the user and the total payment made by the user. A rate-vector and payment-matrix pair (r, p) is said to stabilize the grand coalition (i.e., the set of all users) if (r, p) is Pareto optimal over all minor coalitions (i.e., all proper subsets of users who collectively know all packets in X). Our goal is to design a stabilizing rate-payment pair with minimum total sum-rate and minimum total sum-payment for any given instance of the problem. In this work, we propose two algorithms that find such a solution. Moreover, we show that both algorithms maximize the sum of utility of all users (over all solutions), and one of the algorithms also maximizes the minimum utility among all users (over all solutions).