Dror Goldberg brings us a nice note on the topic, complete with a "FAQ." For brevity, I quote here one of those frequently asked questions:
How can the legal status of money in the U.S. be summarized in one paragraph?
Taking into account other relevant laws, I suggest the following: First, all Federal Reserve notes and U.S. coins are legal tender for all dollar-denominated obligations. This means that contractual creditors who do not specify another medium of payment in their contracts, as well as all tax authorities and courts (federal, state and local), cannot reject a payment made using these objects. In addition, many banks (national banks and members of the Federal Reserve System) must accept Federal Reserve notes in all transactions. Anyone else can reject these notes and coins. Practically nothing else is legal tender, and thus anything else can be rejected by anyone in any transaction. These notes and coins are redeemable by their issuers only for other notes and coins, possibly of different denominations
Still, if the contract specifies payment in anything other than dollars, this other good becomes the legal medium of payment for this contract. For example, if there is a note next to a cash register that specifies payments are to be made in euros, then payment in dollars can be refused, even if this is happening in the US. This is because the note determines the contractual medium of payment. No business has the obligation to accept dollars by default, except federal authorities and banks.
This implies that claiming cash-in-advance is a representation of legal tender is wrong. In particular, one cannot force someone to use money, at least at the contract writing stage.