You have a point for debts, however, a retail purchase is not an existing debt, therefore a retailer can refuse to sell if you do not intend to pay with a form that they want to accept.
From the Federal Reserve website: Is it legal for a business in the United States to refuse cash as a form of payment? There is no federal statute mandating that a private business, a person, or an organization must accept currency or coins as payment for goods or services. Private businesses are free to develop their own policies on whether to accept cash unless there is a state law that says otherwise. Section 31 U.S.C. 5103, entitled "Legal tender," states: "United States coins and currency [including Federal Reserve notes and circulating notes of Federal Reserve Banks and national banks] are legal tender for all debts, public charges, taxes, and dues." This statute means that all U.S. money as identified above is a valid and legal offer of payment for debts when tendered to a creditor.
https://www.federalreserve.gov/faqs/currency_12772.htm |