One would think that it is a business' business to figure out how much to charge a customer. A willing customer will pay, an unwilling one won't. How is it a question of legality?
Most credit card companies _don't_ want you to do that because charging more to pay with a credit card makes using your credit card a less enticing idea. IIRC, this stuff is usually handled in your contract with the credit card processor.
The last company that I worked for that used a credit card processor other than Stripe, the rules were something like:
* 2-3% of the transaction is the processor's keep
* You are allowed to charge a surcharge, but _only_ if it's a flat fee. You cannot add a 2-3% fee to cover the credit card charges, nor can you have some sort of "flat-fee schedule" where the flat-fee changes based on the amount being charged (e.g. charges of $1 - $100 get a $0.50 fee, but charges $100+ get a $5 fee). You can only do something like $0.50 fee to all charges.
* You cannot charge a different price for products when they are purchased via credit card.
This is obviously good for the card companies and to a degree the digital payments landscape as a whole.
I do however see how it can be a problem for small merchants who can't negotiate for better rates with MAPs due to lack of volume. A 2 - 3% fee is quite significant seeing as though many retailers will have a 7-12% net margin. For a merchant not to be able to push the cost to a customer even if it is just part of it would be difficult for a business to sustain. There are other costs that merchants are dealing with such as cost of packaging and as such, a 2-3% fee is no mean feat.
Depends on the state. It's no longer illegal federally, but many states, including the four largest states[0], still prohibit it. And if they pass the fees on, they have to pass it on for all credit cards, due to the specifics of a court settlement a few years back.
In addition, any merchant that accepts American Express is also prohibited from passing on fees for any credit card, because Amex prohibits passing on fees, and you can't pass fees for Visa/Mastercard and not Amex (see above).
So, very few merchants actually do.
[0] California, Colorado, Connecticut, Florida, Kansas, Maine, Massachusetts, New York, Oklahoma and Texas
Are you saying it _was_ actually illegal federally at some point or that no one had successfully brought a suit against the credit card companies' conditions until recently?
I didn't know about the state laws. That sure sounds like regulatory capture. It's hard to think of a legitimate reason for the state to do that.
Do majority of MAPs in the US have this condition in their terms? And which MAPs don't have this condition?
They are not allowed to charge customers more for paying via credit card that for paying via cash. This is the law in some states, and in addition many merchant contracts stipulate it as well.
Sometimes you'll see merchants offer a "cash discount", which is technically prohibited too, but small merchants can sometimes fly under the radar if it's not too blatant.
I dealt with a local mechanic (small shop) earlier this year who, when it came time to settle the bill, said he will do debit/check for no fee, or a 2% fee for a credit card. In addition, some local gas stations advertise cash rates for fuel, which are slightly discounted vs credit cards.
It's an interesting practice that I don't mind. Ultimately it provides transparency and options to consumers who may be unaware of interchange rates and such that factor into day-to-day transactions.