As for the source. Right on the front of the two dollar bill. Says this note is legal for all debt.
I asked for a source to the claim that refusing to accept a $2 bill is against the law.
It's the legal tender law. To understand it you have to know what the ancient term of art "legal tender" means. A "tender" is an offer made to settle a debt; as in "I'll tender you my car to pay off that debt I owe you" (that would be a tender but would not be a legal tender). A legal tender is a tender which by law must be accepted; if you don't accept it you are forgiving the debt. What constitutes legal tender has changed over time but right now all Federal Reserve Notes, US Notes, and US coins are legal tender.
It only applies to debt. As in, if you eat first and then are presented with a bill, you owe the restaurant a *debt* -- they are required to take *legal tender* as payment for it. If they ask you to pay *first* before they deliver the food (and refuse to give you the food unless you pay first), it isn't a debt, so legal tender does not apply.
The IRS is also required to take legal tender as payment for taxes -- since those are a debt -- though good luck finding the offices of the guys who are required by law to accept it.
The IRS also routinely attempts to violate the legal tender laws, but they're getting nailed for it, because it's quite unambiguous.
http://www.wnd.com/2014/07/dont-try-paying-irs-in-cash/
http://www.abajournal.com/news/article/irs_will_refund_25k_penalty_imposed_on_unbanked_marijana_business_for_payin
The entire situation is widely misunderstood in two different ways. Some people think that everyone is required to take cash; no, you are only required to take cash *as payment for a debt* denominated in dollars. Some people think nobody is required to take cash. No, you must *always* accept cash as payment for a debt denominated in dollars -- if you don't accept a legal tender, you are legally forgiving the debt.
(Yes, this means you can go to the designated payment office of your credit card company and offer them cash to pay your credit card bill. They *must* take it or forgive the debt, and they cannot charge you any extra fees for taking cash. Every credit card issuer has at least one such designated office.)
A way to remember it: If the business makes you *prepay*, it doesn't have to take cash. If you pay *after getting the goods*, they do have to take cash.
I hope this was educational.