NMI works. There are direct competitors like it, but I can’t speak to them. It’s more of a real merchant service. They offer both card-in-hand and online services, as well as even recurring contracts. My dad uses square, and when I compare square to a real merchant service the user experience is really unprofessional with the ones that try to be easy and simple. They sacrifice too many features, but the more commercial solutions treat you like the intelligent salesman you are.
I also despise several of the “small business” alternatives if they have a business side as well as a personal side. The lines blur when personal accounts are allowed, and they lock your commercial account unexpectedly and strand a week’s + worth of money for the actions of others. I know multiple people on well known trusted platforms that have had problems with this. None were doing anything illegal nor breaking merchant ToS, but ultimately most didn’t recover the last of their money, and none recovered their account.
That said, I would recommend having multiple income pipes online at all times. A “real” merchant service, plus Venmo Business, plus Square, etc in the combination of your choice. Remember when Etsy servers were down and all the soccer moms were complaining about how they had no income? If they weren’t locked into a single service like that, then this wouldn’t have happened for them.
You don’t have to flop all of their little signs out on the table as options every week, just on your backend use whatever works best that week. I don’t remember if anyone has ever said “oh I don’t like square” and ruined a sale, they just care if you can take a card, and if your only payment service is down that’s when they walk.
About the extra fee from cards, just pad it into your regular price. It’s insulting to tack on a extra card charge, and more importantly it doesn’t do any good. People roll their eyes and pay it.
If you offer a discount off regular price, magically people DO have checks and cash. It’s goofy, but that’s how I found the game is played.