The reason for offering a discount for paying in cash is probably that most clients would get angry if merchants tried to charge them more for using a credit card while they are always happy when they get a discount for paying in cash. I think the credit card processors are smart enough to realise that this is happening, so if they wanted & could do anything about it, they would probably write their terms differently (cca. "prices for payments in cash and with cards must be equal").