Not sure about the US but in Germany (and I think most of the EU) merchants and venues are obliged to accept the "legal tender". Any other form of payment (such as CC) is at the counterparts discretion but they must accept the payment in cash.
Discussion
IIRC, in North America the merchant must accept any form of legal tender when it is for purposes of paying off a debt (e.g. I'm at a restaurant and I've eaten the food prior to paying).
If no debt is present the merchant can accept or deny any form of payment at their discretion.
That's what I thought too but then I googled it.
https://www.federalreserve.gov/faqs/currency_12772.htm
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.
I’ve heard it explained that the payments of debts are through disputes in the court where a debt needs to be paid and not at point-of-sale.
