the typical Merchant<->bank agreements all have clauses forcing them to absorb these fees and explicitly barring them from separately charging customer CC fee.
and most small/med businesses dont have clout to protest that, so they have to accept these terms in order to earn money
> the typical Merchant<->bank agreements all have clauses forcing them to absorb these fees and explicitly barring them from separately charging customer CC fee.
These clauses would be illegal in many states and countries these days, so they don’t.
This hasn't been the case for a wide variety of payment processors for quite a while now. Many of the new startup-based ones have features to help you pass through the fees even. Small business can use Stripe, Square, Clover, or one of many other payment processors that don't ban them from passing credit card fees forward to consumers.
FYI there was a lawsuit about this a while back and part of the settlement was merchants can pass on fees now.