In the UK it is now illegal for VISA/Mastercard to prevent merchants charging a fee to use credit cards.
It used to be a common T&C - "you won't offer preferential terms and in particularly a lower price to customers paying by cash" or somesuch
This was held to be a restraint of trade/anti-competitive. Companies should be free to make whatever deal they like with people who walk through their door.
Of course surcharges etc must always be clear. So if you quote a price and show a credit card logo, you should also show any surcharge.