Square
Payment acceptance in person with readers and terminals, online via stores and payment links, and remotely via invoices and a virtual terminal, in one dashboard.
Use Square through the same PayMidWare calls as every other gateway: each merchant saves their own Square credentials, and your software never needs gateway-specific code.