But are they allowed to charge a surcharge to a customer for using a particular card?
Some regulators have disagreed, but in most places the card lobby won out because cards impose tax transparency, so the higher prices shifted to consumers also translate to higher tax receipts for the government.
Edit: To clarify, some U.S. merchants do charge a "credit card fee" or enforce a minimum charge amount to all customers using credit cards for their purchases. I have never seen one charge a surcharge only to Visa users or only to Amex users.
Edit: seems like they make a distinction between charging extra versus giving a cash discount and the latter is more acceptable?
When I was there I remember things like $10 or $20 minimum and also anywhere up to 5-10% surcharge for paying with a card.