The industry seems to be split passionately about this issue. That been said most customers these days expect to be able to use a CC without incurring additional fees. Think about the purchases you make day to day, gas, restaurants, supplies, advertising, etc., rarely is there a price difference if you pay cash or check. This may not be the case in large purchases with contractors & suppliers.
Our business along with many others that I consult for will consider adding a charge for jobs over $5000.00 or large contracted clients that want to start paying their long standing monthly service fee with a credit card.
A year ago I received a call from a large theater chain’s (rhymes with beagle) payment service saying that they are no longer going to be sending checks, all payments will be made by a corporate card. That contract is for 4 locations and is ~$30K per month. Thankfully in our service contract we have a clause that we can pass on CC fees, bounce fees, etc. They are still sending checks

.
We advise to calculate your job cost to include 50-60% of your residential clients will pay with card. Your margins should be high enough that $20 on a ~$900 job is nothing. On that $30K Cinema contract we are at a 52% margin, or $15,600. If they pushed back enough where we believe they would look else where I would said “We will make an exception for you”.
Keep your margins high, provide excellent service, and don’t sweat the small stuff. Convenience is what customers want and will pay for it.
On a final note when customers as for cash discounts, all of our techs/supervisors/CSRs are trained to say
“I apologize sir/ma’am we do not offer a discount for cash. You can pay with whatever method is most convenient for you. However cash or check helps us save money on CC fees, but we documented all income for insurance & tax purposes.” 90% of our return customer start paying by check.