The free market should be allowed to set these fees.  Banks have contractually prohibited retailers from passing these fees on to the users.  If retailers were allowed to add card fees, consumers could see how much they were paying for their 2% cash back, or airline rewards.  The current system requires all customers to subsidize these "rewards".