Is it legal for a business in the United States to refuse cash as a form of payment?
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 United States money as identified above is a valid and legal offer of payment for debts when tendered to a creditor. There is, however, 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 which says otherwise.The US Department of the Treasury has a very similar statement at its website.
There are, of course, a rising number of examples of sellers who do not accept cash: certain stores, parking garages, flight attendants on most airlines, and others. Other sellers may refuse to accept certain types of currency, like buses that won't take pennies for the fare, or stores that won't accept bills larger than a certain denomination.
My understanding is that no state enforces laws with actual teeth that require firms to take cash. (Massachusetts seems to have an unenforced law without penalties that retailers must accept cash.) It's not obvious that states should enact such laws, either. But as the use of cash fades in many contexts, it's worth remembering that not everyone has credit cards. For example, about one-quarter of all US families in the bottom 20% of the income distribution are "unbanked," and for those without a bank account, having access to plastic-based spending power can be difficult or costly or both.