And actually, I believe the merchant agreement also specifies that they may not accept the card for payment and offer a discount for cash for the same item. That's entirely a private matter, of course...
"For example, a retailer could charge $102 for a product and give a $2 discount, but could not charge $100 and impose a $2 surcharge, despite the situations being mathematically equivalent. Thus, the statute restricts how this $2 price difference is presented to the consumer," England wrote.
Almost every one I've signed went further to specify that the merchant, so long as they display the Visa/MasterCard/Discover/American Express logo, is specifically forbidden from giving a discount for cash in the transaction.
Naturally, why would they want to undercut their own system by permitting such transactions to occur? Is it enforceable? Likely not, but likely more than acceptable cause to terminate the contract for their accepting cards.
Oddly, Wells Fargo permits a cash discount, but specifically forbids charging more than the marked price for items paid for with the card.