Have you ever handed someone cash to pay for a transaction and been told, "we only accept checks or money orders". I thought that cash was "legal tender for all debts public and private". After all, that's what it says on the money.
Title 31, Subtitle IV, Chapter 51, Subchapter I, Section 5103 (whew!) says it slightly differently. It says: "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. Foreign gold or silver coins are not legal tender for debts". Notice it does not use the word "private", but it does say "all debts".
The Department of the Treasury, in defining a previous version of the law, when the word "private" was still there, indicated that it is not binding upon private businesses unless a state law says so. Well, maybe the problem is that the U.S. Government doesn't have the constitutional authority to mandate acceptance of the currency by private citizens of the States.
Let's see, Article 1, Section 8, of the United States Constitution sets forth that congress has the authority "...To coin money, regulate the value thereof, and of foreign coin, and fix the standard of weights and measures". This doesn't expressly give the authority to enforce acceptance by private citizens, so I guess that authority was retained by the individual states.
It is interesting to note that congress does however have the authority to set the value of the money of other countries. I wonder how the other countries feel about that?
But none of this will help you when you go to the Delaware State Police (a government and thus public entity) to be fingerprinted, as part of a job application, because they don't accept cash. They choose to violate the law, in my opinion. They probably do so for very legitimate business or efficiency reasons. Will they apply that same test to me if they think that I have violated a traffic law?